]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Invalidate all partitions for a partitioned table in publication.
authorAmit Kapila <akapila@postgresql.org>
Wed, 22 Sep 2021 02:54:20 +0000 (08:24 +0530)
committerAmit Kapila <akapila@postgresql.org>
Wed, 22 Sep 2021 02:54:20 +0000 (08:24 +0530)
commitf09a81f1c08fa5c2fed12bed88d53a11a72ff993
treea6da1d009376d05938287bddb41bf101757e3a65
parent583e15af9976f8905e2b27f985d619e758270e16
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
src/backend/catalog/pg_publication.c
src/backend/commands/publicationcmds.c
src/include/catalog/pg_publication.h
src/include/commands/publicationcmds.h
src/test/regress/expected/publication.out
src/test/regress/sql/publication.sql