Class TransformCorrelatedDistinctAggregationWithoutProjection

  • All Implemented Interfaces:
    Rule<CorrelatedJoinNode>

    public class TransformCorrelatedDistinctAggregationWithoutProjection
    extends Object
    implements Rule<CorrelatedJoinNode>
    This rule decorrelates a correlated subquery of LEFT correlated join with distinct operator (grouped aggregation with no aggregation assignments) It is similar to TransformCorrelatedDistinctAggregationWithProjection rule, but does not support projection over aggregation in the subquery

    Transforms:

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