Re: Identify missing publications from publisher while create/alter subscription. - Mailing list pgsql-hackers

From Japin Li
Subject Re: Identify missing publications from publisher while create/alter subscription.
Date
Msg-id MEYP282MB16691B78E1662D327662985AB6589@MEYP282MB1669.AUSP282.PROD.OUTLOOK.COM
Whole thread Raw
In response to Re: Identify missing publications from publisher while create/alter subscription.  (vignesh C <vignesh21@gmail.com>)
Responses Re: Identify missing publications from publisher while create/alter subscription.
List pgsql-hackers
On Tue, 04 May 2021 at 21:20, vignesh C <vignesh21@gmail.com> wrote:
> On Tue, May 4, 2021 at 2:37 PM Bharath Rupireddy
> <bharath.rupireddyforpostgres@gmail.com> wrote:
>>
>> On Mon, May 3, 2021 at 7:59 PM vignesh C <vignesh21@gmail.com> wrote:
>> > Thanks for the comments, these comments are handle in the v7 patch
>> > posted in my earlier mail.
>>
>> Thanks. Some comments on v7 patch:
>>
>> 1) How about "Add publication names from the list to a string."
>>  instead of
>>  * Append the list of publication to dest string.
>>
>
> Modified.
>
>> 2) How about "Connect to the publisher and see if the given
>> publication(s) is(are) present."
>> instead of
>>  * Connect to the publisher and check if the publication(s) exist.
>>
>
> Modified.
>
>> 3) Below comments are unnecessary as the functions/code following them
>> will tell what the code does.
>>     /* Verify specified publication(s) exist in the publisher. */
>>     /* We are done with the remote side, close connection. */
>>
>>     /* Verify specified publication(s) exist in the publisher. */
>>     PG_TRY();
>>     {
>>         check_publications(wrconn, publications, true);
>>     }
>>     PG_FINALLY();
>>     {
>>         /* We are done with the remote side, close connection. */
>>         walrcv_disconnect(wrconn);
>>     }
>>
>
> Modified.
>
>> 4) And also the comment below that's there before check_publications
>> is unnecessary, as the function name and description would say it all.
>> /* Verify specified publication(s) exist in the publisher. */
>>
>
> Modified.
>
>> 5) A typo -  it is "do not exist"
>> # Multiple publications does not exist.
>>
>
> Modified.
>
>> 6) Should we use "m" specified in all the test cases something like we
>> do for $stderr =~ m/threads are not supported on this platform/ or
>> m/replication slot "test_slot" was not created in this database/?
>> $stderr =~
>>          /ERROR:  publication "non_existent_pub" does not exist in the
>> publisher/,
>
> Modified.
>
> Thanks for the comments, Attached patch has the fixes for the same.

Thanks for updating the patch.  Some comments on v8 patch.

1) How about use appendStringInfoChar() to replace the first and last one,
since it more faster.
+                       appendStringInfoString(dest, "\"");
+                       appendStringInfoString(dest, pubname);
+                       appendStringInfoString(dest, "\"");

2) How about use if (!validate_publication) to keep the code style consistent?
+       if (validate_publication == false)
+               return;

3) Should we free the memory when finish the check_publications()?
+       publicationsCopy = list_copy(publications);

4) It is better wrap the word "streaming" with quote.  Also, should we add
'no "validate_publication"' comment for validate_publication parameters?
                                                                                   NULL, NULL,  /* no "binary" */
-                                                                                  NULL, NULL); /* no streaming */
+                                                                                  NULL, NULL,  /* no streaming */
+                                                                                  NULL, NULL);

-- 
Regrads,
Japin Li.
ChengDu WenWu Information Technology Co.,Ltd.



pgsql-hackers by date:

Previous
From: Amit Kapila
Date:
Subject: Re: PATCH: logical_work_mem and logical streaming of large in-progress transactions
Next
From: Robert Haas
Date:
Subject: Re: MaxOffsetNumber for Table AMs