Re-exports§
Modules§
- delta_
join_ πsolver The solver for delta join, which determines lookup order of a join plan. All collection types in this module should beBTree
to ensure determinism between runs. - heuristic_
optimizer π - logical_
optimization π - optimizer_
context π - plan_
expr_ πvisitor - Defines all kinds of node in the plan tree, each node represent a relational expression.
- plan_
rewriter π - plan_
visitor π - Define all property of plan tree node, which actually represent property of the nodeβs result.
- rule πDefine all
Rule
Structs§
PlanRoot
is used to describe a plan. planner will construct aPlanRoot
withLogicalNode
. and required distribution and order. AndPlanRoot
can generate corresponding streaming or batch plan with optimization. the required Order and Distribution columns might be more than the output columns. for example:- TODO(rc): maybe we should rename this to
DependencyCollectorVisitor
.
Enums§
PlanPhase
is used to track the phase of thePlanRoot
. Usually, it begins fromLogical
and ends withBatch
orStream
, unless we want to construct aPlanRoot
from an intermediate phase. Typical phase transformation are:
Traits§
- itβs kind of like a
PlanVisitor<PlanRef>
, but with default behaviour of each rewrite method - The visitor for plan nodes. visit all inputs and return the ret value of the left most input, and leaf node returns
R::default()
Functions§
- const_
eval_ πexprs - As we always run the root stage locally, for some plan in root stage which need to execute in compute node we insert an additional exhchange before it to avoid to include it in the root stage.
- The purpose is same as
require_additional_exchange_on_root_in_distributed_mode
. We separate them for the different requirement of plan node in different execute mode.