Fix ALTER SUBSCRIPTION ... SET PUBLICATION documentation - Mailing list pgsql-hackers

From japin
Subject Fix ALTER SUBSCRIPTION ... SET PUBLICATION documentation
Date
Msg-id MEYP282MB1669EC36DFB14C9C4B676FD8B6BC0@MEYP282MB1669.AUSP282.PROD.OUTLOOK.COM
Whole thread Raw
Responses Re: Fix ALTER SUBSCRIPTION ... SET PUBLICATION documentation  (Amit Kapila <amit.kapila16@gmail.com>)
List pgsql-hackers
Hi,

When I read the documentation of ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (...),
it says "set_publication_option" only support "refresh" in documentation [1].
However, we can also supply the "copy_data" option, and the code is:

        case ALTER_SUBSCRIPTION_PUBLICATION:
            {
                bool        copy_data;
                bool        refresh;

                parse_subscription_options(stmt->options,
                                           NULL,    /* no "connect" */
                                           NULL, NULL,  /* no "enabled" */
                                           NULL,    /* no "create_slot" */
                                           NULL, NULL,  /* no "slot_name" */
                                           ©_data,
                                           NULL,    /* no "synchronous_commit" */
                                           &refresh,
                                           NULL, NULL,  /* no "binary" */
                                           NULL, NULL); /* no "streaming" */
                values[Anum_pg_subscription_subpublications - 1] =
                    publicationListToArray(stmt->publication);
                replaces[Anum_pg_subscription_subpublications - 1] = true;

                update_tuple = true;

                /* Refresh if user asked us to. */
                if (refresh)
                {
                    if (!sub->enabled)
                        ereport(ERROR,
                                (errcode(ERRCODE_SYNTAX_ERROR),
                                 errmsg("ALTER SUBSCRIPTION with refresh is not allowed for disabled subscriptions"),
                                 errhint("Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false).")));

                    /* Make sure refresh sees the new list of publications. */
                    sub->publications = stmt->publication;

                    AlterSubscription_refresh(sub, copy_data);
                }

                break;
            }

Should we fix the documentation or the code?  I'd be inclined fix the documentation.

[1] - https://www.postgresql.org/docs/devel/sql-altersubscription.html

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


Attachment

pgsql-hackers by date:

Previous
From: Kyotaro Horiguchi
Date:
Subject: Re: shared tempfile was not removed on statement_timeout
Next
From: Vik Fearing
Date:
Subject: Re: WIP: System Versioned Temporal Table