]> granicus.if.org Git - postgresql/commit
Fix filtering of unsupported relations in logical replication
authorPeter Eisentraut <peter_e@gmx.net>
Sat, 24 Feb 2018 02:17:57 +0000 (21:17 -0500)
committerPeter Eisentraut <peter_e@gmx.net>
Sat, 24 Feb 2018 03:09:26 +0000 (22:09 -0500)
commitb9bf23abb0e9a63ecc5f4b68a8229146291270e5
treefd94021e07eae967dd3c21368703be4be261ba42
parent0222e897d8dc063f92a3e2058ae301e14014a7c3
Fix filtering of unsupported relations in logical replication

In the pgoutput plugin, skip changes for relations that are not
publishable, per is_publishable_class().  This concerns in particular
materialized views and information_schema tables.  While those relations
cannot be part of a publication, per existing checks, they will be
considered by a FOR ALL TABLES publication.  A subscription would not
actually apply changes for those relations, again per existing checks,
but trying to match incoming changes to local tables on the subscriber
would lead to errors if no matching local table exists.  Skipping those
changes on the publisher avoids sending useless changes and eliminates
the error.

Bug: #15044
Reported-by: Chad Trabant <chad@iris.washington.edu>
Reviewed-by: Petr Jelinek <petr.jelinek@2ndquadrant.com>
src/backend/catalog/pg_publication.c
src/backend/replication/pgoutput/pgoutput.c
src/include/catalog/pg_publication.h