pgsql: Invalidate all partitions for a partitioned table in publication

Поиск
Список
Период
Сортировка
От Amit Kapila
Тема pgsql: Invalidate all partitions for a partitioned table in publication
Дата
Msg-id E1mSsY9-0000Wq-IS@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Invalidate all partitions for a partitioned table in publication.

Updates/Deletes on a partition were allowed even without replica identity
after the parent table was added to a publication. This would later lead
to an error on subscribers. The reason was that we were not invalidating
the partition's relcache and the publication information for partitions
was not getting rebuilt. Similarly, we were not invalidating the
partitions' relcache after dropping a partitioned table from a publication
which will prohibit Updates/Deletes on its partition without replica
identity even without any publication.

Reported-by: Haiying Tang
Author: Hou Zhijie and Vignesh C
Reviewed-by: Vignesh C and Amit Kapila
Backpatch-through: 13
Discussion: https://postgr.es/m/OS0PR01MB6113D77F583C922F1CEAA1C3FBD29@OS0PR01MB6113.jpnprd01.prod.outlook.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/4548c76738b368a11a5dad052f9653a349eeb52c

Modified Files
--------------
src/backend/catalog/pg_publication.c      | 82 ++++++++++++++++++++-----------
src/backend/commands/publicationcmds.c    | 57 ++++++++++++---------
src/include/catalog/pg_publication.h      |  3 ++
src/include/commands/publicationcmds.h    |  5 ++
src/test/regress/expected/publication.out | 13 ++++-
src/test/regress/sql/publication.sql      | 11 ++++-
6 files changed, 116 insertions(+), 55 deletions(-)


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

Предыдущее
От: Amit Kapila
Дата:
Сообщение: pgsql: Add parent table name in an error in reorderbuffer.c.
Следующее
От: Peter Eisentraut
Дата:
Сообщение: pgsql: Make use of PG_INT64_MAX/PG_INT64_MIN