From 3d5079c174cf71873c6cdb6e12fda63d2c04b0bc Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sun, 17 Oct 1999 23:50:43 +0000
Subject: [PATCH] Except_Intersect_Rewrite() forgot to move LIMIT info to new
 topmost SELECT node after rearranging query tree.

---
 src/backend/rewrite/rewriteHandler.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c
index ca9a2c27d8d..e36879a4ad3 100644
--- a/src/backend/rewrite/rewriteHandler.c
+++ b/src/backend/rewrite/rewriteHandler.c
@@ -6,7 +6,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.60 1999/10/07 04:23:15 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.61 1999/10/17 23:50:43 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1806,6 +1806,8 @@ Except_Intersect_Rewrite(Query *parsetree)
 	bool		isBinary,
 				isPortal,
 				isTemp;
+	Node	   *limitOffset,
+			   *limitCount;
 	CmdType		commandType = CMD_SELECT;
 	List	   *rtable_insert = NIL;
 
@@ -1856,6 +1858,8 @@ Except_Intersect_Rewrite(Query *parsetree)
 	isBinary = parsetree->isBinary;
 	isPortal = parsetree->isPortal;
 	isTemp = parsetree->isTemp;
+	limitOffset = parsetree->limitOffset;
+	limitCount = parsetree->limitCount;
 
 	/*
 	 * The operator tree attached to parsetree->intersectClause is still
@@ -2057,6 +2061,8 @@ Except_Intersect_Rewrite(Query *parsetree)
 	result->isPortal = isPortal;
 	result->isBinary = isBinary;
 	result->isTemp = isTemp;
+	result->limitOffset = limitOffset;
+	result->limitCount = limitCount;
 
 	/*
 	 * The relation to insert into is attached to the range table of the
@@ -2080,6 +2086,7 @@ Except_Intersect_Rewrite(Query *parsetree)
 		tent->resdom->resname = lfirst(resnames);
 		resnames = lnext(resnames);
 	}
+
 	return result;
 }
 
-- 
GitLab