Robert Haas <robertmh...@gmail.com> writes: > On Mon, Aug 1, 2011 at 1:42 PM, Dean Rasheed <dean.a.rash...@gmail.com> wrote: >>> Don't we already do that when pruning HOT chains?
>> I thought that only happens after the transaction is committed, and >> old enough, whereas the trigger code only needs to follow the chain in >> the updating transaction. > Hmm, true. > I worry a bit that this might foreclose possible future optimization > of the "self update" case, which is a known pain point. Am I wrong to > worry? I think it might be OK if you explicitly verify that xmin/cmin of the linked-to tuple matches the (sub)transaction/command that queued the trigger event. I don't recall whether the trigger code does that already; I think there is some related test but it might not be that strict. There's also a definitional issue involved: if a transaction updates the same tuple twice, in the presence of a deferred update trigger for the table, is it supposed to (eventually) fire the trigger for both update actions or only the last one? I have a feeling we might already be locked into the second choice, but if not, this would probably force it. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers