summaryrefslogtreecommitdiff
path: root/src/backend/parser
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2002-12-30 15:31:51 +0000
committerBruce Momjian <bruce@momjian.us>2002-12-30 15:31:51 +0000
commit33f0108df8a79cdb6dbf91f7eb4329143c0730d8 (patch)
treea04245944b6e99a5710cca9651893bed47686f3c /src/backend/parser
parenta0fa0117a5ad728b6f85a39cc52006736f54f90e (diff)
Cause FETCH 1 to return the current cursor row, or zero if at
beginning/end of cursor. Have MOVE return 0/1 depending on cursor position. Matches SQL spec. Pass cursor counter from parser as a long rather than int. Doc updates.
Diffstat (limited to 'src/backend/parser')
-rw-r--r--src/backend/parser/gram.y21
1 files changed, 5 insertions, 16 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index bb94d1f8e82..c19673fc422 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.388 2002/12/12 20:35:13 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.389 2002/12/30 15:31:47 momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -2591,13 +2591,6 @@ comment_text:
FetchStmt: FETCH direction fetch_how_many from_in name
{
FetchStmt *n = makeNode(FetchStmt);
- if ($2 == RELATIVE)
- {
- if ($3 == 0)
- elog(ERROR,
- "FETCH / RELATIVE at current position is not supported");
- $2 = FORWARD;
- }
if ($3 < 0)
{
$3 = -$3;
@@ -2629,10 +2622,6 @@ FetchStmt: FETCH direction fetch_how_many from_in name
| FETCH direction from_in name
{
FetchStmt *n = makeNode(FetchStmt);
- if ($2 == RELATIVE)
- {
- $2 = FORWARD;
- }
n->direction = $2;
n->howMany = 1;
n->portalname = $4;
@@ -2719,20 +2708,20 @@ FetchStmt: FETCH direction fetch_how_many from_in name
direction: FORWARD { $$ = FORWARD; }
| BACKWARD { $$ = BACKWARD; }
- | RELATIVE { $$ = RELATIVE; }
+ | RELATIVE { $$ = FORWARD; }
| ABSOLUTE
{
elog(NOTICE,
"FETCH / ABSOLUTE not supported, using RELATIVE");
- $$ = RELATIVE;
+ $$ = FORWARD;
}
;
fetch_how_many:
Iconst { $$ = $1; }
| '-' Iconst { $$ = - $2; }
- | ALL { $$ = INT_MAX; }
- | LAST { $$ = INT_MAX; }
+ | ALL { $$ = LONG_MAX; }
+ | LAST { $$ = LONG_MAX; }
| NEXT { $$ = 1; }
| PRIOR { $$ = -1; }
;