BUG #13769: SELECT ... FROM a JOIN b FOR UPDATE a; BREAKS SNAPSHOT

Поиск
Список
Период
Сортировка
От konst583@mail.ru
Тема BUG #13769: SELECT ... FROM a JOIN b FOR UPDATE a; BREAKS SNAPSHOT
Дата
Msg-id 20151111151004.2644.90192@wrigleys.postgresql.org
обсуждение исходный текст
Ответы Re: BUG #13769: SELECT ... FROM a JOIN b FOR UPDATE a; BREAKS SNAPSHOT
Список pgsql-bugs
The following bug has been logged on the website:

Bug reference:      13769
Logged by:          Konstantin Evteev
Email address:      konst583@mail.ru
PostgreSQL version: 9.2.13
Operating system:   Debian GNU/Linux 7.9 (wheezy)
Description:

Select of 2-nd transaction will return new value from a and old value from
b

CREATE TABLE a
(
  id integer,
  val1 integer
);

CREATE TABLE b
(
  id integer,
  val1 integer
);

insert into a select 1,2;
insert into b select 1,3;

--FIRST TRANSACTION
begin

select * from a inner join b
on
    a.id = b.id
where
    a.id =1 for update of a;

update a set val1 = 0 where id = 1;
update b set val1 =0 where id = 1;

end

-- SECOND TRANSACTION (starts during executing of first transaction)
 select * from a
inner join
b on a.id = b.id
 where a.id =1 for update of a

 --result:
 1;0;1;3

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

Предыдущее
От: "David G. Johnston"
Дата:
Сообщение: Re: BUG #13767: EXECUTE querytext USING value1, value2, value3 (Edge case?)
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #13769: SELECT ... FROM a JOIN b FOR UPDATE a; BREAKS SNAPSHOT