Re: create subscription with (origin = none, copy_data = on) - Mailing list pgsql-hackers

From Sergey Tatarintsev
Subject Re: create subscription with (origin = none, copy_data = on)
Date
Msg-id 547d522b-2457-4dcc-a7cc-322f0e953be5@postgrespro.ru
Whole thread Raw
In response to Re: create subscription with (origin = none, copy_data = on)  (vignesh C <vignesh21@gmail.com>)
Responses Re: create subscription with (origin = none, copy_data = on)
List 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?







pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: RFC: Additional Directory for Extensions
Next
From: Andres Freund
Date:
Subject: Re: Pre-allocating WAL files