fn get_repartition_requirement_status(
plan: &Arc<dyn ExecutionPlan>,
batch_size: usize,
should_use_estimates: bool,
) -> Result<Vec<RepartitionRequirementStatus>>Expand description
Calculates the RepartitionRequirementStatus for each children to generate
consistent and sensible (in terms of performance) distribution requirements.
As an example, a hash join’s left (build) child might produce
RepartitionRequirementStatus {
..,
hash_necessary: true
}while its right (probe) child might have very few rows and produce:
RepartitionRequirementStatus {
..,
hash_necessary: false
}These statuses are not consistent as all children should agree on hash partitioning. This function aligns the statuses to generate consistent hash partitions for each children. After alignment, the right child’s status would turn into:
RepartitionRequirementStatus {
..,
hash_necessary: true
}