Skip site navigation (1) Skip section navigation (2)

Scroll cursor oddity...

From: Mike Aubury <mike(dot)aubury(at)aubit(dot)com>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Scroll cursor oddity...
Date: 2008-04-01 13:39:19
Message-ID: 200804011439.19203.mike.aubury@aubit.com (view raw or flat)
Thread:
Lists: 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 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



Responses

pgsql-hackers by date

Next:From: Andrew DunstanDate: 2008-04-01 13:59:35
Subject: Re: build multiple indexes in single table pass?
Previous:From: Albe LaurenzDate: 2008-04-01 13:34:17
Subject: Improve shutdown during online backup

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group