Re: create subscription with (origin = none, copy_data = on)
Sergey Tatarintsev <s.tatarintsev@postgrespro.ru>
From: Sergey Tatarintsev <s.tatarintsev@postgrespro.ru>
To: Shlok Kyal <shlok.kyal.oss@gmail.com>,
"Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>
Cc: vignesh C <vignesh21@gmail.com>,
"pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>,
Amit Kapila <amit.kapila16@gmail.com>
Date: 2025-01-22T16:13:57Z
Lists: pgsql-hackers
22.01.2025 18:41, Shlok Kyal пишет: > On Wed, 22 Jan 2025 at 09:00, Zhijie Hou (Fujitsu) > <houzj.fnst@fujitsu.com> wrote: >> On Tuesday, January 21, 2025 1:31 AM vignesh C <vignesh21@gmail.com> wrote: >> >> Hi, >> >>> On Mon, 20 Jan 2025 at 17:31, Amit Kapila <amit.kapila16@gmail.com> wrote: >>>> On Sat, Jan 18, 2025 at 10:31 AM vignesh C <vignesh21@gmail.com> wrote: >>>>> Attached patch has the fix for this issue which includes the >>>>> partition tables also for the publication now and throws a warning >>>>> appropriately. >>>>> >>>> The corresponding query (see "To find which tables might potentially >>>> include non-local origins .." on [1]) on the create_subscription doc >>>> page. >>>> BTW, the proposed fix is not backpatcheable as it changes the catalog >>>> which requires catversion bump. However, as this is a WARNING case, if >>>> we can't find a fix that can't be backpatched, we can fix it in >>>> HEAD-only. >>> I could not find a way to fix the back version without changing the catalog >>> version. >>> >>> The attached v3 version has the changes for the same. >> Thanks for the patch. >> >> I agree that covering the partitioned table case when checking the non-local >> origin data on publisher is an improvement. But I think adding or extending the >> SQL functions may not be the appropriate way to fix because the new functions >> cannot be used in older PG version and is also not backpatchable. >> >> I am thinking it would be better to use the existing pg_partition_ancestors() >> and pg_partition_tree() to verify the same, which can be used in all supported >> PG versions and is also backpatchable. >> >> And here is another version which fixed the issue like that. I have not added >> tests for it, but I think it's doable to write the something like the testcases >> provided by Sergey. This patch does not fix the foreign tabel as that seems to >> be a separate issue which can be fixed independtly. >> >> Hi Sergey, if you have the time, could you please verify whether this patch >> resolves the partition issue you reported? I've confirmed that it passes the >> partitioned tests in the scripts, but I would appreciate your confirmation for >> the same. >> > Hi Hou-san, > > I have created a patch to add a test for the patch. > > v5-0001 : same as v4-0001 > v5-0002: adds the testcase > > Thanks and Regards, > Shlok Kyal Hi! Sorry, I can't do it right now, but I think we need add testcase where ancestor of published table have different origin. Also we still don't care about foreign partitions (as I wrote earlier we should raise an ERROR for such publications). This checking must be done at publication creation in check_publication_add_relation(), but I not sure about publication for all tables/for tables in schema because one foreign table will block publication creation Thoughts?
Commits
-
Fix a WARNING for data origin discrepancies.
- b4e0d0c53fab 18.0 landed
- 0ae1245e04ad 17.5 landed
- 1c2a2354c384 16.9 landed