Re: Partitioning/inherited tables vs FKs
От | Nicolas Barbier |
---|---|
Тема | Re: Partitioning/inherited tables vs FKs |
Дата | |
Msg-id | u2nb0f3f5a11005110607qfbe75589j74660f9a87d75021@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Partitioning/inherited tables vs FKs (Marko Tiikkaja <marko.tiikkaja@cs.helsinki.fi>) |
Ответы |
Re: Partitioning/inherited tables vs FKs
|
Список | pgsql-hackers |
2010/5/11 Marko Tiikkaja <marko.tiikkaja@cs.helsinki.fi>: > This is getting way off topic, but: > > On 5/11/10 3:55 PM +0300, Nicolas Barbier wrote: >> >> T2> SELECT i FROM a WHERE i = 1 FOR SHARE; -- Lock a with i = 1 FOR >> SHARE. >> i >> --- >> 1 >> (1 Zeile) >> >> T2> SELECT a_id FROM b WHERE a_id = 1; -- Check whether it's got >> anything pointing to it. >> a_id >> ------ >> (0 Zeilen) >> >> T2> DELETE FROM a WHERE i = 1; -- Nope, so delete a with i = 1 (this >> blocks, because T1 is still holding the lock). > > Obviously you wouldn't delete anything with a SHARE lock. So where would you put a SELECT ... FOR SHARE to fix the problem? (Per "Will SELECT ... FOR SHARE not help?".) I agree that my second FOR SHARE doesn't really make a lot of sense, but that doesn't disprove the fact that the first FOR SHARE fails to ensure consistency. Nicolas
В списке pgsql-hackers по дате отправления: