Обсуждение: Bug #846: Oncurrent transactions about select for update

Поиск
Список
Период
Сортировка

Bug #846: Oncurrent transactions about select for update

От
pgsql-bugs@postgresql.org
Дата:
zeng yubo (yubo.zeng@ezcross.com) reports a bug with a severity of 2
The lower the number the more severe it is.

Short Description
Oncurrent transactions about select for update

Long Description
   Two concurrent transactions control by "select for update", they can shared the data with insert ?


Sample Code
The table Name is num_center .
select count(*) from  num_center ;
we support the result execute is 100.

--(1) first , transaction A exceute:
begin work;
select * from num_center where type='lock_row' for update ;
insert into num_center( type , currval ) values ('test1',100);

--(2) then Transaction B exceute:
begin work;
select * from num_center where type='lock_row' for update ;
select count(*) from  num_center ;

--(3) Transaction A exceute:
commit;

--(4) Transaction B exceute:
commit;
--the Transaction B Result is  100 .

why not be : 100 + 1 = 101 ?


No file was uploaded with this report