]> granicus.if.org Git - postgresql/commit
Generic Messages for Logical Decoding
authorSimon Riggs <simon@2ndQuadrant.com>
Wed, 6 Apr 2016 09:05:41 +0000 (10:05 +0100)
committerSimon Riggs <simon@2ndQuadrant.com>
Wed, 6 Apr 2016 09:05:41 +0000 (10:05 +0100)
commit3fe3511d05127cc024b221040db2eeb352e7d716
treeb17a084bec318a70a1c0fcd755596b771871bce7
parent989be0810dffd08b54e1caecec0677608211c339
Generic Messages for Logical Decoding

API and mechanism to allow generic messages to be inserted into WAL that are
intended to be read by logical decoding plugins. This commit adds an optional
new callback to the logical decoding API.

Messages are either text or bytea. Messages can be transactional, or not, and
are identified by a prefix to allow multiple concurrent decoding plugins.

(Not to be confused with Generic WAL records, which are intended to allow crash
recovery of extensible objects.)

Author: Petr Jelinek and Andres Freund
Reviewers: Artur Zakirov, Tomas Vondra, Simon Riggs
Discussion: 5685F999.6010202@2ndquadrant.com
27 files changed:
contrib/test_decoding/Makefile
contrib/test_decoding/expected/ddl.out
contrib/test_decoding/expected/messages.out [new file with mode: 0644]
contrib/test_decoding/sql/ddl.sql
contrib/test_decoding/sql/messages.sql [new file with mode: 0644]
contrib/test_decoding/test_decoding.c
doc/src/sgml/func.sgml
doc/src/sgml/logicaldecoding.sgml
src/backend/access/rmgrdesc/Makefile
src/backend/access/rmgrdesc/logicalmsgdesc.c [new file with mode: 0644]
src/backend/access/transam/rmgr.c
src/backend/replication/logical/Makefile
src/backend/replication/logical/decode.c
src/backend/replication/logical/logical.c
src/backend/replication/logical/logicalfuncs.c
src/backend/replication/logical/message.c [new file with mode: 0644]
src/backend/replication/logical/reorderbuffer.c
src/backend/replication/logical/snapbuild.c
src/bin/pg_xlogdump/.gitignore
src/bin/pg_xlogdump/rmgrdesc.c
src/include/access/rmgrlist.h
src/include/catalog/pg_proc.h
src/include/replication/logicalfuncs.h
src/include/replication/message.h [new file with mode: 0644]
src/include/replication/output_plugin.h
src/include/replication/reorderbuffer.h
src/include/replication/snapbuild.h