aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEtsuro Fujita <efujita@postgresql.org>2019-02-18 16:13:46 +0900
committerEtsuro Fujita <efujita@postgresql.org>2019-02-18 16:13:46 +0900
commit3fdc374b5d24b08119a91555ca2fae427af0b085 (patch)
treeb1f02ba2284dc1074300b253a5be87ce25c1e06d /src
parenta916bdc496a9d3fde48ca7c72478e7e4aecc5597 (diff)
downloadpostgresql-3fdc374b5d24b08119a91555ca2fae427af0b085.tar.gz
postgresql-3fdc374b5d24b08119a91555ca2fae427af0b085.zip
Save PathTargets for distinct/ordered relations in root->upper_targets[].
For the convenience of extensions, we previously only saved PathTargets for grouped, window, and final relations in root->upper_targets[] in grouping_planner(). To improve the convenience, save PathTargets for distinct and ordered relations as well. Author: Antonin Houska, with an additional change by me Discussion: https://postgr.es/m/10994.1549559088@localhost
Diffstat (limited to 'src')
-rw-r--r--src/backend/optimizer/plan/planner.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index 4e52c427211..1a58d733fa6 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -2035,6 +2035,8 @@ grouping_planner(PlannerInfo *root, bool inheritance_update,
* of the corresponding upperrels might not be needed for this query.
*/
root->upper_targets[UPPERREL_FINAL] = final_target;
+ root->upper_targets[UPPERREL_ORDERED] = final_target;
+ root->upper_targets[UPPERREL_DISTINCT] = sort_input_target;
root->upper_targets[UPPERREL_WINDOW] = sort_input_target;
root->upper_targets[UPPERREL_GROUP_AGG] = grouping_target;