Logical replication

Peter Eisentraut <peter_e@gmx.net>

Commit: 665d1fad99e7b11678b0d5fa24d2898424243cd6
Author: Peter Eisentraut <peter_e@gmx.net>
Date: 2017-01-20T14:04:49Z
Releases: 10.0
Logical replication

- Add PUBLICATION catalogs and DDL
- Add SUBSCRIPTION catalog and DDL
- Define logical replication protocol and output plugin
- Add logical replication workers

From: Petr Jelinek <petr@2ndquadrant.com>
Reviewed-by: Steve Singer <steve@ssinger.info>
Reviewed-by: Andres Freund <andres@anarazel.de>
Reviewed-by: Erik Rijkers <er@xs4all.nl>
Reviewed-by: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>

Files

PathChange+/−
doc/src/sgml/catalogs.sgml modified +309 −0
doc/src/sgml/config.sgml modified +41 −0
doc/src/sgml/filelist.sgml modified +1 −0
doc/src/sgml/func.sgml modified +1 −1
doc/src/sgml/logical-replication.sgml added +396 −0
doc/src/sgml/monitoring.sgml modified +74 −0
doc/src/sgml/postgres.sgml modified +1 −0
doc/src/sgml/protocol.sgml modified +721 −0
doc/src/sgml/ref/allfiles.sgml modified +6 −0
doc/src/sgml/ref/alter_publication.sgml added +139 −0
doc/src/sgml/ref/alter_subscription.sgml added +139 −0
doc/src/sgml/ref/create_publication.sgml added +206 −0
doc/src/sgml/ref/create_subscription.sgml added +176 −0
doc/src/sgml/ref/drop_publication.sgml added +107 −0
doc/src/sgml/ref/drop_subscription.sgml added +110 −0
doc/src/sgml/reference.sgml modified +6 −0
doc/src/sgml/ref/pg_dump.sgml modified +21 −0
doc/src/sgml/ref/psql-ref.sgml modified +28 −0
src/backend/access/transam/xact.c modified +2 −0
src/backend/catalog/aclchk.c modified +57 −0
src/backend/catalog/catalog.c modified +6 −2
src/backend/catalog/dependency.c modified +24 −0
src/backend/catalog/Makefile modified +4 −3
src/backend/catalog/objectaddress.c modified +219 −0
src/backend/catalog/pg_publication.c added +457 −0
src/backend/catalog/pg_shdepend.c modified +11 −0
src/backend/catalog/pg_subscription.c added +207 −0
src/backend/catalog/system_views.sql modified +25 −0
src/backend/commands/alter.c modified +10 −0
src/backend/commands/dbcommands.c modified +17 −0
src/backend/commands/define.c modified +28 −0
src/backend/commands/dropcmds.c modified +4 −0
src/backend/commands/event_trigger.c modified +8 −0
src/backend/commands/Makefile modified +4 −4
src/backend/commands/publicationcmds.c added +754 −0
src/backend/commands/subscriptioncmds.c added +643 −0
src/backend/commands/tablecmds.c modified +12 −0
src/backend/executor/execMain.c modified +2 −1
src/backend/executor/execReplication.c added +553 −0
src/backend/executor/Makefile modified +1 −1
src/backend/nodes/copyfuncs.c modified +78 −0
src/backend/nodes/equalfuncs.c modified +73 −0
src/backend/parser/gram.y modified +255 −7
src/backend/postmaster/bgworker.c modified +22 −1
src/backend/postmaster/pgstat.c modified +6 −0
src/backend/postmaster/postmaster.c modified +9 −0
src/backend/replication/libpqwalreceiver/libpqwalreceiver.c modified +194 −23
src/backend/replication/logical/launcher.c added +759 −0
src/backend/replication/logical/Makefile modified +2 −2
src/backend/replication/logical/proto.c added +637 −0
src/backend/replication/logical/relation.c added +489 −0
src/backend/replication/logical/worker.c added +1429 −0
src/backend/replication/pgoutput/Makefile added +32 −0
src/backend/replication/pgoutput/pgoutput.c added +596 −0
src/backend/replication/walreceiver.c modified +15 −5
src/backend/storage/ipc/ipci.c modified +3 −0
src/backend/storage/lmgr/lwlocknames.txt modified +2 −0
src/backend/tcop/utility.c modified +83 −0
src/backend/utils/cache/inval.c modified +30 −5
src/backend/utils/cache/relcache.c modified +128 −8
src/backend/utils/cache/syscache.c modified +69 −0
src/backend/utils/misc/guc.c modified +13 −0
src/backend/utils/misc/postgresql.conf.sample modified +1 −0
src/bin/pg_dump/common.c modified +12 −0
src/bin/pg_dump/pg_backup_archiver.c modified +6 −1
src/bin/pg_dump/pg_backup.h modified +3 −0
src/bin/pg_dump/pg_dump.c modified +464 −0
src/bin/pg_dump/pg_dump.h modified +45 −1
src/bin/pg_dump/pg_dump_sort.c modified +19 −1
src/bin/pg_dump/pg_restore.c modified +3 −0
src/bin/pg_dump/t/002_pg_dump.pl modified +66 −10
src/bin/psql/command.c modified +16 −0
src/bin/psql/describe.c modified +292 −0
src/bin/psql/describe.h modified +9 −0
src/bin/psql/help.c modified +2 −0
src/bin/psql/tab-complete.c modified +49 −4
src/include/catalog/dependency.h modified +3 −0
src/include/catalog/indexing.h modified +18 −0
src/include/catalog/pg_proc.h modified +6 −0
src/include/catalog/pg_publication.h added +104 −0
src/include/catalog/pg_publication_rel.h added +52 −0
src/include/catalog/pg_subscription.h added +83 −0
src/include/commands/defrem.h modified +1 −0
src/include/commands/publicationcmds.h added +28 −0
src/include/commands/subscriptioncmds.h added +27 −0
src/include/executor/executor.h modified +17 −0
src/include/nodes/nodes.h modified +5 −0
src/include/nodes/parsenodes.h modified +51 −0
src/include/parser/kwlist.h modified +3 −0
src/include/pgstat.h modified +3 −1
src/include/replication/logicallauncher.h added +27 −0
src/include/replication/logicalproto.h added +104 −0
src/include/replication/logicalrelation.h added +43 −0
src/include/replication/logicalworker.h added +17 −0
src/include/replication/pgoutput.h added +29 −0
src/include/replication/walreceiver.h modified +49 −11
src/include/replication/worker_internal.h added +62 −0
src/include/storage/sinval.h modified +2 −1
src/include/utils/acl.h modified +4 −0
src/include/utils/inval.h modified +2 −0
src/include/utils/relcache.h modified +6 −0
src/include/utils/rel.h modified +6 −0
src/include/utils/syscache.h modified +6 −0
src/Makefile modified +1 −0
src/test/Makefile modified +1 −1
src/test/perl/PostgresNode.pm modified +12 −1
src/test/regress/expected/publication.out added +156 −0
src/test/regress/expected/rules.out modified +18 −0
src/test/regress/expected/sanity_check.out modified +3 −0
src/test/regress/expected/subscription.out added +66 −0
src/test/regress/parallel_schedule modified +3 −0
src/test/regress/serial_schedule modified +2 −0
src/test/regress/sql/publication.sql added +82 −0
src/test/regress/sql/subscription.sql added +44 −0
src/test/subscription/.gitignore added +2 −0
src/test/subscription/Makefile added +22 −0
src/test/subscription/README added +16 −0
src/test/subscription/t/001_rep_changes.pl added +188 −0
src/test/subscription/t/002_types.pl added +539 −0

Documentation touched