Skip to main content

Module join_optimization

Module join_optimization 

Source
Expand description

JOIN Optimization Rules

This module contains optimization rules specifically for JOIN operations. These rules aim to improve JOIN performance through various transformations.

§Basic JOIN Optimization

  • PushProjectDownJoinRule: Push projection operations down to JOIN inputs
  • LeftJoinToInnerJoinRule: Convert LeftJoin to InnerJoin when possible
  • JoinConditionSimplifyRule: Simplify and deduplicate JOIN conditions
  • ExtractEquiJoinKeysRule: Move cross-side Filter equalities into InnerJoin keys

§Graph Traversal Optimization

  • JoinToExpandRule: Convert vertex-edge JOIN to ExpandAll
  • JoinToAppendVerticesRule: Convert edge-vertex JOIN to AppendVertices
  • MergeConsecutiveExpandRule: Merge consecutive ExpandAll into Traverse

§Advanced Optimization

  • JoinEliminationRule: Eliminate redundant JOIN operations
  • IndexJoinSelectionRule: Select index-based JOIN when appropriate
  • JoinReorderRule: Reorder multi-table JOINs for better performance

Re-exports§

pub use extract_equi_join_keys::ExtractEquiJoinKeysRule;
pub use index_join_selection::IndexJoinSelectionRule;
pub use join_condition_simplify::JoinConditionSimplifyRule;
pub use join_elimination::JoinEliminationRule;
pub use join_reorder::JoinReorderRule;
pub use join_to_append_vertices::JoinToAppendVerticesRule;
pub use join_to_expand::JoinToExpandRule;
pub use left_join_to_inner_join::LeftJoinToInnerJoinRule;
pub use merge_consecutive_expand::MergeConsecutiveExpandRule;
pub use push_project_down_join::PushProjectDownJoinRule;

Modules§

extract_equi_join_keys
Extract equi-join keys from a Filter above a keyless InnerJoin.
index_join_selection
Rules for index-based JOIN selection
join_condition_simplify
Rules for simplifying JOIN conditions
join_elimination
Rules for eliminating redundant JOIN operations
join_reorder
Rules for multi-table JOIN reordering
join_to_append_vertices
Rules for converting Edge-Vertex JOIN to AppendVertices
join_to_expand
Rules for converting Vertex-Edge JOIN to ExpandAll
left_join_to_inner_join
Rules for converting LeftJoin to InnerJoin
merge_consecutive_expand
Rules for merging consecutive ExpandAll operations into Traverse
push_project_down_join
Rules for pushing projection operations down to JOIN