Clear sub expr evaluated flag of black filter when apply filter

This commit is contained in:
DengzhiLiu
2023-01-05 07:38:10 +00:00
committed by ob-robot
parent d5b0d8c541
commit 99a529ed7e

View File

@ -720,14 +720,14 @@ int ObPushdownFilterExecutor::find_evaluated_datums(
ObExpr *expr, const ObIArray<ObExpr*> &calc_exprs, ObIArray<ObExpr*> &eval_exprs)
{
int ret = OB_SUCCESS;
if (0 < expr->arg_cnt_ && is_contain(calc_exprs, expr)) {
if (is_contain(calc_exprs, expr)) {
if (OB_FAIL(eval_exprs.push_back(expr))) {
LOG_WARN("failed to push back expr", K(ret));
}
}
for (uint32_t i = 0; i < expr->arg_cnt_ && OB_SUCC(ret); ++i) {
if (OB_FAIL(find_evaluated_datums(expr->args_[i], calc_exprs, eval_exprs))) {
LOG_WARN("failed to find evaluated datums", K(ret));
for (uint32_t i = 0; i < expr->arg_cnt_ && OB_SUCC(ret); ++i) {
if (OB_FAIL(find_evaluated_datums(expr->args_[i], calc_exprs, eval_exprs))) {
LOG_WARN("failed to find evaluated datums", K(ret));
}
}
}
return ret;