WithCTEStrategy Execution Planning Strategy¶
WithCTEStrategy is an execution planning strategy to plan WithCTE and CTERelationRef logical operators.
Executing Rule¶
apply(
plan: LogicalPlan): Seq[SparkPlan]
apply plans WithCTE and CTERelationRef logical operators.
For a WithCTE, apply removes the WithCTE layer by adding the CTERelationDefs to the (thread-local) collection of CTERelationDefs (by their IDs) and marking the logical plan to plan later.
For a CTERelationRef, apply finds the logical plan for the cteId (in the (thread-local) collection of CTERelationDefs) and creates a Project logical operator (over Alias expressions).
In the end, apply creates a ShuffleExchangeExec physical operator with the Project (to plan later), RoundRobinPartitioning output partitioning and REPARTITION_BY_COL shuffle origin.
apply is part of the GenericStrategy abstraction.