11#[ cfg( all( feature = "integration" , test) ) ]
22mod tests {
33 use datafusion:: arrow:: util:: pretty:: pretty_format_batches;
4+ use datafusion:: physical_optimizer:: PhysicalOptimizerRule ;
45 use datafusion:: physical_plan:: { displayable, execute_stream} ;
56 use datafusion_distributed:: test_utils:: localhost:: start_localhost_context;
67 use datafusion_distributed:: test_utils:: parquet:: register_parquet_tables;
7- use datafusion_distributed:: test_utils:: plan:: distribute_aggregate;
8- use datafusion_distributed:: { assert_snapshot, DefaultSessionBuilder } ;
8+ use datafusion_distributed:: {
9+ assert_snapshot, DefaultSessionBuilder , DistributedPhysicalOptimizerRule ,
10+ } ;
911 use futures:: TryStreamExt ;
1012 use std:: error:: Error ;
1113
@@ -21,7 +23,9 @@ mod tests {
2123
2224 let physical_str = displayable ( physical. as_ref ( ) ) . indent ( true ) . to_string ( ) ;
2325
24- let physical_distributed = distribute_aggregate ( physical. clone ( ) ) ?;
26+ let physical_distributed = DistributedPhysicalOptimizerRule :: default ( )
27+ . with_maximum_partitions_per_task ( 1 )
28+ . optimize ( physical. clone ( ) , & Default :: default ( ) ) ?;
2529
2630 let physical_distributed_str = displayable ( physical_distributed. as_ref ( ) )
2731 . indent ( true )
@@ -48,21 +52,23 @@ mod tests {
4852 @r"
4953 ┌───── Stage 3 Task: partitions: 0,unassigned]
5054 │partitions [out:1 <-- in:1 ] ProjectionExec: expr=[count(*)@0 as count(*), RainToday@1 as RainToday]
51- │partitions [out:1 <-- in:8 ] SortPreservingMergeExec: [count(Int64(1))@2 ASC NULLS LAST]
52- │partitions [out:8 <-- in:8 ] SortExec: expr=[count(*)@0 ASC NULLS LAST], preserve_partitioning=[true]
53- │partitions [out:8 <-- in:8 ] ProjectionExec: expr=[count(Int64(1))@1 as count(*), RainToday@0 as RainToday, count(Int64(1))@1 as count(Int64(1))]
54- │partitions [out:8 <-- in:8 ] AggregateExec: mode=FinalPartitioned, gby=[RainToday@0 as RainToday], aggr=[count(Int64(1))]
55- │partitions [out:8 ] ArrowFlightReadExec: Stage 2
55+ │partitions [out:1 <-- in:3 ] SortPreservingMergeExec: [count(Int64(1))@2 ASC NULLS LAST]
56+ │partitions [out:3 <-- in:3 ] SortExec: expr=[count(*)@0 ASC NULLS LAST], preserve_partitioning=[true]
57+ │partitions [out:3 <-- in:3 ] ProjectionExec: expr=[count(Int64(1))@1 as count(*), RainToday@0 as RainToday, count(Int64(1))@1 as count(Int64(1))]
58+ │partitions [out:3 <-- in:3 ] AggregateExec: mode=FinalPartitioned, gby=[RainToday@0 as RainToday], aggr=[count(Int64(1))]
59+ │partitions [out:3 <-- in:3 ] CoalesceBatchesExec: target_batch_size=8192
60+ │partitions [out:3 ] ArrowFlightReadExec: Stage 2
5661 └──────────────────────────────────────────────────
57- ┌───── Stage 2 Task: partitions: 0..2,unassigned]
58- │partitions [out:3 <-- in:3 ] CoalesceBatchesExec: target_batch_size=8192
59- │partitions [out:3 <-- in:3 ] RepartitionExec: partitioning=Hash([RainToday@0], 3), input_partitions=3
60- │partitions [out:3 <-- in:1 ] RepartitionExec: partitioning=RoundRobinBatch(3), input_partitions=1
61- │partitions [out:1 <-- in:1 ] AggregateExec: mode=Partial, gby=[RainToday@0 as RainToday], aggr=[count(Int64(1))]
62- │partitions [out:1 ] ArrowFlightReadExec: Stage 1
62+ ┌───── Stage 2 Task: partitions: 0,unassigned],Task: partitions: 1,unassigned],Task: partitions: 2,unassigned]
63+ │partitions [out:3 <-- in:1 ] RepartitionExec: partitioning=Hash([RainToday@0], 3), input_partitions=1
64+ │partitions [out:1 <-- in:3 ] PartitionIsolatorExec [providing upto 1 partitions]
65+ │partitions [out:3 ] ArrowFlightReadExec: Stage 1
6366 └──────────────────────────────────────────────────
64- ┌───── Stage 1 Task: partitions: 0,unassigned]
65- │partitions [out:1 ] DataSourceExec: file_groups={1 group: [[/testdata/weather.parquet]]}, projection=[RainToday], file_type=parquet
67+ ┌───── Stage 1 Task: partitions: 0,unassigned],Task: partitions: 1,unassigned],Task: partitions: 2,unassigned]
68+ │partitions [out:3 <-- in:1 ] RepartitionExec: partitioning=RoundRobinBatch(3), input_partitions=1
69+ │partitions [out:1 <-- in:1 ] PartitionIsolatorExec [providing upto 1 partitions]
70+ │partitions [out:1 <-- in:1 ] AggregateExec: mode=Partial, gby=[RainToday@0 as RainToday], aggr=[count(Int64(1))]
71+ │partitions [out:1 ] DataSourceExec: file_groups={1 group: [[/testdata/weather.parquet]]}, projection=[RainToday], file_type=parquet
6672 └──────────────────────────────────────────────────
6773 " ,
6874 ) ;
0 commit comments