@@ -49,7 +49,7 @@ impl PhysicalOptimizerRule for ReverseOrder {
4949 fn optimize (
5050 & self ,
5151 plan : Arc < dyn ExecutionPlan > ,
52- config : & ConfigOptions ,
52+ _config : & ConfigOptions ,
5353 ) -> Result < Arc < dyn ExecutionPlan > > {
5454 // Search for any SortExec nodes and try to optimize them
5555 plan. transform_up ( & |plan : Arc < dyn ExecutionPlan > | {
@@ -62,7 +62,7 @@ impl PhysicalOptimizerRule for ReverseOrder {
6262
6363 // First, check if the sort is already satisfied by input ordering
6464 // This is similar to analyze_immediate_sort_removal in EnforceSorting
65- if let Some ( input_ordering ) = sort_input. output_ordering ( ) {
65+ if let Some ( _input_ordering ) = sort_input. output_ordering ( ) {
6666 let input_eq_properties = sort_input. equivalence_properties ( ) ;
6767
6868 // Check if input already satisfies the sort requirement
@@ -181,8 +181,8 @@ impl TreeNodeRewriter for ReverseRewriter {
181181 . map ( |sort| !sort)
182182 . collect ( ) ;
183183 let exec = SortMergeJoinExec :: try_new (
184- sort_merge_join. left . clone ( ) ,
185- sort_merge_join. right . clone ( ) ,
184+ Arc :: clone ( & sort_merge_join. left ) ,
185+ Arc :: clone ( & sort_merge_join. right ) ,
186186 sort_merge_join. on . clone ( ) ,
187187 sort_merge_join. filter . clone ( ) ,
188188 sort_merge_join. join_type ,
@@ -285,8 +285,9 @@ impl PushdownReverse for DataSourceExec {
285285 reverse_parquet_source. with_predicate ( predicate) ;
286286 }
287287
288- let source = reverse_parquet_source
289- . with_statistics ( cfg. statistics ( ) . unwrap_or_default ( ) . clone ( ) ) ;
288+ let source = reverse_parquet_source. with_statistics (
289+ cfg. partition_statistics ( None ) . unwrap_or_default ( ) . clone ( ) ,
290+ ) ;
290291 let cfg = FileScanConfigBuilder :: from ( cfg) . with_source ( source) . build ( ) ;
291292
292293 return Some ( DataSourceExec :: new ( Arc :: new ( cfg) ) ) ;
@@ -374,7 +375,7 @@ mod tests {
374375 Arc :: new( arrow:: array:: StringArray :: from(
375376 values
376377 . iter( )
377- . map( |v| format!( "val_{}" , v ) )
378+ . map( |v| format!( "val_{v}" ) )
378379 . collect:: <Vec <_>>( ) ,
379380 ) ) ,
380381 Arc :: new( arrow:: array:: Float64Array :: from(
@@ -439,7 +440,7 @@ mod tests {
439440 let lex_ordering = LexOrdering :: new ( sort_expr) . unwrap ( ) ;
440441 let sort_exec = Arc :: new ( SortExec :: new ( lex_ordering, lazy_exec) ) ;
441442
442- let optimizer = ReverseOrder :: default ( ) ;
443+ let optimizer = ReverseOrder ;
443444 let result = optimizer. optimize ( sort_exec, & config) ?;
444445
445446 // The optimizer should either remove the sort or keep it if it can't verify the ordering
@@ -485,7 +486,7 @@ mod tests {
485486 SortExec :: new ( lex_ordering, repartitioned) . with_preserve_partitioning ( false ) ,
486487 ) ;
487488
488- let optimizer = ReverseOrder :: default ( ) ;
489+ let optimizer = ReverseOrder ;
489490 let result = optimizer. optimize ( sort_exec, & config) ?;
490491
491492 // Verify: Should be replaced with SortPreservingMergeExec
@@ -524,7 +525,7 @@ mod tests {
524525 let sort_exec =
525526 Arc :: new ( SortExec :: new ( lex_ordering, lazy_exec) . with_fetch ( Some ( 10 ) ) ) ;
526527
527- let optimizer = ReverseOrder :: default ( ) ;
528+ let optimizer = ReverseOrder ;
528529 let result = optimizer. optimize ( sort_exec, & config) ?;
529530
530531 // Should optimize to either GlobalLimitExec or keep as TopK (SortExec with fetch)
@@ -571,7 +572,7 @@ mod tests {
571572 . with_preserve_partitioning ( true ) , // preserve partitions
572573 ) ;
573574
574- let optimizer = ReverseOrder :: default ( ) ;
575+ let optimizer = ReverseOrder ;
575576 let result = optimizer. optimize ( sort_exec, & config) ?;
576577
577578 // Verify: Should be replaced with LocalLimitExec for multi-partition
@@ -619,7 +620,7 @@ mod tests {
619620 let lex_ordering = LexOrdering :: new ( sort_expr) . unwrap ( ) ;
620621 let sort_exec = Arc :: new ( SortExec :: new ( lex_ordering, unsorted_exec) ) ;
621622
622- let optimizer = ReverseOrder :: default ( ) ;
623+ let optimizer = ReverseOrder ;
623624 let result = optimizer. optimize ( sort_exec, & config) ?;
624625
625626 // Verify: SortExec should still be present since input is not sorted
@@ -667,7 +668,7 @@ mod tests {
667668 let lex_ordering = LexOrdering :: new ( asc_sort_expr) . unwrap ( ) ;
668669 let sort_exec = Arc :: new ( SortExec :: new ( lex_ordering, lazy_exec) ) ;
669670
670- let optimizer = ReverseOrder :: default ( ) ;
671+ let optimizer = ReverseOrder ;
671672 let result = optimizer. optimize ( sort_exec, & config) ?;
672673
673674 // The optimizer may or may not be able to reverse LazyMemoryExec
@@ -706,7 +707,7 @@ mod tests {
706707 // Add second unnecessary sort on top
707708 let outer_sort = Arc :: new ( SortExec :: new ( lex_ordering, inner_sort) ) ;
708709
709- let optimizer = ReverseOrder :: default ( ) ;
710+ let optimizer = ReverseOrder ;
710711 let result = optimizer. optimize ( outer_sort, & config) ?;
711712
712713 // Verify: At least one sort should be removed
@@ -739,7 +740,7 @@ mod tests {
739740 vec ! [ Arc :: new( RwLock :: new( generator) ) ] ,
740741 ) ?) ;
741742
742- let optimizer = ReverseOrder :: default ( ) ;
743+ let optimizer = ReverseOrder ;
743744 let result = optimizer. optimize ( Arc :: clone ( & lazy_exec) as _ , & config) ?;
744745
745746 // Verify: Plan should be unchanged
@@ -766,7 +767,7 @@ mod tests {
766767 #[ test]
767768 fn test_optimizer_properties ( ) {
768769 // Test basic optimizer properties
769- let optimizer = ReverseOrder :: default ( ) ;
770+ let optimizer = ReverseOrder ;
770771
771772 assert_eq ! ( optimizer. name( ) , "ReverseOrder" ) ;
772773 assert ! ( optimizer. schema_check( ) ) ;
@@ -775,7 +776,7 @@ mod tests {
775776 #[ test]
776777 fn test_reverse_order_clone ( ) {
777778 // Test that optimizer can be cloned
778- let optimizer1 = ReverseOrder :: default ( ) ;
779+ let optimizer1 = ReverseOrder ;
779780 let optimizer2 = optimizer1. clone ( ) ;
780781
781782 assert_eq ! ( optimizer1. name( ) , optimizer2. name( ) ) ;
@@ -789,7 +790,7 @@ mod tests {
789790 let config = ConfigOptions :: new ( ) ;
790791 let schema = create_test_schema ( ) ;
791792
792- let empty_exec = Arc :: new ( EmptyExec :: new ( schema . clone ( ) ) ) ;
793+ let empty_exec = Arc :: new ( EmptyExec :: new ( Arc :: clone ( & schema ) ) ) ;
793794 let sort_expr = vec ! [ PhysicalSortExpr {
794795 expr: Arc :: new( Column :: new( "col1" , 0 ) ) ,
795796 options: SortOptions {
@@ -801,7 +802,7 @@ mod tests {
801802 let lex_ordering = LexOrdering :: new ( sort_expr) . unwrap ( ) ;
802803 let sort_exec = Arc :: new ( SortExec :: new ( lex_ordering, empty_exec) ) ;
803804
804- let optimizer = ReverseOrder :: default ( ) ;
805+ let optimizer = ReverseOrder ;
805806 let result = optimizer. optimize ( sort_exec, & config) ?;
806807
807808 // EmptyExec has no output ordering, so sort should remain
@@ -842,7 +843,7 @@ mod tests {
842843 let lex_ordering = LexOrdering :: new ( sort_expr) . unwrap ( ) ;
843844 let sort_exec = Arc :: new ( SortExec :: new ( lex_ordering, lazy_exec) ) ;
844845
845- let optimizer = ReverseOrder :: default ( ) ;
846+ let optimizer = ReverseOrder ;
846847 let result = optimizer. optimize ( sort_exec, & config) ?;
847848
848849 // Verify the optimizer returns a valid plan (may or may not optimize depending on
0 commit comments