Re: FK locking still too strong
От | Russ Brown |
---|---|
Тема | Re: FK locking still too strong |
Дата | |
Msg-id | 45704253.5080705@gmail.com обсуждение исходный текст |
Ответ на | FK locking still too strong (Csaba Nagy <nagy@ecircle-ag.com>) |
Список | pgsql-general |
Csaba Nagy wrote: > Hi all, > > While postgres 8.x improved a lot the locking issues related to foreign > keys, the locking used is still stronger than needed. > > The following test case deadlocks on postgres but goes through on > oracle: > > preparation of tables: > > create table test1(col_fk integer primary key, col_1 integer); > create table test2(col_2 integer primary key, col_fk integer references > test1(col_fk)); > insert into test1 (col_fk, col_1) values (1, 1); > insert into test1 (col_fk, col_1) values (2, 2); > > session_1: > > begin; > update test1 set col_1 = 10 where col_fk = 1; > > session_2: > > begin; > insert into test2 (col_2, col_fk) values (1, 2); > > session_1: > > -- this locks on postgres, does not on oracle > update test1 set col_1 = 20 where col_fk = 2; > > session_2: > > -- deadlock on postgres, goes through on oracle > insert into test2 (col_2, col_fk) values (2, 1); > Purely out of interest I just tried this on MySQL 5.0.26 and found almost the same results. In MySQL session 1 was rolled back, on pg 8.1.5 session 2 was rolled back.
В списке pgsql-general по дате отправления: