diff options
Diffstat (limited to 'src/test/regress/sql/portals.sql')
| -rw-r--r-- | src/test/regress/sql/portals.sql | 100 |
1 files changed, 75 insertions, 25 deletions
diff --git a/src/test/regress/sql/portals.sql b/src/test/regress/sql/portals.sql index c4e257ef2d..2df820a30a 100644 --- a/src/test/regress/sql/portals.sql +++ b/src/test/regress/sql/portals.sql @@ -1,54 +1,54 @@ -- --- PORTALS +-- Cursor regression tests -- BEGIN; -DECLARE foo1 CURSOR FOR SELECT * FROM tenk1; +DECLARE foo1 SCROLL CURSOR FOR SELECT * FROM tenk1; -DECLARE foo2 CURSOR FOR SELECT * FROM tenk2; +DECLARE foo2 SCROLL CURSOR FOR SELECT * FROM tenk2; -DECLARE foo3 CURSOR FOR SELECT * FROM tenk1; +DECLARE foo3 SCROLL CURSOR FOR SELECT * FROM tenk1; -DECLARE foo4 CURSOR FOR SELECT * FROM tenk2; +DECLARE foo4 SCROLL CURSOR FOR SELECT * FROM tenk2; -DECLARE foo5 CURSOR FOR SELECT * FROM tenk1; +DECLARE foo5 SCROLL CURSOR FOR SELECT * FROM tenk1; -DECLARE foo6 CURSOR FOR SELECT * FROM tenk2; +DECLARE foo6 SCROLL CURSOR FOR SELECT * FROM tenk2; -DECLARE foo7 CURSOR FOR SELECT * FROM tenk1; +DECLARE foo7 SCROLL CURSOR FOR SELECT * FROM tenk1; -DECLARE foo8 CURSOR FOR SELECT * FROM tenk2; +DECLARE foo8 SCROLL CURSOR FOR SELECT * FROM tenk2; -DECLARE foo9 CURSOR FOR SELECT * FROM tenk1; +DECLARE foo9 SCROLL CURSOR FOR SELECT * FROM tenk1; -DECLARE foo10 CURSOR FOR SELECT * FROM tenk2; +DECLARE foo10 SCROLL CURSOR FOR SELECT * FROM tenk2; -DECLARE foo11 CURSOR FOR SELECT * FROM tenk1; +DECLARE foo11 SCROLL CURSOR FOR SELECT * FROM tenk1; -DECLARE foo12 CURSOR FOR SELECT * FROM tenk2; +DECLARE foo12 SCROLL CURSOR FOR SELECT * FROM tenk2; -DECLARE foo13 CURSOR FOR SELECT * FROM tenk1; +DECLARE foo13 SCROLL CURSOR FOR SELECT * FROM tenk1; -DECLARE foo14 CURSOR FOR SELECT * FROM tenk2; +DECLARE foo14 SCROLL CURSOR FOR SELECT * FROM tenk2; -DECLARE foo15 CURSOR FOR SELECT * FROM tenk1; +DECLARE foo15 SCROLL CURSOR FOR SELECT * FROM tenk1; -DECLARE foo16 CURSOR FOR SELECT * FROM tenk2; +DECLARE foo16 SCROLL CURSOR FOR SELECT * FROM tenk2; -DECLARE foo17 CURSOR FOR SELECT * FROM tenk1; +DECLARE foo17 SCROLL CURSOR FOR SELECT * FROM tenk1; -DECLARE foo18 CURSOR FOR SELECT * FROM tenk2; +DECLARE foo18 SCROLL CURSOR FOR SELECT * FROM tenk2; -DECLARE foo19 CURSOR FOR SELECT * FROM tenk1; +DECLARE foo19 SCROLL CURSOR FOR SELECT * FROM tenk1; -DECLARE foo20 CURSOR FOR SELECT * FROM tenk2; +DECLARE foo20 SCROLL CURSOR FOR SELECT * FROM tenk2; -DECLARE foo21 CURSOR FOR SELECT * FROM tenk1; +DECLARE foo21 SCROLL CURSOR FOR SELECT * FROM tenk1; -DECLARE foo22 CURSOR FOR SELECT * FROM tenk2; +DECLARE foo22 SCROLL CURSOR FOR SELECT * FROM tenk2; -DECLARE foo23 CURSOR FOR SELECT * FROM tenk1; +DECLARE foo23 SCROLL CURSOR FOR SELECT * FROM tenk1; FETCH 1 in foo1; @@ -166,5 +166,55 @@ CLOSE foo11; CLOSE foo12; -end; +-- is there a reason why we don't close the rest of the open cursors? +END; + +-- +-- NO SCROLL disallows backward fetching +-- + +BEGIN; + +DECLARE foo24 NO SCROLL CURSOR FOR SELECT * FROM tenk1; + +FETCH 1 FROM foo24; + +FETCH BACKWARD 1 FROM foo24; -- should fail + +END; + +-- +-- Cursors outside transaction blocks +-- + +BEGIN; + +DECLARE foo25 SCROLL CURSOR WITH HOLD FOR SELECT * FROM tenk2; + +FETCH FROM foo25; + +FETCH FROM foo25; + +COMMIT; + +FETCH FROM foo25; + +FETCH BACKWARD FROM foo25; + +FETCH ABSOLUTE -1 FROM foo25; + +CLOSE foo25; + +-- +-- ROLLBACK should close holdable cursors +-- + +BEGIN; + +DECLARE foo26 CURSOR WITH HOLD FOR SELECT * FROM tenk1; + +ROLLBACK; + +-- should fail +FETCH FROM foo26;
\ No newline at end of file |
