Re: FOR KEY LOCK foreign keys
Marti Raudsepp <marti@juffo.org>
From: Marti Raudsepp <marti@juffo.org>
To: Alvaro Herrera <alvherre@commandprompt.com>
Cc: Noah Misch <noah@leadboat.com>, Pg Hackers <pgsql-hackers@postgresql.org>, Dimitri Fontaine <dimitri@2ndquadrant.fr>
Date: 2011-02-14T22:39:25Z
Lists: pgsql-hackers
Attachments
- 0001-Only-acquire-KEY-LOCK-for-colums-that-can-be-referen.patch (text/x-patch) patch 0001
On Fri, Feb 11, 2011 at 09:13, Noah Misch <noah@leadboat.com> wrote: > The patch had a trivial conflict in planner.c, plus plenty of offsets. I've > attached the rebased patch that I used for review. For anyone following along, > all the interesting hunks touch heapam.c; the rest is largely mechanical. A > "diff -w" patch is also considerably easier to follow. Here's a simple patch for the RelationGetIndexAttrBitmap() function, as explained in my last post. I don't know if it's any help to you, but since I wrote it I might as well send it up. This applies on top of Noah's rebased patch. I did some tests and it seems to work, although I also hit the same visibility bug as Noah. Test case I used: THREAD A: create table foo (pk int primary key, ak int); create unique index on foo (ak) where ak != 0; create unique index on foo ((-ak)); create table bar (foo_pk int references foo (pk)); insert into foo values(1,1); begin; insert into bar values(1); THREAD B: begin; update foo set ak=2 where ak=1; Regards, Marti