Re: Partitioning/inherited tables vs FKs

Поиск
Список
Период
Сортировка
От Marko Tiikkaja
Тема Re: Partitioning/inherited tables vs FKs
Дата
Msg-id 4BE94918.6080809@cs.helsinki.fi
обсуждение исходный текст
Ответ на Re: Partitioning/inherited tables vs FKs  (Robert Haas <robertmhaas@gmail.com>)
Ответы Re: Partitioning/inherited tables vs FKs  (Nicolas Barbier <nicolas.barbier@gmail.com>)
Список pgsql-hackers
On 2010-05-11 14:29 +0200, Robert Haas wrote:
> On Tue, May 11, 2010 at 2:16 AM, Dmitry Fefelov <fozzy@ac-sw.com> wrote:
>>> The referential integrity triggers contain some extra magic that isn't
>>> easily simulatable in userland, and that is necessary to make the
>>> foreign key constraints airtight.  We've discussed this previously but
>>> I don't remember which thread it was or the details of when things
>>> blow up.  I think it's something like this: the parent has a tuple
>>> that is not referenced by any child.  Transaction 1 begins, deletes
>>> the parent tuple (checking that it has no children), and pauses.
>>> Transaction 2 begins, adds a child tuple that references the parent
>>> tuple (checking that the parent exists, which it does), and commits.
>>> Transaction 1 commits.
>>
>> Will SELECT ... FOR SHARE not help?
> 
> Try it, with the example above.  I think you'll find that it doesn't.

TXA => delete from foo;
DELETE 1

TXB => select a from foo for share; -- waits

What am I missing?


Regards,
Marko Tiikkaja


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

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: Partitioning/inherited tables vs FKs
Следующее
От: Nicolas Barbier
Дата:
Сообщение: Re: Partitioning/inherited tables vs FKs