I looked at the TODO before sending this, and found
nothing regarding listen/unlisten.

I was unable to find the bug report sumission page at
www.postgresql.org, even though it was mentioned in
this template.

Your name               :       Jeff Davis
Your email address      :       [EMAIL PROTECTED]


System Configuration
---------------------
  Architecture (example: Intel Pentium)         :       Intel
Pentium

  Operating System (example: Linux 2.0.26 ELF)  :
Linux ELF (RedHat 6.2)

  PostgreSQL version (example: PostgreSQL-6.5.1):
PostgreSQL-7.0

  Compiler used (example:  gcc 2.8.0)           :       gcc 2.91.66


Please enter a FULL description of your problem:
------------------------------------------------

Regarding UNLISTEN: 'UNLISTEN <name>' does not remove
LISTEN entries for '<name>' in 'pg_listener' class,
nor does it prevent NOTIFYication. However, note that
'UNLISTEN *' does remove these entries, and prevent
NOTIFYication, as it should.

Please describe a way to repeat the problem.   Please
try to provide a concise reproducible example, if at
all possible: 
----------------------------------------------------------------------

A full transcript (from 'psql' client) that
demonstrates this follows:

test=# listen test;
LISTEN
test=# notify test;
NOTIFY
Asynchronous NOTIFY 'test' from backend with pid
'17457' received.
test=# unlisten test;
UNLISTEN
test=# notify test;
NOTIFY
Asynchronous NOTIFY 'test' from backend with pid
'17457' received.
test=# unlisten *;
UNLISTEN
test=# notify test;
NOTIFY
test=#

End of transcript.

I tried this on two seperate machines, and it was the
same. They are almost identical in hardware, software,
and configuration.

Perhaps you could also execute a query such as 'SELECT
* FROM pg_listener', so as to view table status at
various points during the aforementioned procedure.
This has been omitted due to report lenth concerns.

If you know how this problem might be fixed, list the
solution below:
---------------------------------------------------------------------

If 'unlisten <name>' were aliased to the query
"DELETE FROM pg_listener WHERE relname='<name>',"
which works just fine, it would appear to solve the
problem, however I am not aware of performance issues
with this implementation, nor am I aware how the
current 'UNLISTEN' query is implemented.

Thank you,
Jeff Davis

__________________________________________________
Do You Yahoo!?
Send instant messages & get email alerts with Yahoo! Messenger.
http://im.yahoo.com/

Reply via email to