@@ -100,7 +100,7 @@ impl DefaultExpressionConvertor {
100100
101101impl ExpressionConvertor for DefaultExpressionConvertor {
102102 fn can_be_pushed_down ( & self , expr : & Arc < dyn PhysicalExpr > , schema : & Schema ) -> bool {
103- can_be_pushed_down ( expr, schema)
103+ can_be_pushed_down_impl ( expr, schema)
104104 }
105105
106106 fn convert ( & self , df : & dyn PhysicalExpr ) -> VortexResult < Expression > {
@@ -241,7 +241,7 @@ fn try_operator_from_df(value: &DFOperator) -> VortexResult<Operator> {
241241 }
242242}
243243
244- pub ( crate ) fn can_be_pushed_down ( df_expr : & Arc < dyn PhysicalExpr > , schema : & Schema ) -> bool {
244+ fn can_be_pushed_down_impl ( df_expr : & Arc < dyn PhysicalExpr > , schema : & Schema ) -> bool {
245245 // We currently do not support pushdown of dynamic expressions in DF.
246246 // See issue: https://github.com/vortex-data/vortex/issues/4034
247247 if is_dynamic_physical_expr ( df_expr) {
@@ -257,20 +257,24 @@ pub(crate) fn can_be_pushed_down(df_expr: &Arc<dyn PhysicalExpr>, schema: &Schem
257257 . ok ( )
258258 . is_some_and ( |field| supported_data_types ( field. data_type ( ) ) )
259259 } else if let Some ( like) = expr. downcast_ref :: < df_expr:: LikeExpr > ( ) {
260- can_be_pushed_down ( like. expr ( ) , schema) && can_be_pushed_down ( like. pattern ( ) , schema)
260+ can_be_pushed_down_impl ( like. expr ( ) , schema)
261+ && can_be_pushed_down_impl ( like. pattern ( ) , schema)
261262 } else if let Some ( lit) = expr. downcast_ref :: < df_expr:: Literal > ( ) {
262263 supported_data_types ( & lit. value ( ) . data_type ( ) )
263264 } else if expr. downcast_ref :: < df_expr:: CastExpr > ( ) . is_some ( )
264265 || expr. downcast_ref :: < df_expr:: CastColumnExpr > ( ) . is_some ( )
265266 {
266267 true
267268 } else if let Some ( is_null) = expr. downcast_ref :: < df_expr:: IsNullExpr > ( ) {
268- can_be_pushed_down ( is_null. arg ( ) , schema)
269+ can_be_pushed_down_impl ( is_null. arg ( ) , schema)
269270 } else if let Some ( is_not_null) = expr. downcast_ref :: < df_expr:: IsNotNullExpr > ( ) {
270- can_be_pushed_down ( is_not_null. arg ( ) , schema)
271+ can_be_pushed_down_impl ( is_not_null. arg ( ) , schema)
271272 } else if let Some ( in_list) = expr. downcast_ref :: < df_expr:: InListExpr > ( ) {
272- can_be_pushed_down ( in_list. expr ( ) , schema)
273- && in_list. list ( ) . iter ( ) . all ( |e| can_be_pushed_down ( e, schema) )
273+ can_be_pushed_down_impl ( in_list. expr ( ) , schema)
274+ && in_list
275+ . list ( )
276+ . iter ( )
277+ . all ( |e| can_be_pushed_down_impl ( e, schema) )
274278 } else if let Some ( scalar_fn) = expr. downcast_ref :: < ScalarFunctionExpr > ( ) {
275279 can_scalar_fn_be_pushed_down ( scalar_fn)
276280 } else {
@@ -282,8 +286,8 @@ pub(crate) fn can_be_pushed_down(df_expr: &Arc<dyn PhysicalExpr>, schema: &Schem
282286fn can_binary_be_pushed_down ( binary : & df_expr:: BinaryExpr , schema : & Schema ) -> bool {
283287 let is_op_supported = try_operator_from_df ( binary. op ( ) ) . is_ok ( ) ;
284288 is_op_supported
285- && can_be_pushed_down ( binary. left ( ) , schema)
286- && can_be_pushed_down ( binary. right ( ) , schema)
289+ && can_be_pushed_down_impl ( binary. left ( ) , schema)
290+ && can_be_pushed_down_impl ( binary. right ( ) , schema)
287291}
288292
289293fn supported_data_types ( dt : & DataType ) -> bool {
@@ -548,30 +552,30 @@ mod tests {
548552 fn test_can_be_pushed_down_column_supported ( test_schema : Schema ) {
549553 let col_expr = Arc :: new ( df_expr:: Column :: new ( "id" , 0 ) ) as Arc < dyn PhysicalExpr > ;
550554
551- assert ! ( can_be_pushed_down ( & col_expr, & test_schema) ) ;
555+ assert ! ( can_be_pushed_down_impl ( & col_expr, & test_schema) ) ;
552556 }
553557
554558 #[ rstest]
555559 fn test_can_be_pushed_down_column_unsupported_type ( test_schema : Schema ) {
556560 let col_expr =
557561 Arc :: new ( df_expr:: Column :: new ( "unsupported_list" , 5 ) ) as Arc < dyn PhysicalExpr > ;
558562
559- assert ! ( !can_be_pushed_down ( & col_expr, & test_schema) ) ;
563+ assert ! ( !can_be_pushed_down_impl ( & col_expr, & test_schema) ) ;
560564 }
561565
562566 #[ rstest]
563567 fn test_can_be_pushed_down_column_not_found ( test_schema : Schema ) {
564568 let col_expr = Arc :: new ( df_expr:: Column :: new ( "nonexistent" , 99 ) ) as Arc < dyn PhysicalExpr > ;
565569
566- assert ! ( !can_be_pushed_down ( & col_expr, & test_schema) ) ;
570+ assert ! ( !can_be_pushed_down_impl ( & col_expr, & test_schema) ) ;
567571 }
568572
569573 #[ rstest]
570574 fn test_can_be_pushed_down_literal_supported ( test_schema : Schema ) {
571575 let lit_expr =
572576 Arc :: new ( df_expr:: Literal :: new ( ScalarValue :: Int32 ( Some ( 42 ) ) ) ) as Arc < dyn PhysicalExpr > ;
573577
574- assert ! ( can_be_pushed_down ( & lit_expr, & test_schema) ) ;
578+ assert ! ( can_be_pushed_down_impl ( & lit_expr, & test_schema) ) ;
575579 }
576580
577581 #[ rstest]
@@ -581,7 +585,7 @@ mod tests {
581585 let lit_expr =
582586 Arc :: new ( df_expr:: Literal :: new ( unsupported_literal) ) as Arc < dyn PhysicalExpr > ;
583587
584- assert ! ( !can_be_pushed_down ( & lit_expr, & test_schema) ) ;
588+ assert ! ( !can_be_pushed_down_impl ( & lit_expr, & test_schema) ) ;
585589 }
586590
587591 #[ rstest]
@@ -592,7 +596,7 @@ mod tests {
592596 let binary_expr = Arc :: new ( df_expr:: BinaryExpr :: new ( left, DFOperator :: Eq , right) )
593597 as Arc < dyn PhysicalExpr > ;
594598
595- assert ! ( can_be_pushed_down ( & binary_expr, & test_schema) ) ;
599+ assert ! ( can_be_pushed_down_impl ( & binary_expr, & test_schema) ) ;
596600 }
597601
598602 #[ rstest]
@@ -606,7 +610,7 @@ mod tests {
606610 right,
607611 ) ) as Arc < dyn PhysicalExpr > ;
608612
609- assert ! ( !can_be_pushed_down ( & binary_expr, & test_schema) ) ;
613+ assert ! ( !can_be_pushed_down_impl ( & binary_expr, & test_schema) ) ;
610614 }
611615
612616 #[ rstest]
@@ -617,7 +621,7 @@ mod tests {
617621 let binary_expr = Arc :: new ( df_expr:: BinaryExpr :: new ( left, DFOperator :: Eq , right) )
618622 as Arc < dyn PhysicalExpr > ;
619623
620- assert ! ( !can_be_pushed_down ( & binary_expr, & test_schema) ) ;
624+ assert ! ( !can_be_pushed_down_impl ( & binary_expr, & test_schema) ) ;
621625 }
622626
623627 #[ rstest]
@@ -629,7 +633,7 @@ mod tests {
629633 let like_expr =
630634 Arc :: new ( df_expr:: LikeExpr :: new ( false , false , expr, pattern) ) as Arc < dyn PhysicalExpr > ;
631635
632- assert ! ( can_be_pushed_down ( & like_expr, & test_schema) ) ;
636+ assert ! ( can_be_pushed_down_impl ( & like_expr, & test_schema) ) ;
633637 }
634638
635639 #[ rstest]
@@ -641,6 +645,6 @@ mod tests {
641645 let like_expr =
642646 Arc :: new ( df_expr:: LikeExpr :: new ( false , false , expr, pattern) ) as Arc < dyn PhysicalExpr > ;
643647
644- assert ! ( !can_be_pushed_down ( & like_expr, & test_schema) ) ;
648+ assert ! ( !can_be_pushed_down_impl ( & like_expr, & test_schema) ) ;
645649 }
646650}
0 commit comments