diff options
author | Bruce Momjian <bruce@momjian.us> | 2002-12-30 15:31:51 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2002-12-30 15:31:51 +0000 |
commit | 33f0108df8a79cdb6dbf91f7eb4329143c0730d8 (patch) | |
tree | a04245944b6e99a5710cca9651893bed47686f3c /src/backend/parser | |
parent | a0fa0117a5ad728b6f85a39cc52006736f54f90e (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.y | 21 |
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; } ; |