diff --git a/src/sql/resolver/expr/ob_raw_expr.cpp b/src/sql/resolver/expr/ob_raw_expr.cpp index a1e9878e04..4a7f842c74 100644 --- a/src/sql/resolver/expr/ob_raw_expr.cpp +++ b/src/sql/resolver/expr/ob_raw_expr.cpp @@ -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_; diff --git a/src/sql/resolver/expr/ob_raw_expr_printer.cpp b/src/sql/resolver/expr/ob_raw_expr_printer.cpp index d9e8e285eb..bcb2e94c28 100644 --- a/src/sql/resolver/expr/ob_raw_expr_printer.cpp +++ b/src/sql/resolver/expr/ob_raw_expr_printer.cpp @@ -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(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; }