Re: Partitioning/inherited tables vs FKs - Mailing list pgsql-hackers

From Nicolas Barbier
Subject Re: Partitioning/inherited tables vs FKs
Date
Msg-id u2nb0f3f5a11005110607qfbe75589j74660f9a87d75021@mail.gmail.com
Whole thread Raw
In response to Re: Partitioning/inherited tables vs FKs  (Marko Tiikkaja <marko.tiikkaja@cs.helsinki.fi>)
Responses Re: Partitioning/inherited tables vs FKs
List 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 by date:

Previous
From: Marko Tiikkaja
Date:
Subject: Re: Partitioning/inherited tables vs FKs
Next
From: Marko Tiikkaja
Date:
Subject: Re: Partitioning/inherited tables vs FKs