Thread: pgsql: Fix double publish of child table's data.

pgsql: Fix double publish of child table's data.

From
Amit Kapila
Date:
Fix double publish of child table's data.

We publish the child table's data twice for a publication that has both
child and parent tables and is published with publish_via_partition_root
as true. This happens because subscribers will initiate synchronization
using both parent and child tables, since it gets both as separate tables
in the initial table list.

Ensure that pg_publication_tables returns only parent tables in such
cases.

Author: Hou Zhijie
Reviewed-by: Greg Nancarrow, Amit Langote, Vignesh C, Amit Kapila
Backpatch-through: 13
Discussion: https://postgr.es/m/OS0PR01MB57167F45D481F78CDC5986F794B99@OS0PR01MB5716.jpnprd01.prod.outlook.com

Branch
------
REL_13_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/3f06c00cf6dcd838b61c5d452d4908b5b6e17762

Modified Files
--------------
src/backend/catalog/pg_publication.c      | 52 +++++++++++++++++++++++++++++++
src/test/regress/expected/publication.out |  9 ++++++
src/test/regress/sql/publication.sql      |  4 +++
src/test/subscription/t/013_partition.pl  | 18 ++++++++---
4 files changed, 79 insertions(+), 4 deletions(-)