summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/utils/sort/tuplesort.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/backend/utils/sort/tuplesort.c b/src/backend/utils/sort/tuplesort.c
index e5bc08fff9..015e4ea93b 100644
--- a/src/backend/utils/sort/tuplesort.c
+++ b/src/backend/utils/sort/tuplesort.c
@@ -1221,6 +1221,13 @@ tuplesort_begin_merge(TupleDesc tupDesc,
PrepareSortSupportFromOrderingOp(sortOperators[i], sortKey);
}
+ /*
+ * logical tape in this case is a sorted stream
+ */
+ state->maxTapes = combiner->conn_count;
+ state->tapeRange = combiner->conn_count;
+
+ state->mergeactive = (bool *) palloc0(combiner->conn_count * sizeof(bool));
state->tp_runs = (int *) palloc0(combiner->conn_count * sizeof(int));
state->tp_dummy = (int *) palloc0(combiner->conn_count * sizeof(int));
state->tp_tapenum = (int *) palloc0(combiner->conn_count * sizeof(int));
@@ -1230,6 +1237,9 @@ tuplesort_begin_merge(TupleDesc tupDesc,
state->tp_runs[i] = 1;
state->tp_tapenum[i] = i;
}
+
+ init_slab_allocator(state, 0);
+
beginmerge(state);
state->status = TSS_FINALMERGE;