diff --git a/src/sql/engine/expr/ob_expr_char.cpp b/src/sql/engine/expr/ob_expr_char.cpp index f0f75b74aa..eeafb27e20 100644 --- a/src/sql/engine/expr/ob_expr_char.cpp +++ b/src/sql/engine/expr/ob_expr_char.cpp @@ -73,11 +73,7 @@ int ObExprChar::calc_result_typeN(ObExprResType &type, ObExprResType *types, int types[i].set_calc_type(ObIntType); } ObExprOperator::calc_result_flagN(type, types, param_num); - //set length - CK( OB_INVALID_COUNT != type_ctx.get_max_allowed_packet()); - if (OB_SUCC(ret)) { - type.set_length(static_cast(type_ctx.get_max_allowed_packet())); - } + type.set_length(static_cast(param_num * 4 - 4)); } return ret; } diff --git a/src/sql/engine/expr/ob_expr_concat.cpp b/src/sql/engine/expr/ob_expr_concat.cpp index 89e000e221..c4b55ee04a 100644 --- a/src/sql/engine/expr/ob_expr_concat.cpp +++ b/src/sql/engine/expr/ob_expr_concat.cpp @@ -208,6 +208,9 @@ int ObExprConcat::calc_result_typeN(ObExprResType &type, max_len = OB_MAX_LONGTEXT_LENGTH / 4; } else { max_len = MIN(OB_MAX_VARCHAR_LENGTH, max_len); + if (max_len <= 0) { + max_len = OB_MAX_VARCHAR_LENGTH; + } } type.set_length(max_len); }