Fix UNLISTEN to fall out quickly if the current backend has never executed
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 13 Feb 2009 17:12:04 +0000 (17:12 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 13 Feb 2009 17:12:04 +0000 (17:12 +0000)
commitca5646fc824abe606e2cc78dff89631b0e875e27
treeb9b9678de7f8b6687effadec2d6987f21cef6c14
parent30735adfe4a6682a35545b5b830263740655c923
Fix UNLISTEN to fall out quickly if the current backend has never executed
any LISTEN command.  This is more important than it used to be because
DISCARD ALL invokes UNLISTEN.  Connection-pooled applications making heavy
use of DISCARD ALL were seeing significant contention for pg_listener,
as reported by Matteo Beccati.  It seems unlikely that clients using LISTEN
would use pooled connections, so this simple tweak seems sufficient,
especially since the pg_listener implementation is slated to go away soon
anyway.

Back-patch to 8.3, where DISCARD ALL was introduced.
src/backend/commands/async.c