Handle heap rewrites better in logical replication A FOR ALL TABLES publication naturally considers all base tables to be a candidate for replication. This includes transient heaps that are created during a table rewrite during DDL. This causes failures on the subscriber side because it will not have a table like pg_temp_16386 to receive data (and if it did, it would be the wrong table).
The prevent this problem, we filter out any tables that match this naming pattern and match an actual table from FOR ALL TABLES publications. This is only a heuristic, meaning that user tables that match that naming could accidentally be omitted. A more robust solution might require an explicit marking of such tables in pg_class somehow. Reported-by: yxq <[email protected]> Bug: #14785 Reviewed-by: Andres Freund <[email protected]> Reviewed-by: Petr Jelinek <[email protected]> Branch ------ REL_10_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/1a499c252049dad9016a04bcbab27b8c616d4d03 Modified Files -------------- src/backend/replication/pgoutput/pgoutput.c | 26 ++++++++++ src/test/subscription/t/006_rewrite.pl | 73 +++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+) -- Sent via pgsql-committers mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-committers
