cursors FOR UPDATE don't return most recent row

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема cursors FOR UPDATE don't return most recent row
Дата
Msg-id 1327536411-sup-7848@alvh.no-ip.org
обсуждение исходный текст
Ответы Re: cursors FOR UPDATE don't return most recent row  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
This is my test case (all in one session):

CREATE TABLE foo (     key             int PRIMARY KEY,     value   int
);

INSERT INTO foo VALUES (1, 1);
BEGIN;DECLARE foo CURSOR FOR SELECT * FROM foo FOR UPDATE;UPDATE foo SET value = 2 WHERE key = 1;UPDATE foo SET value =
3WHERE key = 1;FETCH 1 FROM foo;COMMIT; 


I expected the FETCH to return one row, with the latest data, i.e.
(1, 3), but instead it's returning empty.

If instead I run both UPDATEs in another session, then I do get

alvherre=#  FETCH 1 FROM foo; key | value
-----+-------  1 |     3
(1 fila)


Is this intended?

--
Álvaro Herrera <alvherre@alvh.no-ip.org>


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

Предыдущее
От: Noah Misch
Дата:
Сообщение: Re: Avoid FK validations for no-rewrite ALTER TABLE ALTER TYPE
Следующее
От: Fujii Masao
Дата:
Сообщение: Re: WAL Restore process during recovery