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

From vignesh C
Subject Re: Identify missing publications from publisher while create/alter subscription.
Date
Msg-id CALDaNm0BSHdg=4Ek61rcufnSGBjhHFXJ2RL-3nNBsD2DAMvDCw@mail.gmail.com
Whole thread Raw
In response to Re: Identify missing publications from publisher while create/alter subscription.  (Japin Li <japinli@hotmail.com>)
Responses Re: Identify missing publications from publisher while create/alter subscription.
Re: Identify missing publications from publisher while create/alter subscription.
List pgsql-hackers
On Thu, May 6, 2021 at 9:08 AM Japin Li <japinli@hotmail.com> wrote:
>
>
> 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, "\"");

Modified.

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

Modified.

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

I felt this list entries will be deleted in the success case, in error
case I felt no need to delete it as we will be exiting. Thoughts?

> 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);

Modified.

Thanks for the comments, attached v9 patch has the fixes for the same.

Regards,
Vignesh

Attachment

pgsql-hackers by date:

Previous
From: Dilip Kumar
Date:
Subject: Re: [BUG]"FailedAssertion" reported in lazy_scan_heap() when running logical replication
Next
From: Dilip Kumar
Date:
Subject: Re: Toast compression method options