]> granicus.if.org Git - postgresql/commit
Replace the pg_listener-based LISTEN/NOTIFY mechanism with an in-memory queue.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 16 Feb 2010 22:34:57 +0000 (22:34 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 16 Feb 2010 22:34:57 +0000 (22:34 +0000)
commitd1e027221d0243b7b57eabb0e482923dd7d1c8eb
tree034988b788248c88fad3b73fb4d8d1afff2dd509
parentfc5173ad514a216dc93bc190dbba3751024a257d
Replace the pg_listener-based LISTEN/NOTIFY mechanism with an in-memory queue.
In addition, add support for a "payload" string to be passed along with
each notify event.

This implementation should be significantly more efficient than the old one,
and is also more compatible with Hot Standby usage.  There is not yet any
facility for HS slaves to receive notifications generated on the master,
although such a thing is possible in future.

Joachim Wieland, reviewed by Jeff Davis; also hacked on by me.
37 files changed:
doc/src/sgml/catalogs.sgml
doc/src/sgml/func.sgml
doc/src/sgml/libpq.sgml
doc/src/sgml/protocol.sgml
doc/src/sgml/ref/listen.sgml
doc/src/sgml/ref/notify.sgml
doc/src/sgml/ref/unlisten.sgml
doc/src/sgml/storage.sgml
src/backend/access/transam/slru.c
src/backend/access/transam/twophase_rmgr.c
src/backend/access/transam/xact.c
src/backend/catalog/Makefile
src/backend/commands/async.c
src/backend/nodes/copyfuncs.c
src/backend/nodes/equalfuncs.c
src/backend/nodes/outfuncs.c
src/backend/nodes/readfuncs.c
src/backend/parser/gram.y
src/backend/storage/ipc/ipci.c
src/backend/storage/lmgr/lwlock.c
src/backend/tcop/postgres.c
src/backend/tcop/utility.c
src/backend/utils/adt/ruleutils.c
src/bin/initdb/initdb.c
src/bin/psql/common.c
src/bin/psql/tab-complete.c
src/include/access/slru.h
src/include/access/twophase_rmgr.h
src/include/catalog/catversion.h
src/include/catalog/pg_listener.h [deleted file]
src/include/catalog/pg_proc.h
src/include/commands/async.h
src/include/nodes/parsenodes.h
src/include/storage/lwlock.h
src/test/regress/expected/guc.out
src/test/regress/expected/sanity_check.out
src/test/regress/sql/guc.sql