Skip to content

Commit f7b4ed0

Browse files
authored
Minor: Avoid copying all expressions in check_plan (#9974)
1 parent 2f1c3ab commit f7b4ed0

File tree

1 file changed

+13
-11
lines changed
  • datafusion/optimizer/src/analyzer

1 file changed

+13
-11
lines changed

datafusion/optimizer/src/analyzer/mod.rs

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ use datafusion_common::{DataFusionError, Result};
2626
use datafusion_expr::expr::Exists;
2727
use datafusion_expr::expr::InSubquery;
2828
use datafusion_expr::expr_rewriter::FunctionRewrite;
29-
use datafusion_expr::utils::inspect_expr_pre;
3029
use datafusion_expr::{Expr, LogicalPlan};
3130

3231
use crate::analyzer::count_wildcard_rule::CountWildcardRule;
@@ -156,18 +155,21 @@ impl Analyzer {
156155
/// Do necessary check and fail the invalid plan
157156
fn check_plan(plan: &LogicalPlan) -> Result<()> {
158157
plan.apply(&mut |plan: &LogicalPlan| {
159-
for expr in plan.expressions().iter() {
158+
plan.inspect_expressions(|expr| {
160159
// recursively look for subqueries
161-
inspect_expr_pre(expr, |expr| match expr {
162-
Expr::Exists(Exists { subquery, .. })
163-
| Expr::InSubquery(InSubquery { subquery, .. })
164-
| Expr::ScalarSubquery(subquery) => {
165-
check_subquery_expr(plan, &subquery.subquery, expr)
166-
}
167-
_ => Ok(()),
160+
expr.apply(&mut |expr| {
161+
match expr {
162+
Expr::Exists(Exists { subquery, .. })
163+
| Expr::InSubquery(InSubquery { subquery, .. })
164+
| Expr::ScalarSubquery(subquery) => {
165+
check_subquery_expr(plan, &subquery.subquery, expr)?;
166+
}
167+
_ => {}
168+
};
169+
Ok(TreeNodeRecursion::Continue)
168170
})?;
169-
}
170-
171+
Ok::<(), DataFusionError>(())
172+
})?;
171173
Ok(TreeNodeRecursion::Continue)
172174
})?;
173175

0 commit comments

Comments
 (0)