Support adding partitioned tables to publication

Enterprise / PostgreSQL - Peter Eisentraut [eisentraut.org] - 10 March 2020 08:09 EDT

When a partitioned table is added to a publication, changes of all of its partitions (current or future) are published via that publication.

This change only affects which tables a publication considers as its members. The receiving side still sees the data coming from the individual leaf partitions. So existing restrictions that partition hierarchies can only be replicated one-to-one are not changed by this.

Author: Amit Langote

17b9e7f9fe Support adding partitioned tables to publication
doc/src/sgml/logical-replication.sgml | 17 +--
doc/src/sgml/ref/create_publication.sgml | 19 ++-
src/backend/catalog/pg_publication.c | 85 ++++++++++---
src/backend/commands/publicationcmds.c | 23 +++-
src/backend/replication/logical/tablesync.c | 1 +
src/backend/replication/pgoutput/pgoutput.c | 19 ++-
src/bin/pg_dump/pg_dump.c | 8 +-
src/include/catalog/pg_publication.h | 19 ++-
src/test/regress/expected/publication.out | 34 +++++-
src/test/regress/sql/publication.sql | 23 +++-
src/test/subscription/t/013_partition.pl | 178 ++++++++++++++++++++++++++++
11 files changed, 382 insertions(+), 44 deletions(-)

Upstream: git.postgresql.org


  • Share