Thread: LISTEN & transactions

LISTEN & transactions

From
"Jeroen T. Vermeulen"
Date:
Hi all,

I noticed that using libpq, trigger notifications don't arrive inside
transactions.  Instead their delivery appears to be deferred until after 
the transaction ends.  I haven't found any mention of this in the manual.

Is this a design choice, or a "coincidence" resulting from practical 
implementation considerations, or a mistake on my part, or something else 
entirely?

I can use the existing behaviour in libpqxx[1] to guarantee that a
trigger handler is always able to start a transaction on the connection
the notification came in on.  But that probably wouldn't make much sense 
(though it would still be possible) unless the current way of doing
things is here to stay.


Jeroen

[1] http://members.ams.chello.nl/j.vermeulen31/




Re: LISTEN & transactions

From
Tom Lane
Date:
"Jeroen T. Vermeulen" <jtv@xs4all.nl> writes:
> I can use the existing behaviour in libpqxx[1] to guarantee that a
> trigger handler is always able to start a transaction on the connection
> the notification came in on.  But that probably wouldn't make much sense 
> (though it would still be possible) unless the current way of doing
> things is here to stay.

Should be okay to depend on the fact that notifies are only delivered
between transactions; see the NOTIFY reference page.
        regards, tom lane