Re: BUG #15293: Stored Procedure Triggered by Logical Replication is Unable to use Notification Events

Artur Zakirov <artur.zakirov@adjust.com>

From: Artur Zakirov <artur.zakirov@adjust.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Sergey Fedchenko <seregayoga@bk.ru>, Daniel Danzberger <daniel@dd-wrt.com>, Andres Freund <andres@anarazel.de>, Sergei Kornilov <sk@zsrv.org>, pgsql-hackers@postgresql.org, Peter Eisentraut <peter_e@gmx.net>, Marc Dean <marc.dean.jr@gmail.com>, Petr Jelinek <petr@2ndquadrant.com>, "michael.paul.powers@gmail.com" <michael.paul.powers@gmail.com>, Alvaro Herrera <alvherre@2ndquadrant.com>, Robert Welin <robert@vaion.com>
Date: 2021-09-15T12:03:25Z
Lists: pgsql-bugs, pgsql-hackers
On Wed, Sep 15, 2021 at 2:57 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Hearing no comments, I pushed that.

Thank you!

> > I'm inclined to think we should flat-out reject LISTEN in any process
> > that is not attached to a frontend, at least until somebody takes the
> > trouble to add infrastructure that would let it be useful.  I've not
> > done that here though; I'm not quite sure what we should test for.
>
> After a bit of looking around, it seems that MyBackendType addresses
> that problem nicely, so I propose the attached.

Indeed, it seems only regular backends can send out notifies to
frontends. In that case there is no point in supporting LISTEN to
other processes. I guess a background worker can try it with SPI, but
with no luck.
+1 from my sight.

-- 
Artur



Commits

  1. Disallow LISTEN in background workers.

  2. Send NOTIFY signals during CommitTransaction.

  3. Make some efficiency improvements in LISTEN/NOTIFY.