Scroll cursor oddity... - Mailing list pgsql-hackers

From Mike Aubury
Subject Scroll cursor oddity...
Date
Msg-id 200804011439.19203.mike.aubury@aubit.com
Whole thread Raw
Responses Re: Scroll cursor oddity...  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
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
sometabvalues(3);  begin work;
 
  declare c1 scroll cursor for select * from sometab;  fetch next from c1;  fetch next from c1;  fetch next from c1;
fetchnext 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 CURSORa
---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




pgsql-hackers by date:

Previous
From: Stephen Frost
Date:
Subject: Re: New boxes available for QA
Next
From: Toru SHIMOGAKI
Date:
Subject: Re: build multiple indexes in single table pass?