Re: BUG #16705: Triggers deferred during commit callback are not executed - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #16705: Triggers deferred during commit callback are not executed
Date
Msg-id 1570376.1604674198@sss.pgh.pa.us
Whole thread Raw
In response to BUG #16705: Triggers deferred during commit callback are not executed  (PG Bug reporting form <noreply@postgresql.org>)
Responses Re: BUG #16705: Triggers deferred during commit callback are not executed
List pgsql-bugs
PG Bug reporting form <noreply@postgresql.org> writes:
> If you register a function with RegisterXactCallback that causes a trigger
> to be deferred, that trigger is never executed.

I'd say that's in the category of "conceptually ridiculous".
The PRE_COMMIT events are supposed to fire after all user-level
actions in the transaction are finished.  Running a trigger that
could do arbitrary things would certainly break the assumptions of
whatever processing people might be doing in PRE_COMMIT callbacks.

Perhaps there's a use case for an even earlier callback that runs in or
before the fire-deferred-triggers loop.  But you haven't made any argument
for it, so I'm loath to add more complexity and cycles to transaction
commit for this.  The whole area is quite tricky --- for instance, the
interaction with cursor closing is not something that would leap to mind.
So it's not obvious that such a callback could do anything useful and
bulletproof.

            regards, tom lane



pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #16665: Segmentation fault
Next
From: Tom Lane
Date:
Subject: Re: BUG #16703: pg-dump fails to process recursive view definition