From 70fa0179cd2c80c24a8c6c4b70ab747913af3c9b Mon Sep 17 00:00:00 2001 From: obdev Date: Sun, 7 May 2023 03:38:52 +0000 Subject: [PATCH] Fix ps prepare stage error 4016 --- src/sql/resolver/expr/ob_raw_expr_deduce_type.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/sql/resolver/expr/ob_raw_expr_deduce_type.cpp b/src/sql/resolver/expr/ob_raw_expr_deduce_type.cpp index c8506b7a00..2f41fefba3 100644 --- a/src/sql/resolver/expr/ob_raw_expr_deduce_type.cpp +++ b/src/sql/resolver/expr/ob_raw_expr_deduce_type.cpp @@ -449,11 +449,17 @@ int ObRawExprDeduceType::calc_result_type(ObNonTerminalRawExpr &expr, } if (OB_FAIL(ret) && my_session_->is_ps_prepare_stage()) { // the ps prepare stage does not do type deduction, and directly gives a default type. - result_type.set_type(ObVarcharType); - result_type.set_calc_type(ObVarcharType); + result_type.set_varchar(); + result_type.set_default_collation_type(); + result_type.set_collation_level(CS_LEVEL_IMPLICIT); + result_type.set_calc_type_default_varchar(); + result_type.set_calc_collation_level(CS_LEVEL_IMPLICIT); for (int64_t i = 0; i < types.count(); i++) { - types.at(i).set_type(ObVarcharType); - types.at(i).set_calc_type(ObVarcharType); + types.at(i).set_varchar(); + types.at(i).set_default_collation_type(); + types.at(i).set_collation_level(CS_LEVEL_IMPLICIT); + types.at(i).set_calc_type_default_varchar(); + types.at(i).set_calc_collation_level(CS_LEVEL_IMPLICIT); } expr.set_result_type(result_type); expr.set_input_types(types);