提交 4a8dd80a 编写于 作者: S st0 提交者: wangzelin.wzl

fix concat_ws and make_set report 4013 with more than 32 parameters

上级 5dcc0e59
......@@ -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<ObString, 32, ObIAllocator> words(OB_MALLOC_MIDDLE_BLOCK_SIZE, calc_alloc);
ObSEArray<ObString, 32> 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()))) {
......
......@@ -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<ObString, 32, ObIAllocator> words(OB_MALLOC_MIDDLE_BLOCK_SIZE, calc_alloc);
ObSEArray<ObString, 32> 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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册