Class TransformCorrelatedDistinctAggregationWithProjection

  • All Implemented Interfaces:
    Rule<CorrelatedJoinNode>

    public class TransformCorrelatedDistinctAggregationWithProjection
    extends Object
    implements Rule<CorrelatedJoinNode>
    This rule decorrelates a correlated subquery of LEFT correlated join with distinct operator (grouped aggregation with no aggregation assignments)

    Transforms:

     - CorrelatedJoin LEFT (correlation: [c], filter: true, output: a, x)
          - Input (a, c)
          - Project (x <- b + 100)
               - Aggregation "distinct operator" group by [b]
                    - Source (b) with correlated filter (b > c)
     
    Into:
     - Project (a <- a, x <- b + 100)
          - Aggregation "distinct operator" group by [a, c, unique, b]
               - LEFT join (filter: b > c)
                    - UniqueId (unique)
                         - Input (a, c)
                    - Source (b) decorrelated