From dc374505fa1af6cf441128fc9c4c63f517132ce8 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Wed, 6 Aug 1997 17:11:20 +0000
Subject: [PATCH] Fix for psort again.

---
 src/backend/utils/sort/psort.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/backend/utils/sort/psort.c b/src/backend/utils/sort/psort.c
index 465a89c55a8..8eddc5bbc62 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.10 1997/08/06 07:39:20 momjian Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/utils/sort/Attic/psort.c,v 1.11 1997/08/06 17:11:20 momjian Exp $
  *
  * NOTES
  *      Sorts the first relation into the second relation.
@@ -281,8 +281,14 @@ initialrun(Sort *node, bool *empty)
 	    inittapes(node);
 	extrapasses = 0;
     }
-    else
-	return;	/* if rows fit in memory, we never access tape stuff */
+    else {
+	/* if empty or rows fit in memory, we never access tape stuff */
+	if (*empty || ! PS(node)->using_tape_files)
+	    return;
+	if (! PS(node)->using_tape_files)
+	    inittapes(node);
+        extrapasses = 1 + (PS(node)->Tuples != NULL);   /* (T != N) ? 2 : 1 */
+    }
     
     for ( ; ; ) {
 	tp->tp_dummy--;
@@ -362,7 +368,8 @@ createrun(Sort *node, FILE *file, bool *empty)
 				       &PS(node)->treeContext);
 	    if (! PS(node)->using_tape_files) {
 		inittapes(node);
-		file = PS(node)->Tape->tp_file; /* was NULL */
+		if (! file)
+		    file = PS(node)->Tape->tp_file; /* was NULL */
 	    }
 	    PUTTUP(node, tup, file);
 	    TRACEOUT(createrun, tup);
-- 
GitLab