[CP] Fix missing table_name of rowid expr in dml reverse patchwork scenario

This commit is contained in:
obdev 2025-01-06 07:15:56 +00:00 committed by ob-robot
parent 539b1caa79
commit 6c3224d9ee
3 changed files with 6 additions and 5 deletions

View File

@ -11448,7 +11448,7 @@ int ObDMLResolver::resolve_generated_table_column_item(const TableItem &table_it
if (stmt->is_select_stmt()) {
ObRawExpr *empty_rowid_expr = NULL;
if (OB_FAIL(ObRawExprUtils::build_empty_rowid_expr(*params_.expr_factory_,
table_item.table_id_,
table_item,
empty_rowid_expr))) {
LOG_WARN("build empty rowid expr failed", K(ret));
} else if (OB_ISNULL(empty_rowid_expr) ||
@ -14001,7 +14001,7 @@ int ObDMLResolver::resolve_rowid_pseudo_column(
ret = OB_ERR_UNEXPECTED;
LOG_WARN("expr factory is null", K(ret));
} else if (OB_FAIL(ObRawExprUtils::build_empty_rowid_expr(*params_.expr_factory_,
table_item->table_id_,
*table_item,
real_ref_expr))) {
LOG_WARN("build empty rowid expr failed", K(ret));
}

View File

@ -9186,15 +9186,16 @@ int ObRawExprUtils::build_rowid_expr(ObRawExprFactory &expr_factory,
}
int ObRawExprUtils::build_empty_rowid_expr(ObRawExprFactory &expr_factory,
uint64_t table_id,
const TableItem &table_item,
ObRawExpr *&rowid_expr)
{
int ret = OB_SUCCESS;
ObColumnRefRawExpr *col_expr = NULL;
OZ(expr_factory.create_raw_expr(T_REF_COLUMN, col_expr));
CK(OB_NOT_NULL(col_expr));
col_expr->set_ref_id(table_id, OB_INVALID_ID);
col_expr->set_ref_id(table_item.table_id_, OB_INVALID_ID);
col_expr->set_data_type(ObURowIDType);
col_expr->set_table_name(table_item.table_name_);
col_expr->set_column_name(OB_HIDDEN_LOGICAL_ROWID_COLUMN_NAME);
ObAccuracy accuracy;

View File

@ -1110,7 +1110,7 @@ public:
ObRawExpr *subpart_expr,
ObSysFunRawExpr *&rowid_expr);
static int build_empty_rowid_expr(ObRawExprFactory &expr_factory,
uint64_t table_id,
const TableItem &table_item,
ObRawExpr *&rowid_expr);
static int build_to_outfile_expr(ObRawExprFactory &expr_factory,
const ObSQLSessionInfo *session_info,