replace_order_preserving_variants

Function replace_order_preserving_variants 

Source
pub fn replace_order_preserving_variants(
    context: DistributionContext,
) -> Result<DistributionContext>
Expand description

Updates the DistributionContext if preserving ordering while changing partitioning is not helpful or desirable.

Assume that following plan is given:

"SortPreservingMergeExec: \[a@0 ASC]"
"  RepartitionExec: partitioning=RoundRobinBatch(10), input_partitions=10, preserve_order=true",
"    RepartitionExec: partitioning=RoundRobinBatch(10), input_partitions=2, preserve_order=true",
"      DataSourceExec: file_groups={2 groups: \[\[x], \[y]]}, projection=\[a, b, c, d, e], output_ordering=\[a@0 ASC], file_type=parquet",

This function converts plan above to the following:

"CoalescePartitionsExec"
"  RepartitionExec: partitioning=RoundRobinBatch(10), input_partitions=10",
"    RepartitionExec: partitioning=RoundRobinBatch(10), input_partitions=2",
"      DataSourceExec: file_groups={2 groups: \[\[x], \[y]]}, projection=\[a, b, c, d, e], output_ordering=\[a@0 ASC], file_type=parquet",