Currently the optimizer doesn't cannot take into account duplicate column references in the GROUP/ORDER BY clauses. As a result, queries like:
will not use an index on t1(a), even though the duplicate columns
do not change the meaning of the query.
This is a simple task to remove duplicates in the order/group lists.
Care should be taken of queries with the ROLLUP modifier.
There is already an implementation attached to this task. The implementation has to be verified/changed so that:
- it takes care of queries with ROLLUP,
- it is verified that the place where duplicate removal is done covers all cases when it can and should be done,
- there is sufficient coverage with test cases.