diff options
author | Tomas Vondra <tomas.vondra@postgresql.org> | 2023-12-30 22:50:54 +0100 |
---|---|---|
committer | Tomas Vondra <tomas.vondra@postgresql.org> | 2023-12-30 23:15:04 +0100 |
commit | 6c63bcbf3ccf555f02a8fd8b2acaf01a6e94cb97 (patch) | |
tree | c7bfb309c0aa09e27ba008b3c01e8bea1ef9c249 /src/backend/utils/sort/tuplesortvariants.c | |
parent | 5632d6e18a8afd586a99f680eddddc38b4ead769 (diff) | |
download | postgresql-6c63bcbf3ccf555f02a8fd8b2acaf01a6e94cb97.tar.gz postgresql-6c63bcbf3ccf555f02a8fd8b2acaf01a6e94cb97.zip |
Minor cleanup of the BRIN parallel build code
Commit b437571714 added support for parallel builds for BRIN indexes,
using code similar to BTREE parallel builds, and also a new tuplesort
variant. This commit simplifies the new code in two ways:
* The "spool" grouping tuplesort and the heap/index is not necessary.
The heap/index are available as separate arguments, causing confusion.
So remove the spool, and use the tuplesort directly.
* The new tuplesort variant does not need the heap/index, as it sorts
simply by the range block number, without accessing the tuple data.
So simplify that too.
Initial report and patch by Ranier Vilela, further cleanup by me.
Author: Ranier Vilela
Discussion: https://postgr.es/m/CAEudQAqD7f2i4iyEaAz-5o-bf6zXVX-AkNUBm-YjUXEemaEh6A%40mail.gmail.com
Diffstat (limited to 'src/backend/utils/sort/tuplesortvariants.c')
-rw-r--r-- | src/backend/utils/sort/tuplesortvariants.c | 26 |
1 files changed, 2 insertions, 24 deletions
diff --git a/src/backend/utils/sort/tuplesortvariants.c b/src/backend/utils/sort/tuplesortvariants.c index 90fc605f1ca..27425880a5f 100644 --- a/src/backend/utils/sort/tuplesortvariants.c +++ b/src/backend/utils/sort/tuplesortvariants.c @@ -138,16 +138,6 @@ typedef struct } TuplesortIndexHashArg; /* - * Data struture pointed by "TuplesortPublic.arg" for the index_brin subcase. - */ -typedef struct -{ - TuplesortIndexArg index; - - /* XXX do we need something here? */ -} TuplesortIndexBrinArg; - -/* * Data struture pointed by "TuplesortPublic.arg" for the Datum case. * Set by tuplesort_begin_datum and used only by the DatumTuple routines. */ @@ -562,20 +552,13 @@ tuplesort_begin_index_gist(Relation heapRel, } Tuplesortstate * -tuplesort_begin_index_brin(Relation heapRel, - Relation indexRel, - int workMem, +tuplesort_begin_index_brin(int workMem, SortCoordinate coordinate, int sortopt) { Tuplesortstate *state = tuplesort_begin_common(workMem, coordinate, sortopt); TuplesortPublic *base = TuplesortstateGetPublic(state); - MemoryContext oldcontext; - TuplesortIndexBrinArg *arg; - - oldcontext = MemoryContextSwitchTo(base->maincontext); - arg = (TuplesortIndexBrinArg *) palloc(sizeof(TuplesortIndexBrinArg)); #ifdef TRACE_SORT if (trace_sort) @@ -592,12 +575,7 @@ tuplesort_begin_index_brin(Relation heapRel, base->writetup = writetup_index_brin; base->readtup = readtup_index_brin; base->haveDatum1 = true; - base->arg = arg; - - arg->index.heapRel = heapRel; - arg->index.indexRel = indexRel; - - MemoryContextSwitchTo(oldcontext); + base->arg = NULL; return state; } |