Class TransformCorrelatedDistinctAggregationWithoutProjection

java.lang.Object
io.trino.sql.planner.iterative.rule.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 invalid input: '<'- a, b invalid input: '<'- b)
      - Aggregation "distinct operator" group by [a, c, unique, b]
           - LEFT join (filter: b > c)
                - UniqueId (unique)
                     - Input (a, c)
                - Source (b) decorrelated