pub fn need_data_exchange(plan: Arc<dyn ExecutionPlan>) -> boolExpand 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 ExecutionPlans
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