[COMMITTERS] pgsql: Handle heap rewrites better in logical replication

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема [COMMITTERS] pgsql: Handle heap rewrites better in logical replication
Дата
Msg-id E1dwqso-0002P3-Qd@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
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 <yxq@o2.pl>
Bug: #14785
Reviewed-by: Andres Freund <andres@anarazel.de>
Reviewed-by: Petr Jelinek <petr.jelinek@2ndquadrant.com>

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/ab28feae2bd3d4629bd73ae3548e671c57d785f0

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 (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

В списке pgsql-committers по дате отправления:

Предыдущее
От: Robert Haas
Дата:
Сообщение: [COMMITTERS] pgsql: Remove lsn from HashScanPosData.
Следующее
От: Peter Eisentraut
Дата:
Сообщение: [COMMITTERS] pgsql: Sort pg_basebackup options better