diff --git a/src/backend/executor/nodeGatherMerge.c b/src/backend/executor/nodeGatherMerge.c index 72f30ab..f4613f7 100644 --- a/src/backend/executor/nodeGatherMerge.c +++ b/src/backend/executor/nodeGatherMerge.c @@ -369,7 +369,7 @@ gather_merge_init(GatherMergeState *gm_state) gm_state->gm_tuple_buffers = (GMReaderTupleBuffer *) palloc0(sizeof(GMReaderTupleBuffer) * (gm_state->nreaders + 1)); - for (i = 0; i < gm_state->nreaders; i++) + for (i = 0; i < gm_state->nreaders + 1; i++) { /* Allocate the tuple array with MAX_TUPLE_STORE size */ gm_state->gm_tuple_buffers[i].tuple = @@ -412,7 +412,7 @@ reread: } initialize = false; - for (i = 0; i < nreaders; i++) + for (i = 0; i < nreaders + 1; i++) if (!gm_state->gm_tuple_buffers[i].done && (TupIsNull(gm_state->gm_slots[i]) || gm_state->gm_slots[i]->tts_isempty)) @@ -431,7 +431,7 @@ gather_merge_clear_slots(GatherMergeState *gm_state) { int i; - for (i = 0; i < gm_state->nreaders; i++) + for (i = 0; i < gm_state->nreaders + 1; i++) { pfree(gm_state->gm_tuple_buffers[i].tuple); gm_state->gm_slots[i] = ExecClearTuple(gm_state->gm_slots[i]);