diff --git a/src/backend/access/gin/gininsert.c b/src/backend/access/gin/gininsert.c index a65acd891049..263b143e3132 100644 --- a/src/backend/access/gin/gininsert.c +++ b/src/backend/access/gin/gininsert.c @@ -1616,6 +1616,7 @@ _gin_parallel_merge(GinBuildState *state) Size tuplen; double reltuples = 0; GinBuffer *buffer; + MemoryContext oldCtx; /* GIN tuples from workers, merged by leader */ double numtuples = 0; @@ -1689,9 +1690,12 @@ _gin_parallel_merge(GinBuildState *state) oldCtx = MemoryContextSwitchTo(state->tmpCtx); + oldCtx = MemoryContextSwitchTo(state->tmpCtx); ginEntryInsert(&state->ginstate, buffer->attnum, buffer->key, buffer->category, buffer->items, buffer->nitems, &state->buildStats); + MemoryContextSwitchTo(oldCtx); + MemoryContextReset(state->tmpCtx); MemoryContextSwitchTo(oldCtx); MemoryContextReset(state->tmpCtx); @@ -1720,9 +1724,12 @@ _gin_parallel_merge(GinBuildState *state) oldCtx = MemoryContextSwitchTo(state->tmpCtx); + oldCtx = MemoryContextSwitchTo(state->tmpCtx); ginEntryInsert(&state->ginstate, buffer->attnum, buffer->key, buffer->category, buffer->items, buffer->nfrozen, &state->buildStats); + MemoryContextSwitchTo(oldCtx); + MemoryContextReset(state->tmpCtx); MemoryContextSwitchTo(oldCtx); MemoryContextReset(state->tmpCtx);