Expand description
Join-order optimization.
Bridges DPccp join enumeration (crate::join_enumerator) and the
row-oriented join algorithms in uqa-joins. The optimizer accepts
a list of JoinRelation descriptors plus equijoin
JoinPredicate descriptors, builds an internal JoinGraph,
runs DPccp, and materializes the chosen plan into a
JoinOrderTree – a tree of join descriptors the engine
interprets to drive the actual row-tuple join algorithms.
JoinOrderTree retains the executable physical strategy selected by the
enumerator. Today relational equijoins are hash joins; the planner does not
pretend that a pre-existing index join is available when the engine cannot
execute one.
Structs§
- Join
Condition - Equijoin condition.
- Join
Order Optimizer - Determines an optimal join ordering using DPccp.
- Join
Order Result - Result of optimization: the chosen join tree plus the alias of the first non-empty relation (used as the engine’s primary table context).
- Join
Predicate - Equijoin predicate between two named relations.
- Join
Relation - Description of a base relation feeding a join-order search.
Enums§
- Join
Algorithm - Algorithm hint for an inner join.
- Join
Order Tree - Output of the join order optimizer. The engine walks this tree to drive the actual row-tuple join algorithms.