fix pushdown state func into subplan bug

This commit is contained in:
zzg19950727
2023-09-01 03:14:24 +00:00
committed by ob-robot
parent bee27c3201
commit e344e593fd

View File

@ -6507,8 +6507,16 @@ int ObOptimizerUtil::pushdown_filter_into_subquery(const ObDMLStmt &parent_stmt,
can_pushdown = true;
}
}
if (OB_SUCC(ret) && !can_pushdown) {
ret = remain_filters.assign(pushdown_filters);
if (OB_SUCC(ret)) {
if (can_pushdown) {
if (OB_FAIL(remove_special_exprs(candi_filters, remain_filters))) {
LOG_WARN("failed to remove special exprs", K(ret));
}
} else {
if (OB_FAIL(remain_filters.assign(pushdown_filters))) {
LOG_WARN("failed to assign exprs", K(ret));
}
}
}
return ret;
}
@ -6536,8 +6544,6 @@ int ObOptimizerUtil::check_pushdown_filter(const ObDMLStmt &parent_stmt,
}
} else if (OB_FAIL(candi_filters.assign(pushdown_filters))) {
LOG_WARN("failed to assign exprs", K(ret));
} else if (OB_FAIL(remove_special_exprs(candi_filters, remain_filters))) {
LOG_WARN("failed to remove special exprs", K(ret));
}
} else if (OB_FAIL(get_groupby_win_func_common_exprs(subquery,
common_exprs,
@ -6629,8 +6635,6 @@ int ObOptimizerUtil::check_pushdown_filter_overlap_index(const ObDMLStmt &stmt,
} else if (is_match_index) {
if (OB_FAIL(candi_filters.assign(pushdown_filters))) {
LOG_WARN("failed to assign exprs", K(ret));
} else if (OB_FAIL(remove_special_exprs(candi_filters, remain_filters))) {
LOG_WARN("failed to remove special exprs", K(ret));
}
} else {
if (OB_FAIL(remain_filters.assign(pushdown_filters))) {