On Wed, Mar 6, 2024 at 5:53 PM Amit Kapila <amit.kapil...@gmail.com> wrote: > > On Wed, Mar 6, 2024 at 12:07 PM Masahiko Sawada <sawada.m...@gmail.com> wrote: > > > > On Fri, Mar 1, 2024 at 3:22 PM Peter Smith <smithpb2...@gmail.com> wrote: > > > > > > On Fri, Mar 1, 2024 at 5:11 PM Masahiko Sawada <sawada.m...@gmail.com> > > > wrote: > > > > > > > ... > > > > + /* > > > > + * "*" is not accepted as in that case primary will not be > > > > able to know > > > > + * for which all standbys to wait for. Even if we have > > > > physical slots > > > > + * info, there is no way to confirm whether there is any > > > > standby > > > > + * configured for the known physical slots. > > > > + */ > > > > + if (strcmp(*newval, "*") == 0) > > > > + { > > > > + GUC_check_errdetail("\"*\" is not accepted for > > > > standby_slot_names"); > > > > + return false; > > > > + } > > > > > > > > Why only '*' is checked aside from validate_standby_slots()? I think > > > > that the doc doesn't mention anything about '*' and '*' cannot be used > > > > as a replication slot name. So even if we don't have this check, it > > > > might be no problem. > > > > > > > > > > Hi, a while ago I asked this same question. See [1 #28] for the response.. > > > > Thanks. Quoting the response from the email: > > > > SplitIdentifierString() does not give error for '*' and '*' can be > > considered > > as valid value which if accepted can mislead user that all the standbys's > > slots > > are now considered, which is not the case here. So we want to explicitly > > call > > out this case i.e. '*' is not accepted as valid value for > > standby_slot_names. > > > > IIUC we're concerned with a case like where the user confused > > standby_slot_names values with synchronous_standby_names values. Which > > means we would need to keep thath check consistent with available > > values of synchronous_standby_names. > > > > Both have different formats to specify. For example, for > synchronous_standby_names we have the following kind of syntax to > specify: > [FIRST] num_sync ( standby_name [, ...] ) > ANY num_sync ( standby_name [, ...] ) > standby_name [, ...] > > I don't think we can have a common check for both of them as the > specifications are different. In fact, I don't think we need a special > check for '*'.
I think so too. > The user will anyway get a WARNING at a later point > that the replication slot with that name doesn't exist. Right. Regards, -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com