From: Robert Haas Date: Tue, 19 Dec 2017 15:34:35 +0000 (-0500) Subject: Re-fix wrong costing of Sort under Gather Merge. X-Git-Tag: REL_11_BETA1~1051 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=38fc54703ea4203a537c58332f697c546eaa4bcf;p=postgresql Re-fix wrong costing of Sort under Gather Merge. Commit dc02c7bca4dccf7de278cdc6b3325a829e75b252 changed this call to create_sort_path() to take -1 rather than limit_tuples because, at that time, there was no way for a Sort beneath a Gather Merge to become a top-N sort. Later, commit 3452dc5240da43e833118484e1e9b4894d04431c provided a way for a Sort beneath a Gather Merge to become a top-N sort, but failed to revert the previous commit in the process. Do that. Report and analysis by Jeff Janes; patch by Thomas Munro; review by Amit Kapila and by me. Discussion: http://postgr.es/m/CAEepm=1BWtC34vUroA0Uqjw02MaqdUrW+d6WD85_k8SLyPiKHQ@mail.gmail.com --- diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c index e8bc15c35d..382791fadb 100644 --- a/src/backend/optimizer/plan/planner.c +++ b/src/backend/optimizer/plan/planner.c @@ -5059,7 +5059,7 @@ create_ordered_paths(PlannerInfo *root, ordered_rel, cheapest_partial_path, root->sort_pathkeys, - -1.0); + limit_tuples); total_groups = cheapest_partial_path->rows * cheapest_partial_path->parallel_workers;