From 2174d40117f62099c7b11a2d43d163b7b9271d39 Mon Sep 17 00:00:00 2001 From: Jeff Davis Date: Mon, 8 Jun 2020 20:59:45 -0700 Subject: [PATCH] Fix HashAgg regression from choosing too many initial buckets. Diagnosis by Andres. Reported-by: Pavel Stehule Discussion: https://postgr.es/m/CAFj8pRDLVakD5Aagt3yZeEQeTeEWaS3YE5h8XC3Q3qJ6TYkc2Q%40mail.gmail.com Backpatch-through: 13 --- src/backend/executor/nodeAgg.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c index 26111327ca..331acee281 100644 --- a/src/backend/executor/nodeAgg.c +++ b/src/backend/executor/nodeAgg.c @@ -294,9 +294,6 @@ #define HASHAGG_READ_BUFFER_SIZE BLCKSZ #define HASHAGG_WRITE_BUFFER_SIZE BLCKSZ -/* minimum number of initial hash table buckets */ -#define HASHAGG_MIN_BUCKETS 256 - /* * Estimate chunk overhead as a constant 16 bytes. XXX: should this be * improved? @@ -1926,9 +1923,8 @@ hash_choose_num_buckets(double hashentrysize, long ngroups, Size memory) if (nbuckets > max_nbuckets) nbuckets = max_nbuckets; - if (nbuckets < HASHAGG_MIN_BUCKETS) - nbuckets = HASHAGG_MIN_BUCKETS; - return nbuckets; + + return Max(nbuckets, 1); } /*