[BUGFIX] fix ObTextStringIter deconstruct after allocator

This commit is contained in:
obdev
2023-02-08 19:57:29 +08:00
committed by ob-robot
parent 4150a9de1d
commit eb6c0e1eac
9 changed files with 21 additions and 22 deletions

View File

@ -101,14 +101,14 @@ int calc_reverse_expr(const ObExpr &expr, ObEvalCtx &ctx, ObDatum &res_datum)
res_datum.set_string(res_str);
}
} else { // text tc
ObEvalCtx::TempAllocGuard alloc_guard(ctx);
ObIAllocator &calc_alloc = alloc_guard.get_allocator();
char *buf;
int64_t buf_size = 0;
int64_t total_byte_len = 0;
const bool has_lob_header = expr.args_[0]->obj_meta_.has_lob_header();
ObTextStringIter input_iter(expr.args_[0]->datum_meta_.type_, arg_cs_type, arg->get_string(), has_lob_header);
ObTextStringDatumResult output_result(expr.datum_meta_.type_, &expr, &ctx, &res_datum);
ObEvalCtx::TempAllocGuard alloc_guard(ctx);
ObIAllocator &calc_alloc = alloc_guard.get_allocator();
if (OB_FAIL(input_iter.init(0, NULL, &calc_alloc))) {
LOG_WARN("init input_iter failed ", K(ret), K(input_iter));
} else if (OB_FAIL(input_iter.get_byte_len(total_byte_len))) {