Re: bug w/ cursors and savepoints

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Re: bug w/ cursors and savepoints
Дата
Msg-id 20050125181407.GE1581@dcc.uchile.cl
обсуждение исходный текст
Ответ на Re: bug w/ cursors and savepoints  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: bug w/ cursors and savepoints  (Alvaro Herrera <alvherre@dcc.uchile.cl>)
Re: bug w/ cursors and savepoints  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On Tue, Jan 25, 2005 at 12:32:57PM -0500, Tom Lane wrote:

> So the right fix might involve putting the portal into PORTAL_FAILED
> state rather than just zapping it completely.

Strangely, the code comes up simpler after the fix.  Patch attached.
Regression test pass.  Additionaly I tried both cases mentioned in this
thread; maybe it's worthy to add tests for them too.

alvherre=# begin;
BEGIN
alvherre=# savepoint x;
SAVEPOINT
alvherre=# create table abc (a int);
CREATE TABLE
alvherre=# insert into abc values (5);
INSERT 33616 1
alvherre=# declare foo cursor for select * from abc;
DECLARE CURSOR
alvherre=# rollback to x;
ROLLBACK
alvherre=# fetch from foo; -- hits an Assert()
ERROR:  no existe el cursor «foo»
alvherre=# commit;
ROLLBACK
alvherre=# begin;
BEGIN
alvherre=# declare c cursor for select 1 union all select 2;
DECLARE CURSOR
alvherre=# savepoint x;
SAVEPOINT
alvherre=# fetch from c;
 ?column?
----------
        1
(1 fila)

alvherre=# rollback to x;
ROLLBACK
alvherre=# fetch from c;
 ?column?
----------
        2
(1 fila)

alvherre=# commit;
COMMIT

--
Alvaro Herrera (<alvherre[@]dcc.uchile.cl>)
"The ability to monopolize a planet is insignificant
next to the power of the source"

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: noman naeem
Дата:
Сообщение: Re: how to add a new column in pg_proc table
Следующее
От: Tom Lane
Дата:
Сообщение: Re: strxfrm implementation