On 2013-12-16 17:43:37 -0300, Alvaro Herrera wrote: > Alvaro Herrera wrote: > > > This POC patch changes the two places in HeapTupleSatisfiesUpdate that > > need to be touched for this to work. This is probably too simplistic, > > in that I make the involved cases return HeapTupleBeingUpdated without > > checking that there actually are remote lockers, which is the case of > > concern. I'm not yet sure if this is the final form of the fix, or > > instead we should expand the Multi (in the cases where there is a multi) > > and verify whether any lockers are transactions other than the current > > one. As is, nothing seems to break, but I think that's probably just > > chance and should not be relied upon. > > After playing with this, I think the reason this seems to work without > fail is that all callers of HeapTupleSatisfiesUpdate are already > prepared to deal with the case where HeapTupleBeingUpdated is returned > but there is no actual transaction that would block the operation. > So I think the proposed patch is okay, barring a few more comments.
Are you sure? the various wait/nowait cases don't seem to handle that correctly. Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers