From 87f7fda79cf3dc231bbac2fc214c36e68880cea7 Mon Sep 17 00:00:00 2001 From: obdev Date: Fri, 20 Sep 2024 07:23:29 +0000 Subject: [PATCH] Fix 4016 error caused by non-idempotent type deduction of case when --- src/sql/engine/expr/ob_expr_case.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/sql/engine/expr/ob_expr_case.cpp b/src/sql/engine/expr/ob_expr_case.cpp index 8dd09949cc..4bf90128d5 100644 --- a/src/sql/engine/expr/ob_expr_case.cpp +++ b/src/sql/engine/expr/ob_expr_case.cpp @@ -104,8 +104,9 @@ int ObExprCase::calc_result_typeN(ObExprResType &type, types_stack[i].set_calc_meta(types_stack[i].get_obj_meta()); } else { types_stack[i].set_calc_meta(type.get_obj_meta()); - if (ObDecimalIntType == type.get_obj_meta().get_type() || - ob_is_double_type(type.get_obj_meta().get_type())) { + if (ObNumberType == type.get_obj_meta().get_type() + || ObDecimalIntType == type.get_obj_meta().get_type() + || ob_is_double_type(type.get_obj_meta().get_type())) { types_stack[i].set_calc_accuracy(type.get_accuracy()); } }