pub fn normalize_sort_requirements(
sort_reqs: &[PhysicalSortRequirement],
eq_properties: &[EquivalentClass],
ordering_eq_properties: &[OrderingEquivalentClass]
) -> Vec<PhysicalSortRequirement>
Expand description
Transform sort_reqs
vector, to standardized version using eq_properties
and ordering_eq_properties
Assume eq_properties
states that Column a
and Column b
are aliases.
Also assume ordering_eq_properties
states that ordering vec![d ASC]
and vec![a ASC, c ASC]
are
ordering equivalent (in the sense that both describe the ordering of the table).
If the sort_reqs
input to this function were vec![b Some(ASC), c None]
,
This function converts sort_exprs
vec![b Some(ASC), c None]
to first vec![a Some(ASC), c None]
after considering eq_properties
Then converts vec![a Some(ASC), c None]
to vec![d Some(ASC)]
after considering ordering_eq_properties
.
Standardized version vec![d Some(ASC)]
is used in subsequent operations.