v2-0001-ExecInitAgg-update-aggstate-numaggs-and-numtrans-.patch
text/x-patch
Filename: v2-0001-ExecInitAgg-update-aggstate-numaggs-and-numtrans-.patch
Type: text/x-patch
Part: 0
Patch
Format: format-patch
Series: patch v2-0001
Subject: ExecInitAgg: update aggstate->numaggs and ->numtrans earlier.
| File | + | − |
|---|---|---|
| src/backend/executor/nodeAgg.c | 2 | 9 |
From 95a2becb251415af6f82d6df871b66e8a429768b Mon Sep 17 00:00:00 2001 From: Jeff Davis <jeff@j-davis.com> Date: Wed, 20 Nov 2024 12:33:11 -0800 Subject: [PATCH v2 1/8] ExecInitAgg: update aggstate->numaggs and ->numtrans earlier. Functions hash_agg_entry_size() and build_hash_tables() and are relying on those to make accurate estimates. --- src/backend/executor/nodeAgg.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c index 53ead77ece..300163538a 100644 --- a/src/backend/executor/nodeAgg.c +++ b/src/backend/executor/nodeAgg.c @@ -3379,8 +3379,8 @@ ExecInitAgg(Agg *node, EState *estate, int eflags) max_aggno = Max(max_aggno, aggref->aggno); max_transno = Max(max_transno, aggref->aggtransno); } - numaggs = max_aggno + 1; - numtrans = max_transno + 1; + aggstate->numaggs = numaggs = max_aggno + 1; + aggstate->numtrans = numtrans = max_transno + 1; /* * For each phase, prepare grouping set data and fmgr lookup data for @@ -3943,13 +3943,6 @@ ExecInitAgg(Agg *node, EState *estate, int eflags) ReleaseSysCache(aggTuple); } - /* - * Update aggstate->numaggs to be the number of unique aggregates found. - * Also set numstates to the number of unique transition states found. - */ - aggstate->numaggs = numaggs; - aggstate->numtrans = numtrans; - /* * Last, check whether any more aggregates got added onto the node while * we processed the expressions for the aggregate arguments (including not -- 2.34.1