From a0bacc9d5ba6e1dbc1b72091a6407604f1c21341 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sat, 1 Sep 2007 18:47:39 +0000 Subject: [PATCH] Since sort_bounded_heap makes state changes that should be made regardless of the number of tuples involved, it's incorrect to skip it when memtupcount = 1; the number of cycles saved is minuscule anyway. An alternative solution would be to pull the state changes out to the call site in tuplesort_performsort, but keeping them near the corresponding changes in make_bounded_heap seems marginally cleaner. Noticed by Greg Stark. --- src/backend/utils/sort/tuplesort.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/backend/utils/sort/tuplesort.c b/src/backend/utils/sort/tuplesort.c index 97cd532b71..f1472b8329 100644 --- a/src/backend/utils/sort/tuplesort.c +++ b/src/backend/utils/sort/tuplesort.c @@ -1068,8 +1068,7 @@ tuplesort_performsort(Tuplesortstate *state) * in memory, using a heap to eliminate excess tuples. Now we have * to transform the heap to a properly-sorted array. */ - if (state->memtupcount > 1) - sort_bounded_heap(state); + sort_bounded_heap(state); state->current = 0; state->eof_reached = false; state->markpos_offset = 0; -- 2.39.5