From: Robert Haas Date: Thu, 9 Mar 2017 17:05:54 +0000 (-0500) Subject: Fix a couple of planner bugs in Gather Merge. X-Git-Tag: jit-before-rebase-2017-11-03~1697 X-Git-Url: http://git.postgresql.org/gitweb/-?a=commitdiff_plain;h=0ee92e1c9b570f90d043e5b033a19b67497ea1f6;p=users%2Fandresfreund%2Fpostgres.git 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. --- diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c index e18c634a7b..d002e6d567 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 209f769632..02286d9c52 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);