Expand Unary Logical Operator

Expand is a unary logical operator that represents Cube, Rollup, GroupingSets and TimeWindow logical operators after they have been resolved at analysis phase.

FIXME Examples for
1. Cube
2. Rollup
3. GroupingSets
4. See TimeWindow

val q = ...

scala> println(q.queryExecution.logical.numberedTreeString)
Expand logical operator is resolved to ExpandExec physical operator in BasicOperators execution planning strategy.
Table 1. Expand’s Properties
Name Description


AttributeSet from projections


Empty set of expressions

Analysis Phase

Expand logical operator is resolved to at analysis phase in the following logical evaluation rules:

Aggregate → (Cube|Rollup|GroupingSets) → constructAggregate → constructExpand
val spark: SparkSession = ...
// using q from the example above
val plan = q.queryExecution.logical

scala> println(plan.numberedTreeString)

Rule-Based Logical Query Optimization Phase

Creating Expand Instance

Expand takes the following when created:

results matching ""

    No results matching ""