aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeff Davis <jdavis@postgresql.org>2020-07-12 16:46:19 -0700
committerJeff Davis <jdavis@postgresql.org>2020-07-12 22:59:32 -0700
commit0babd109801e5ecd90df29589c23c6daf3ae69f7 (patch)
tree74794f9fdba29a17a5ff85c586fd4e6cddecdbf3 /src
parentd973747281caece520236e93d255c654cc613ec9 (diff)
downloadpostgresql-0babd109801e5ecd90df29589c23c6daf3ae69f7.tar.gz
postgresql-0babd109801e5ecd90df29589c23c6daf3ae69f7.zip
Revert "Use CP_SMALL_TLIST for hash aggregate"
This reverts commit 4cad2534da6d17067d98cf04be2dfc1bda8f2cd0 due to a performance regression. It will be replaced by a new approach in an upcoming commit. Reported-by: Andres Freund Discussion: https://postgr.es/m/20200614181418.mx4bvljmfkkhoqzl@alap3.anarazel.de Backpatch-through: 13
Diffstat (limited to 'src')
-rw-r--r--src/backend/optimizer/plan/createplan.c28
1 files changed, 4 insertions, 24 deletions
diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c
index eb9543f6add..9941dfe65e4 100644
--- a/src/backend/optimizer/plan/createplan.c
+++ b/src/backend/optimizer/plan/createplan.c
@@ -2113,22 +2113,12 @@ create_agg_plan(PlannerInfo *root, AggPath *best_path)
Plan *subplan;
List *tlist;
List *quals;
- int flags;
/*
* Agg can project, so no need to be terribly picky about child tlist, but
- * we do need grouping columns to be available. We are a bit more careful
- * with hash aggregate, where we explicitly request small tlist to
- * minimize I/O needed for spilling (we can't be sure spilling won't be
- * necessary, so we just do it every time).
+ * we do need grouping columns to be available
*/
- flags = CP_LABEL_TLIST;
-
- /* ensure small tlist for hash aggregate */
- if (best_path->aggstrategy == AGG_HASHED)
- flags |= CP_SMALL_TLIST;
-
- subplan = create_plan_recurse(root, best_path->subpath, flags);
+ subplan = create_plan_recurse(root, best_path->subpath, CP_LABEL_TLIST);
tlist = build_path_tlist(root, &best_path->path);
@@ -2210,7 +2200,6 @@ create_groupingsets_plan(PlannerInfo *root, GroupingSetsPath *best_path)
int maxref;
List *chain;
ListCell *lc;
- int flags;
/* Shouldn't get here without grouping sets */
Assert(root->parse->groupingSets);
@@ -2218,18 +2207,9 @@ create_groupingsets_plan(PlannerInfo *root, GroupingSetsPath *best_path)
/*
* Agg can project, so no need to be terribly picky about child tlist, but
- * we do need grouping columns to be available. We are a bit more careful
- * with hash aggregate, where we explicitly request small tlist to
- * minimize I/O needed for spilling (we can't be sure spilling won't be
- * necessary, so we just do it every time).
+ * we do need grouping columns to be available
*/
- flags = CP_LABEL_TLIST;
-
- /* ensure small tlist for hash aggregate */
- if (best_path->aggstrategy == AGG_HASHED)
- flags |= CP_SMALL_TLIST;
-
- subplan = create_plan_recurse(root, best_path->subpath, flags);
+ subplan = create_plan_recurse(root, best_path->subpath, CP_LABEL_TLIST);
/*
* Compute the mapping from tleSortGroupRef to column index in the child's