• Oleg Smirnov's avatar
    MDEV-30660 Aggregation functions fail to leverage uniqueness property · 15623c7f
    Oleg Smirnov authored
    When executing a statement of the form
      SELECT AGGR_FN(DISTINCT c1, c2,..,cn) FROM t1,
    where AGGR_FN is an aggregate function such as COUNT(), AVG() or SUM(),
    and a unique index exists on table t1 covering some or all of the
    columns (c1, c2,..,cn), the retrieved values are inherently unique.
    Consequently, the need for de-duplication imposed by the DISTINCT
    clause can be eliminated, leading to optimization of aggregation
    operations.
    This optimization applies under the following conditions:
      - only one table involved in the join (not counting const tables)
      - some arguments of the aggregate function are fields
            (not functions/subqueries)
    
    This optimization extends to queries of the form
      SELECT AGGR_FN(c1, c2,..,cn) GROUP BY cx,..cy
    when a unique index covers some or all of the columns
    (c1, c2,..cn, cx,..cy)
    15623c7f
opt_trace.result 309 KB