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 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Dunstan | 2008-04-01 13:59:35 | Re: build multiple indexes in single table pass? |
Previous Message | Albe Laurenz | 2008-04-01 13:34:17 | Improve shutdown during online backup |