From 10971a6f8145aff4ee331f848d27ffd83a8668ba Mon Sep 17 00:00:00 2001
From: "Vadim B. Mikheev" <vadim4o@yahoo.com>
Date: Thu, 18 Sep 1997 05:19:17 +0000
Subject: [PATCH] Allow set max number of tuples in leftist tree for sorts (-S
 memory,tuples)

---
 src/backend/tcop/postgres.c | 30 ++++++++++++++++++++++++++----
 1 file changed, 26 insertions(+), 4 deletions(-)

diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 6c129bdec7c..b5aec218c7a 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.46 1997/09/15 14:28:16 vadim Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.47 1997/09/18 05:19:17 vadim Exp $
  *
  * NOTES
  *	  this is the "main" module of the postgres backend and
@@ -1120,10 +1120,32 @@ PostgresMain(int argc, char *argv[])
 
 			case 'S':
 				/* ----------------
-				 *	S - amount of sort memory to use in 1k bytes
+				 *	S - amount of sort memory to use in 1k bytes and
+				 *		(optional) max number of tuples in leftist tree
 				 * ----------------
 				 */
-				SortMem = atoi(optarg);
+				{
+					int S;
+					char *p = strchr (optarg, ',');
+					
+					if ( p != NULL )
+					{
+						*p = 0;
+						S = atoi(optarg);
+						if ( S >= 4*MAXBLCKSZ/1024 )
+							SortMem = S;
+						S = atoi (p + 1);
+						if ( S >= 32 )
+							SortTuplesInTree = S;
+						*p = ',';
+					}
+					else
+					{
+						S = atoi(optarg);
+						if ( S >= 4*MAXBLCKSZ/1024 )
+							SortMem = S;
+					}
+				}
 				break;
 
 			case 's':
@@ -1385,7 +1407,7 @@ PostgresMain(int argc, char *argv[])
 	if (IsUnderPostmaster == false)
 	{
 		puts("\nPOSTGRES backend interactive interface");
-		puts("$Revision: 1.46 $ $Date: 1997/09/15 14:28:16 $");
+		puts("$Revision: 1.47 $ $Date: 1997/09/18 05:19:17 $");
 	}
 
 	/* ----------------
-- 
GitLab