Module sort_pushdown

Module sort_pushdown 

Source

StructsΒ§

ParentRequirements
This is a β€œdata class” we use within the EnforceSorting rule to push down SortExec in the plan. In some cases, we can reduce the total computational cost by pushing down SortExecs through some executors. The object carries the parent required ordering and the (optional) fetch value of the parent node as its data.

EnumsΒ§

RequirementsCompatibility πŸ”’
Define the Requirements Compatibility

FunctionsΒ§

assign_initial_requirements
Assigns the ordering requirement of the root node to the its children.
build_join_column_index πŸ”’
determine_children_requirement πŸ”’
Determine children requirements:
expr_source_side πŸ”’
handle_custom_pushdown πŸ”’
Handles the custom pushdown of parent-required sorting requirements down to the child execution plans, considering whether the input order is maintained.
handle_hash_join πŸ”’
min_fetch πŸ”’
pushdown_requirement_to_children πŸ”’
Calculate the pushdown ordering requirements for children. If sort cannot be pushed down, return None.
pushdown_sorts
Tries to push down the sort requirements as far as possible, if decides a SortExec is unnecessary removes it.
pushdown_sorts_helper πŸ”’
pushdown_would_violate_requirements πŸ”’
Return true if pushing the sort requirements through a node would violate the input sorting requirements for the plan
try_pushdown_requirements_to_join πŸ”’

Type AliasesΒ§

SortPushDown