Improve parsing of options of CREATE/ALTER SUBSCRIPTION
authorMichael Paquier <michael@paquier.xyz>
Wed, 8 Dec 2021 03:36:31 +0000 (12:36 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 8 Dec 2021 03:36:31 +0000 (12:36 +0900)
commit00029deaf65aad47044d9290fe80f2f68601f7ac
tree1ab54bd86e605e099366148f5ebee0967b6a6bbc
parentf99870dd867331f576a84e37438da86a866559c4
Improve parsing of options of CREATE/ALTER SUBSCRIPTION

This simplifies the code so as it is not necessary anymore for the
caller of parse_subscription_options() to zero SubOpts, holding a
bitmaps of the provided options as well as the default/parsed option
values.  This also simplifies some checks related to the options
supported by a command when checking for incompatibilities.

While on it, the errors generated for unsupported combinations with
"slot_name = NONE" are reordered.  This may generate a different errors
compared to the previous major versions, but users have to go through
all those errors to get a correct command in this case when using
incorrect values for options "enabled" and "create\slot", so at the end
the resulting command would remain the same.

Author: Peter Smith
Reviewed-by: Nathan Bossart
Discussion: https://postgr.es/m/CAHut+PtXHfLgLHDDJ8ZN5f5Be_37mJoxpEsRg8LNmm4XCr06Rw@mail.gmail.com
src/backend/commands/subscriptioncmds.c
src/test/regress/expected/subscription.out
src/test/regress/sql/subscription.sql