提交 477f4cd1 编写于 作者: O obdev 提交者: wangzelin.wzl

[BUGFIX]repeat return error when input length is larger than max_allow_packet

上级 88ec965b
......@@ -147,8 +147,8 @@ int ObExprRepeat::repeat(ObString &output,
if ((length > max_result_size / count) || (length > INT_MAX / count)) {
LOG_WARN("Result of repeat was larger than max_allow_packet_size",
K(ret), K(length), K(count), K(max_result_size));
LOG_USER_WARN(OB_ERR_FUNC_RESULT_TOO_LARGE, "repeat", static_cast<int>(max_result_size));
is_null = true;
ret = OB_ERR_FUNC_RESULT_TOO_LARGE;
LOG_USER_ERROR(OB_ERR_FUNC_RESULT_TOO_LARGE, "repeat", static_cast<int>(max_result_size));
} else {
//avoid realloc
if (1 == count) {
......
......@@ -80,9 +80,5 @@ select repeat(1.414, 2);
+------------------+
select repeat("abc", 200000000);
+--------------------------+
| repeat("abc", 200000000) |
+--------------------------+
| NULL |
+--------------------------+
ERROR HY000: Result of repeat() was larger than max_allowed_packet (4194304) - truncated
......@@ -30,6 +30,7 @@ select repeat("abc", NULL);
select repeat(1.414, 1);
select repeat(1.414, 2);
--error 1301
select repeat("abc", 200000000);
--enable_warnings
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册