diff options
| author | Tom Lane | 1999-10-19 04:38:07 +0000 |
|---|---|---|
| committer | Tom Lane | 1999-10-19 04:38:07 +0000 |
| commit | 8f292410bb88e84b4c300bf00f49342719a2427c (patch) | |
| tree | 6c3720f8cbf681c283023893624eab8674ad56c6 | |
| parent | a9ba771b4e79abceda10f86b6a2f3e6428069549 (diff) | |
Back-patch LIMIT + INTERSECT fix into 6.5.*.
| -rw-r--r-- | src/backend/parser/gram.y | 4 | ||||
| -rw-r--r-- | src/backend/rewrite/rewriteHandler.c | 8 |
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 |
