Fix print rowid expr bug

This commit is contained in:
xianyu-w
2023-07-18 08:48:20 +00:00
committed by ob-robot
parent 9b0e6cd960
commit 6f619f09bc
2 changed files with 8 additions and 6 deletions

View File

@ -1594,6 +1594,8 @@ int ObColumnRefRawExpr::assign(const ObRawExpr &other)
column_id_ = tmp.column_id_;
database_name_ = tmp.database_name_;
table_name_ = tmp.table_name_;
synonym_name_ = tmp.synonym_name_;
synonym_db_name_ = tmp.synonym_db_name_;
column_name_ = tmp.column_name_;
column_flags_ = tmp.column_flags_;
dependant_expr_ = tmp.dependant_expr_;

View File

@ -2982,12 +2982,12 @@ int ObRawExprPrinter::print(ObSysFunRawExpr *expr)
LOG_WARN("unexpected param type of expr", K(ret), KPC(expr));
} else {
sub_pk_expr = static_cast<ObColumnRefRawExpr*>(expr->get_param_expr(1));
ObString table_name = sub_pk_expr->get_table_name();
if (!table_name.empty()) {
PRINT_IDENT_WITH_QUOT(table_name);
DATA_PRINTF(".");
PRINT_IDENT_WITH_QUOT(ObString(OB_HIDDEN_LOGICAL_ROWID_COLUMN_NAME));
}
// Mock a rowid ColumnRefExpr temporarily
ObColumnRefRawExpr tmp_rowid_expr;
tmp_rowid_expr.set_expr_type(sub_pk_expr->get_expr_type());
tmp_rowid_expr.assign(*sub_pk_expr);
tmp_rowid_expr.set_column_name(ObString(OB_HIDDEN_LOGICAL_ROWID_COLUMN_NAME));
PRINT_EXPR(&tmp_rowid_expr);
}
break;
}