generate_dependency_orderings

Function generate_dependency_orderings 

Source
pub fn generate_dependency_orderings(
    dependencies: &Dependencies,
    dependency_map: &DependencyMap,
) -> Vec<LexOrdering>
Expand description

Generates all possible orderings where dependencies are satisfied for the current projection expression.

§Example

If dependencies is a + b ASC and the dependency map holds dependencies

  • a ASC –> [c ASC]
  • b ASC –> [d DESC],

This function generates these two sort orders

  • [c ASC, d DESC, a + b ASC]
  • [d DESC, c ASC, a + b ASC]

§Parameters

  • dependencies - Set of relevant expressions.
  • dependency_map - Map of dependencies for expressions that may appear in dependencies.

§Returns

A vector of lexical orderings (Vec<LexOrdering>) representing all valid orderings based on the given dependencies.