@@ -26,7 +26,6 @@ use datafusion_common::{DataFusionError, Result};
2626use datafusion_expr:: expr:: Exists ;
2727use datafusion_expr:: expr:: InSubquery ;
2828use datafusion_expr:: expr_rewriter:: FunctionRewrite ;
29- use datafusion_expr:: utils:: inspect_expr_pre;
3029use datafusion_expr:: { Expr , LogicalPlan } ;
3130
3231use crate :: analyzer:: count_wildcard_rule:: CountWildcardRule ;
@@ -156,18 +155,21 @@ impl Analyzer {
156155/// Do necessary check and fail the invalid plan
157156fn 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