aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2017-03-09 12:05:54 -0500
committerRobert Haas <rhaas@postgresql.org>2017-03-09 12:06:49 -0500
commit0ee92e1c9b570f90d043e5b033a19b67497ea1f6 (patch)
treee68d89c55a0564cf5dcebe772e5c87ab6db0df26 /src
parentcd603a4d6b5381cb28e993c6219037c2582100c9 (diff)
downloadpostgresql-0ee92e1c9b570f90d043e5b033a19b67497ea1f6.tar.gz
postgresql-0ee92e1c9b570f90d043e5b033a19b67497ea1f6.zip
Fix a couple of planner bugs in Gather Merge.
Neha Sharma reported these to Rushabh Lathia just after I commit 355d3993c53ed62c5b53d020648e4fbcfbf5f155 went in. The patch is Rushabh's, with input from me.
Diffstat (limited to 'src')
-rw-r--r--src/backend/optimizer/plan/createplan.c3
-rw-r--r--src/backend/optimizer/plan/planner.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c
index e18c634a7be..d002e6d5672 100644
--- a/src/backend/optimizer/plan/createplan.c
+++ b/src/backend/optimizer/plan/createplan.c
@@ -1474,13 +1474,14 @@ create_gather_merge_plan(PlannerInfo *root, GatherMergePath *best_path)
Oid *sortOperators;
Oid *collations;
bool *nullsFirst;
+ List *tlist = build_path_tlist(root, &best_path->path);
/* As with Gather, it's best to project away columns in the workers. */
subplan = create_plan_recurse(root, best_path->subpath, CP_EXACT_TLIST);
/* See create_merge_append_plan for why there's no make_xxx function */
gm_plan = makeNode(GatherMerge);
- gm_plan->plan.targetlist = subplan->targetlist;
+ gm_plan->plan.targetlist = tlist;
gm_plan->num_workers = best_path->num_workers;
copy_generic_path_info(&gm_plan->plan, &best_path->path);
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index 209f7696326..02286d9c52f 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -3746,7 +3746,7 @@ create_grouping_paths(PlannerInfo *root,
create_gather_merge_path(root,
grouped_rel,
subpath,
- NULL,
+ partial_grouping_target,
root->group_pathkeys,
NULL,
&total_groups);