Does anyone know what the "correct" behaviour for a scroll cursor should be 
when you've scrolled past the end ?

If you take this SQL for example : 


   create temp table sometab ( a integer);
   insert into sometab values(1);
   insert into sometab values(2);
   insert into sometab values(3);
   begin work;

   declare c1 scroll cursor for select * from sometab;
   fetch next from c1;
   fetch next from c1;
   fetch next from c1;
   fetch next from c1;
   fetch prior from c1;
   fetch prior from c1;
   fetch prior from c1;




The first 4 fetches work as expected and return 1,2,3, and the 4th fetch 
returns no rows as its at the end of the list...

** But ** - when I do the fetch prior, I would have expected it to go back to 
the '2' row, not the '3' row...

ie - under postgresql it appears we've scrolled *past* the last row and need 
an additional fetch to get back to our last row..



For reference - heres what I get as output : 


CREATE TABLE
INSERT 32429 1
INSERT 32430 1
INSERT 32431 1
BEGIN
DECLARE CURSOR
 a
---
 1
(1 row)

 a
---
 2
(1 row)

 a
---
 3
(1 row)

 a
---
(0 rows)

 a
---
 3
(1 row)

 a
---
 2
(1 row)

 a
---
 1
(1 row)






TIA
-- 
Mike Aubury

Aubit Computing Ltd is registered in England and Wales, Number: 3112827
Registered Address : Clayton House,59 Piccadilly,Manchester,M1 2AQ



-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to