]> granicus.if.org Git - postgresql/commit
Repair logic for reordering grouping sets optimization.
authorAndrew Gierth <rhodiumtoad@postgresql.org>
Sun, 30 Jun 2019 22:49:25 +0000 (23:49 +0100)
committerAndrew Gierth <rhodiumtoad@postgresql.org>
Sun, 30 Jun 2019 22:49:25 +0000 (23:49 +0100)
commita1637caee9c77e30aaf4afb5c51e15cb67c4f3e3
treea5f32a848914bc758dbf7f29dea753b0df9923cc
parent69da8c1e69efd3a5b1b0f1d9bd8b7b79a696fbc8
Repair logic for reordering grouping sets optimization.

The logic in reorder_grouping_sets to order grouping set elements to
match a pre-specified sort ordering was defective, resulting in
unnecessary sort nodes (though the query output would still be
correct). Repair, simplifying the code a little, and add a test.

Per report from Richard Guo, though I didn't use their patch. Original
bug seems to have been my fault.

Backpatch back to 9.5 where grouping sets were introduced.

Discussion: https://postgr.es/m/CAN_9JTzyjGcUjiBHxLsgqfk7PkdLGXiM=pwM+=ph2LsWw0WO1A@mail.gmail.com
src/backend/optimizer/plan/planner.c
src/test/regress/expected/groupingsets.out
src/test/regress/sql/groupingsets.sql