diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2016-11-10 11:31:56 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2016-11-10 11:31:56 -0500 |
commit | e1b449bea909fa70211841d508cfaf91d18a6abb (patch) | |
tree | dc7a2c07e60e7d0899e806fb2ced2e572e1aa8f8 | |
parent | 0b1b5033ac19236a4a23eed9232d74936717020e (diff) | |
download | postgresql-e1b449bea909fa70211841d508cfaf91d18a6abb.tar.gz postgresql-e1b449bea909fa70211841d508cfaf91d18a6abb.zip |
Fix partial aggregation for the case of a degenerate GROUP BY clause.
The plan generated for sorted partial aggregation with "GROUP BY constant"
included a Sort node with no sort keys, which the executor does not like.
Per report from Steve Randall. I'd add a regression test case if I could
think of a compact one, but it doesn't seem worth expending lots of cycles
on.
Report: <CABVd52UAdGXpg_rCk46egpNKYdXOzCjuJ1zG26E2xBe_8bj+Fg@mail.gmail.com>
-rw-r--r-- | src/backend/optimizer/plan/planner.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c index 644b8b6763d..d8c5dd34d6a 100644 --- a/src/backend/optimizer/plan/planner.c +++ b/src/backend/optimizer/plan/planner.c @@ -3741,11 +3741,11 @@ create_grouping_paths(PlannerInfo *root, &total_groups); /* - * Gather is always unsorted, so we'll need to sort, unless - * there's no GROUP BY clause, in which case there will only be a - * single group. + * Since Gather's output is always unsorted, we'll need to sort, + * unless there's no GROUP BY clause or a degenerate (constant) + * one, in which case there will only be a single group. */ - if (parse->groupClause) + if (root->group_pathkeys) path = (Path *) create_sort_path(root, grouped_rel, path, |