From 6f619f09bcfb95d920347bdba2ce7af0e65d7341 Mon Sep 17 00:00:00 2001 From: xianyu-w <707512433@qq.com> Date: Tue, 18 Jul 2023 08:48:20 +0000 Subject: [PATCH] Fix print rowid expr bug --- src/sql/resolver/expr/ob_raw_expr.cpp | 2 ++ src/sql/resolver/expr/ob_raw_expr_printer.cpp | 12 ++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) 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; }