[BUGFIX] fix lob text iter get next return err code

This commit is contained in:
obdev
2023-03-22 05:12:11 +00:00
committed by ob-robot
parent 2a2b0d41c5
commit 26b981973d
12 changed files with 62 additions and 42 deletions

View File

@ -123,8 +123,9 @@ int ObExprConcat::calc_text(common::ObObj &result,
}
if (OB_FAIL(ret)) {
} else if (state != TEXTSTRING_ITER_NEXT && state != TEXTSTRING_ITER_END) {
ret = OB_INVALID_DATA;
LOG_WARN("iter state invalid", K(ret), K(state));
ret = (str_iter1.get_inner_ret() != OB_SUCCESS) ?
str_iter1.get_inner_ret() : OB_INVALID_DATA;
LOG_WARN("iter state invalid", K(ret), K(state), K(str_iter1));
}
while (OB_SUCC(ret)
&& (state = str_iter2.get_next_block(src_block_data)) == TEXTSTRING_ITER_NEXT) {
@ -134,8 +135,9 @@ int ObExprConcat::calc_text(common::ObObj &result,
}
if (OB_FAIL(ret)) {
} else if (state != TEXTSTRING_ITER_NEXT && state != TEXTSTRING_ITER_END) {
ret = OB_INVALID_DATA;
LOG_WARN("iter state invalid", K(ret), K(state));
ret = (str_iter2.get_inner_ret() != OB_SUCCESS) ?
str_iter2.get_inner_ret() : OB_INVALID_DATA;
LOG_WARN("iter state invalid", K(ret), K(state), K(str_iter2));
}
}
if (OB_SUCC(ret)) {
@ -384,8 +386,9 @@ static int eval_concat_text(const ObExpr &expr, ObEvalCtx &ctx, ObDatum &expr_da
}
if (OB_FAIL(ret)) {
} else if (state != TEXTSTRING_ITER_NEXT && state != TEXTSTRING_ITER_END) {
ret = OB_INVALID_DATA;
LOG_WARN("iter state invalid", K(ret), K(state));
ret = (input_iter.get_inner_ret() != OB_SUCCESS) ?
input_iter.get_inner_ret() : OB_INVALID_DATA;
LOG_WARN("iter state invalid", K(ret), K(state), K(input_iter));
}
}
}