From: Robert Haas <rhaas@postgresql.org>
Date: Wed, 22 Mar 2017 18:42:03 +0000 (-0400)
Subject: Fix wrong costing of Sort under Gather Merge.
X-Git-Tag: REL_10_BETA1~555
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dc02c7bca4dccf7de278cdc6b3325a829e75b252;p=postgresql

Fix wrong costing of Sort under Gather Merge.

There's no mechanism for such a sort to become a top-N sort, so we
should pass -1 rather than limit_tuples to cost_sort().

Rushabh Lathia, per a report from Mithun Cy

Discussion: http://postgr.es/m/CAGPqQf1akRcSgC9=6iwx=sEPap9UvPpHJLzg8_N+OuHdb6fL+g@mail.gmail.com
---

diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index cbdea1f537..68d74cb432 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -4416,7 +4416,7 @@ create_ordered_paths(PlannerInfo *root,
 											 ordered_rel,
 											 cheapest_partial_path,
 											 root->sort_pathkeys,
-											 limit_tuples);
+											 -1.0);
 
 			total_groups = cheapest_partial_path->rows *
 				cheapest_partial_path->parallel_workers;