fix expr replace calc_result_length bug

This commit is contained in:
yinyj17
2023-06-13 02:54:04 +00:00
committed by ob-robot
parent b82cb8aac0
commit eaff13368a

View File

@ -112,8 +112,11 @@ int ObExprReplace::calc_result_typeN(ObExprResType &type,
if (from_len == 0 || from_len >= to_len) { if (from_len == 0 || from_len >= to_len) {
type.set_length(ori_len); type.set_length(ori_len);
} else { } else {
type.set_length(MIN(ori_len / from_len * to_len + ori_len % from_len, result_len = ori_len / from_len * to_len + ori_len % from_len;
OB_MAX_VARCHAR_LENGTH)); if (result_len < 0 || result_len > OB_MAX_VARCHAR_LENGTH) {
result_len = OB_MAX_VARCHAR_LENGTH;
}
type.set_length(result_len);
} }
} }
} }