summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane1999-10-19 04:38:07 +0000
committerTom Lane1999-10-19 04:38:07 +0000
commit8f292410bb88e84b4c300bf00f49342719a2427c (patch)
tree6c3720f8cbf681c283023893624eab8674ad56c6 /src
parenta9ba771b4e79abceda10f86b6a2f3e6428069549 (diff)
Back-patch LIMIT + INTERSECT fix into 6.5.*.
Diffstat (limited to 'src')
-rw-r--r--src/backend/parser/gram.y4
-rw-r--r--src/backend/rewrite/rewriteHandler.c8
2 files changed, 10 insertions, 2 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 7dc68d3f44b..5c9e74ba271 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.88.2.3 1999/09/24 15:08:59 thomas Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.88.2.4 1999/10/19 04:38:07 tgl Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -2768,6 +2768,8 @@ SelectStmt: select_clause sort_clause for_update_clause opt_select_limit
/* finally attach the sort clause */
first_select->sortClause = $2;
first_select->forUpdate = $3;
+ first_select->limitOffset = nth(0, $4);
+ first_select->limitCount = nth(1, $4);
$$ = (Node *)first_select;
}
if (((SelectStmt *)$$)->forUpdate != NULL && QueryIsRule)
diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c
index b4cfe96f5bc..c84dc3f5ca2 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.48 1999/07/11 17:54:30 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.48.2.1 1999/10/19 04:38:05 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2859,6 +2859,8 @@ Except_Intersect_Rewrite(Query *parsetree)
bool isBinary,
isPortal,
isTemp;
+ Node *limitOffset,
+ *limitCount;
CmdType commandType = CMD_SELECT;
List *rtable_insert = NIL;
@@ -2909,6 +2911,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
@@ -3094,6 +3098,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