From 9781c48dfa99fbf4715632b2ad5425483cb7f5f5 Mon Sep 17 00:00:00 2001 From: obdev Date: Mon, 6 Feb 2023 17:09:11 +0800 Subject: [PATCH] Fix failed mysqltest caused by adding cast exprs for the third param of lead/lag function --- src/sql/resolver/expr/ob_raw_expr_deduce_type.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 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 c71f49f428..c7b9b240fa 100644 --- a/src/sql/resolver/expr/ob_raw_expr_deduce_type.cpp +++ b/src/sql/resolver/expr/ob_raw_expr_deduce_type.cpp @@ -2441,9 +2441,13 @@ int ObRawExprDeduceType::visit(ObWinFunRawExpr &expr) } } } else { - expr.set_result_type(func_params.at(0)->get_result_type()); + ObExprResType res_type = func_params.at(0)->get_result_type(); + res_type.unset_result_flag(NOT_NULL_FLAG); + //set calc type for explain stmts and cases that the param0 is paramlized + res_type.set_calc_meta(res_type.get_obj_meta()); + res_type.set_calc_accuracy(res_type.get_accuracy()); + expr.set_result_type(res_type); expr.set_enum_set_values(func_params.at(0)->get_enum_set_values()); - expr.unset_result_flag(NOT_NULL_FLAG); } // lead和lag函数的第三个参数,应当转换为第一个参数的类型,加cast,这里不能在执行层转。 // bug: https://work.aone.alibaba-inc.com/issue/24115140