From 4a8dd80a12f41d1fddaec3a8593881591164d83b Mon Sep 17 00:00:00 2001 From: st0 Date: Fri, 24 Sep 2021 00:02:21 +0800 Subject: [PATCH] fix concat_ws and make_set report 4013 with more than 32 parameters --- src/sql/engine/expr/ob_expr_concat_ws.cpp | 3 +-- src/sql/engine/expr/ob_expr_make_set.cpp | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/sql/engine/expr/ob_expr_concat_ws.cpp b/src/sql/engine/expr/ob_expr_concat_ws.cpp index cc4f2f5e6..9d5a973a2 100644 --- a/src/sql/engine/expr/ob_expr_concat_ws.cpp +++ b/src/sql/engine/expr/ob_expr_concat_ws.cpp @@ -247,8 +247,7 @@ int ObExprConcatWs::calc_concat_ws_expr(const ObExpr& expr, ObEvalCtx& ctx, ObDa } else if (sep->is_null()) { res.set_null(); } else { - ObIAllocator& calc_alloc = ctx.get_reset_tmp_alloc(); - ObSEArray words(OB_MALLOC_MIDDLE_BLOCK_SIZE, calc_alloc); + ObSEArray words; for (int64_t i = 1; OB_SUCC(ret) && i < expr.arg_cnt_; ++i) { const ObDatum& dat = expr.locate_param_datum(ctx, i); if (!dat.is_null() && OB_FAIL(words.push_back(dat.get_string()))) { diff --git a/src/sql/engine/expr/ob_expr_make_set.cpp b/src/sql/engine/expr/ob_expr_make_set.cpp index 87bc91408..86888bb31 100644 --- a/src/sql/engine/expr/ob_expr_make_set.cpp +++ b/src/sql/engine/expr/ob_expr_make_set.cpp @@ -130,8 +130,7 @@ int ObExprMakeSet::calc_make_set_expr(const ObExpr& expr, ObEvalCtx& ctx, ObDatu if (expr.arg_cnt_ <= 64) { input_bits &= ((ulonglong)1 << (expr.arg_cnt_ - 1)) - 1; } - ObIAllocator& calc_alloc = ctx.get_reset_tmp_alloc(); - ObSEArray words(OB_MALLOC_MIDDLE_BLOCK_SIZE, calc_alloc); + ObSEArray words; for (int64_t pos = 1, temp_input_bits = input_bits; OB_SUCC(ret) && temp_input_bits > 0; temp_input_bits >>= 1, ++pos) { const ObDatum& dat = expr.locate_param_datum(ctx, pos); -- GitLab