ResolveWithCTE Logical Resolution Rule¶
ResolveWithCTE is a logical resolution rule that the Logical Analyzer uses to resolveWithCTE for CTE query plans.
ResolveWithCTE is a Catalyst rule for transforming logical plans (Rule[LogicalPlan]).
ResolveWithCTE is part of Resolution fixed-point batch of rules.
Executing Rule¶
apply(
plan: LogicalPlan): LogicalPlan
apply does nothing and simply returns the given LogicalPlan when applied to a non-CTE query plan. Otherwise, apply resolveWithCTE.
apply is part of the Rule abstraction.
resolveWithCTE¶
resolveWithCTE(
plan: LogicalPlan,
cteDefMap: mutable.HashMap[Long, CTERelationDef]): LogicalPlan
resolveWithCTE requests the given logical operator to resolveOperatorsDownWithPruning for CTE logical operators:
- WithCTE
- CTERelationRef
- Others with
CTEand PLAN_EXPRESSION tree patterns
resolveWithCTE is a recursive function.