Re: Making AFTER triggers act properly in PL functions
От | Tom Lane |
---|---|
Тема | Re: Making AFTER triggers act properly in PL functions |
Дата | |
Msg-id | 19842.1094832291@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Making AFTER triggers act properly in PL functions (Stephan Szabo <sszabo@megazone.bigpanda.com>) |
Список | pgsql-hackers |
Stephan Szabo <sszabo@megazone.bigpanda.com> writes: > On Wed, 8 Sep 2004, Tom Lane wrote: >> It wouldn't quite work to use just transaction ID as the marker, since >> the inner SET CONSTRAINTS is very possibly done without using a >> subtransaction. But command ID or query nesting level or some such >> would work. I think the main concern here would be the space cost of >> adding still another field to the trigger records ... is it worth it? > Would it be possible to basically alias the space for dte_done_xid to hold > either the xid if it's done or the <whatever> if it's in progress? That's > ugly, but it would presumably not increase the size of the record. I found a way to do this, which actually is to forget the done_xid field altogether and just store the "firing ID" number. Since firing ID increases monotonically throughout a transaction, all triggers fired during a given subtransaction will have IDs >= the subtransaction-start- time ID counter. So we can clean up by looking for that, which is much faster than the TransactionId testing anyway. regards, tom lane
В списке pgsql-hackers по дате отправления: