]> granicus.if.org Git - postgresql/commit
Allow logical decoding via the walsender interface.
authorRobert Haas <rhaas@postgresql.org>
Mon, 10 Mar 2014 17:50:28 +0000 (13:50 -0400)
committerRobert Haas <rhaas@postgresql.org>
Mon, 10 Mar 2014 17:50:28 +0000 (13:50 -0400)
commit5a991ef8692ed0d170b44958a81a6bd70e90585c
tree02bd510e825655b89c3ae14b6f02ad1b2f08ab53
parentcb9a0c7987466b130fbced01ab5d5481cf3a16df
Allow logical decoding via the walsender interface.

In order for this to work, walsenders need the optional ability to
connect to a database, so the "replication" keyword now allows true
or false, for backward-compatibility, and the new value "database"
(which causes the "dbname" parameter to be respected).

walsender needs to loop not only when idle but also when sending
decoded data to the user and when waiting for more xlog data to decode.
This means that there are now three separate loops inside walsender.c;
although some refactoring has been done here, this is still a bit ugly.

Andres Freund, with contributions from Álvaro Herrera, and further
review by me.
12 files changed:
doc/src/sgml/protocol.sgml
src/backend/postmaster/postmaster.c
src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
src/backend/replication/repl_gram.y
src/backend/replication/repl_scanner.l
src/backend/replication/walsender.c
src/backend/utils/init/postinit.c
src/bin/pg_basebackup/pg_basebackup.c
src/bin/pg_basebackup/pg_receivexlog.c
src/bin/pg_basebackup/receivelog.c
src/include/replication/walsender.h
src/tools/pgindent/typedefs.list