Skip to content

Commit d93bb81

Browse files
committed
Fix outdated CHUNKHDRSZ value in nodeAgg.c
CHUNKHDRSZ was defined as 16 bytes, which was true when that code went in, but since c6e0fe1, 8 is a more accurate value. Here we adjust it to use sizeof(MemoryChunk), which is normally 8, or 16 for cassert builds. c6e0fe1 first appeared in v16, so this is technically wrong in v16 up to master, but let's apply this only to master as adjusting this does influence the estimated number of batches in the aggregate costing code and we don't want to cause plan instability in released versions. Reviewed-by: Tom Lane Discussion: https://postgr.es/m/CAApHDvpMpRQvsTqZo3FinXkgytwxwF8sCyZm83xDj-1s_hLe+w@mail.gmail.com
1 parent 11012c5 commit d93bb81

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/backend/executor/nodeAgg.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@
272272
#include "utils/logtape.h"
273273
#include "utils/lsyscache.h"
274274
#include "utils/memutils.h"
275+
#include "utils/memutils_memorychunk.h"
275276
#include "utils/syscache.h"
276277
#include "utils/tuplesort.h"
277278

@@ -314,10 +315,9 @@
314315
#define HASHAGG_HLL_BIT_WIDTH 5
315316

316317
/*
317-
* Estimate chunk overhead as a constant 16 bytes. XXX: should this be
318-
* improved?
318+
* Assume the palloc overhead always uses sizeof(MemoryChunk) bytes.
319319
*/
320-
#define CHUNKHDRSZ 16
320+
#define CHUNKHDRSZ sizeof(MemoryChunk)
321321

322322
/*
323323
* Represents partitioned spill data for a single hashtable. Contains the

0 commit comments

Comments
 (0)