pub fn need_data_exchange(plan: Arc<dyn ExecutionPlan>) -> bool
Expand description
Indicate whether a data exchange is needed for the input of plan
, which will be very helpful
especially for the distributed engine to judge whether need to deal with shuffling.
Currently there are 3 kinds of execution plan which needs data exchange
1. RepartitionExec for changing the partition number between two ExecutionPlan
s
2. CoalescePartitionsExec for collapsing all of the partitions into one without ordering guarantee
3. SortPreservingMergeExec for collapsing all of the sorted partitions into one with ordering guarantee