Re: Data is copied twice when specifying both child and parent table in publication
Greg Nancarrow <gregn4422@gmail.com>
From: Greg Nancarrow <gregn4422@gmail.com>
To: "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>,
Amit Langote <amitlangote09@gmail.com>, Peter Eisentraut <peter.eisentraut@enterprisedb.com>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>,
Dilip Kumar <dilipbalaut@gmail.com>
Date: 2021-11-11T08:14:26Z
Lists: pgsql-hackers
On Thu, Nov 11, 2021 at 5:52 PM houzj.fnst@fujitsu.com <houzj.fnst@fujitsu.com> wrote: > > When looking into how to fix the second issue, I have a question: > > After changing publish_via_partition_root from false to true, the > subcriber will fetch the partitioned table from publisher when refreshing. > > In subsriber side, If all the child tables of the partitioned table already > subscribed, then we can just skip the table sync for the partitioned table. But > if only some of the child tables(not all child tables) were already subscribed, > should we skip the partitioned table's table sync ? I am not sure about the > appropriate behavior here. > > What do you think ? > I'm not sure you can skip the partitioned table's table sync as you are suggesting, because on the subscriber side, the tables are mapped by name, so what is a partitioned table on the publisher side might not be a partitioned table on the subscriber side (e.g. might be an ordinary table; and similarly for the partitions) or it might be partitioned differently to that on the publisher side. (I might be wrong here, and I don't have a good solution, but I can see the potential for inconsistent data resulting in this case, unless say, the subscriber "child tables" are first truncated on the refresh, if they are in fact partitions of the root, and then the table sync publishes the existing data via the root) Regards, Greg Nancarrow Fujitsu Australia
Commits
-
Avoid syncing data twice for the 'publish_via_partition_root' option.
- 062a84442424 16.0 landed
-
Fix partition table's REPLICA IDENTITY checking on the subscriber.
- 52d5ea9adb01 14.5 cited
-
Prohibit combining publications with different column lists.
- fd0b9dcebda7 15.0 cited
-
Fix double publish of child table's data.
- 3f06c00cf6dc 13.6 landed
- 614b77d65a38 14.2 landed
- 5e97905a2c76 15.0 landed
-
Support adding partitioned tables to publication
- 17b9e7f9fe23 13.0 cited