Skip to main content

Module join_order

Module join_order 

Source
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§

JoinCondition
Equijoin condition.
JoinOrderOptimizer
Determines an optimal join ordering using DPccp.
JoinOrderResult
Result of optimization: the chosen join tree plus the alias of the first non-empty relation (used as the engine’s primary table context).
JoinPredicate
Equijoin predicate between two named relations.
JoinRelation
Description of a base relation feeding a join-order search.

Enums§

JoinAlgorithm
Algorithm hint for an inner join.
JoinOrderTree
Output of the join order optimizer. The engine walks this tree to drive the actual row-tuple join algorithms.