BUG #13769: SELECT ... FROM a JOIN b FOR UPDATE a; BREAKS SNAPSHOT - Mailing list pgsql-bugs

From konst583@mail.ru
Subject BUG #13769: SELECT ... FROM a JOIN b FOR UPDATE a; BREAKS SNAPSHOT
Date
Msg-id 20151111151004.2644.90192@wrigleys.postgresql.org
Whole thread Raw
Responses Re: BUG #13769: SELECT ... FROM a JOIN b FOR UPDATE a; BREAKS SNAPSHOT  (Tom Lane <tgl@sss.pgh.pa.us>)
List 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 by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: BUG #13767: EXECUTE querytext USING value1, value2, value3 (Edge case?)
Next
From: Tom Lane
Date:
Subject: Re: BUG #13769: SELECT ... FROM a JOIN b FOR UPDATE a; BREAKS SNAPSHOT