aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/utils/sort/psort.c18
-rw-r--r--src/include/utils/psort.h4
2 files changed, 12 insertions, 10 deletions
diff --git a/src/backend/utils/sort/psort.c b/src/backend/utils/sort/psort.c
index df40b0809a1..05a6d8ee494 100644
--- a/src/backend/utils/sort/psort.c
+++ b/src/backend/utils/sort/psort.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/sort/Attic/psort.c,v 1.8 1997/08/06 05:38:38 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/sort/Attic/psort.c,v 1.9 1997/08/06 07:02:48 momjian Exp $
*
* NOTES
* Sorts the first relation into the second relation.
@@ -123,7 +123,7 @@ psort_begin(Sort *node, int nkeys, ScanKey key)
PS(node)->BytesRead = 0;
PS(node)->BytesWritten = 0;
PS(node)->treeContext.tupDesc =
- ExecGetTupType(outerPlan((Plan *)node));
+ ExecGetTupType(outerPlan((Plan *)node));
PS(node)->treeContext.nKeys = nkeys;
PS(node)->treeContext.scanKeys = key;
PS(node)->treeContext.sortMem = SortMem * 1024;
@@ -276,7 +276,7 @@ initialrun(Sort *node, bool *empty)
tp = PS(node)->Tape;
- if ((bool)createrun(node, tp->tp_file, empty) != false) {
+ if ((bool)createrun(node, NULL, empty) != false) {
if (! PS(node)->using_tape_files)
inittapes(node);
extrapasses = 0;
@@ -307,7 +307,7 @@ initialrun(Sort *node, bool *empty)
} /* D3 */
if (extrapasses)
if (--extrapasses) {
- dumptuples(node);
+ dumptuples(tp->tp_file, node);
ENDRUN(tp->tp_file);
continue;
} else
@@ -360,9 +360,11 @@ createrun(Sort *node, FILE *file, bool *empty)
}
lasttuple = tup = gettuple(&PS(node)->Tuples, &junk,
&PS(node)->treeContext);
- if (! PS(node)->using_tape_files)
+ if (! PS(node)->using_tape_files) {
inittapes(node);
- PUTTUP(node, tup, PS(node)->Tape->tp_file);
+ file = PS(node)->Tape->tp_file; /* was NULL */
+ }
+ PUTTUP(node, tup, file);
TRACEOUT(createrun, tup);
}
if (LACKMEM(node))
@@ -400,7 +402,7 @@ createrun(Sort *node, FILE *file, bool *empty)
FREE(lasttuple);
TRACEMEM(createrun);
}
- dumptuples(node);
+ dumptuples(file, node);
if (PS(node)->using_tape_files)
ENDRUN(file);
/* delimit the end of the run */
@@ -561,7 +563,7 @@ merge(Sort *node, struct tape *dest)
* dumptuples - stores all the tuples in tree into file
*/
void
-dumptuples(Sort *node)
+dumptuples(FILE *file, Sort *node)
{
register struct leftist *tp;
register struct leftist *newp;
diff --git a/src/include/utils/psort.h b/src/include/utils/psort.h
index 93e72061d08..c6c6c29fb91 100644
--- a/src/include/utils/psort.h
+++ b/src/include/utils/psort.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: psort.h,v 1.5 1997/08/06 05:38:46 momjian Exp $
+ * $Id: psort.h,v 1.6 1997/08/06 07:02:49 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -104,7 +104,7 @@ extern HeapTuple tuplecopy(HeapTuple tup);
extern FILE *mergeruns(Sort *node);
extern void merge(Sort *node, struct tape *dest);
-extern void dumptuples(Sort *node);
+extern void dumptuples(FILE *file, Sort *node);
extern HeapTuple psort_grabtuple(Sort *node);
extern void psort_markpos(Sort *node);
extern void psort_restorepos(Sort *node);