From: | Nicolas Barbier <nicolas(dot)barbier(at)gmail(dot)com> |
---|---|
To: | Marko Tiikkaja <marko(dot)tiikkaja(at)cs(dot)helsinki(dot)fi> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, Dmitry Fefelov <fozzy(at)ac-sw(dot)com>, pgsql-hackers(at)postgresql(dot)org, Jaime Casanova <jaime(at)2ndquadrant(dot)com>, Boszormenyi Zoltan <zb(at)cybertec(dot)at>, Sándor Miglécz <sandor(at)cybertec(dot)at>, Hans-Juergen Schoenig <hs(at)cybertec(dot)at> |
Subject: | Re: Partitioning/inherited tables vs FKs |
Date: | 2010-05-11 13:07:53 |
Message-ID: | u2nb0f3f5a11005110607qfbe75589j74660f9a87d75021@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
2010/5/11 Marko Tiikkaja <marko(dot)tiikkaja(at)cs(dot)helsinki(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Marko Tiikkaja | 2010-05-11 13:11:42 | Re: Partitioning/inherited tables vs FKs |
Previous Message | Marko Tiikkaja | 2010-05-11 12:59:00 | Re: Partitioning/inherited tables vs FKs |