From: David Rowley Date: Tue, 9 Dec 2025 23:01:14 +0000 (+1300) Subject: Fix misleading comment in tuplesort.c X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=f275afc997d77ada991307d22703b08f1dedef13;p=postgresql.git Fix misleading comment in tuplesort.c A comment in tuplesort.c was claiming that the code was defining INITIAL_MEMTUPSIZE so that it *does not* exceed ALLOCSET_SEPARATE_THRESHOLD, but the code actually ensures that we purposefully *do* exceed ALLOCSET_SEPARATE_THRESHOLD for the initial allocation of the tuples array, as per reasons detailed in the commentary of grow_memtuples(). Also, there's not much need to repeat the mention about ALLOCSET_SEPARATE_THRESHOLD in each location where INITIAL_MEMTUPSIZE is used, so remove those comments. Author: ChangAo Chen Reviewed-by: Chao Li Reviewed-by: David G. Johnston Discussion: https://postgr.es/m/tencent_6FA14F85D6B5B5291532D6789E07F4765C08%40qq.com --- diff --git a/src/backend/utils/sort/tuplesort.c b/src/backend/utils/sort/tuplesort.c index c1fa7a97509..88ae529e843 100644 --- a/src/backend/utils/sort/tuplesort.c +++ b/src/backend/utils/sort/tuplesort.c @@ -111,11 +111,9 @@ #include "utils/tuplesort.h" /* - * Initial size of memtuples array. We're trying to select this size so that - * array doesn't exceed ALLOCSET_SEPARATE_THRESHOLD and so that the overhead of - * allocation might possibly be lowered. However, we don't consider array sizes - * less than 1024. - * + * Initial size of memtuples array. This must be more than + * ALLOCSET_SEPARATE_THRESHOLD; see comments in grow_memtuples(). Clamp at + * 1024 elements to avoid excessive reallocs. */ #define INITIAL_MEMTUPSIZE Max(1024, \ ALLOCSET_SEPARATE_THRESHOLD / sizeof(SortTuple) + 1) @@ -692,10 +690,6 @@ tuplesort_begin_common(int workMem, SortCoordinate coordinate, int sortopt) state->base.sortcontext = sortcontext; state->base.maincontext = maincontext; - /* - * Initial size of array must be more than ALLOCSET_SEPARATE_THRESHOLD; - * see comments in grow_memtuples(). - */ state->memtupsize = INITIAL_MEMTUPSIZE; state->memtuples = NULL; @@ -784,10 +778,6 @@ tuplesort_begin_batch(Tuplesortstate *state) state->memtupcount = 0; - /* - * Initial size of array must be more than ALLOCSET_SEPARATE_THRESHOLD; - * see comments in grow_memtuples(). - */ state->growmemtuples = true; state->slabAllocatorUsed = false; if (state->memtuples != NULL && state->memtupsize != INITIAL_MEMTUPSIZE)