Re: Warn if initdb's --sync-only option is mixed with other options - Mailing list pgsql-hackers

From Daniel Gustafsson
Subject Re: Warn if initdb's --sync-only option is mixed with other options
Date
Msg-id 0BE9E0AC-BA09-4510-B683-AB169D1174C4@yesql.se
Whole thread Raw
In response to Warn if initdb's --sync-only option is mixed with other options  (Gurjeet Singh <gurjeet@singh.im>)
Responses Re: Warn if initdb's --sync-only option is mixed with other options  (Daniel Gustafsson <daniel@yesql.se>)
List pgsql-hackers
> On 7 Jul 2021, at 04:23, Gurjeet Singh <gurjeet@singh.im> wrote:

> I'm not able to come up with an exact situation to prove this, but
> this behaviour seems potentially dangerous. The user might mix the
> --sync-only option with other options, but would be extremely
> surprised if those other options didn't take effect.

Is if there is a plausible real world situation where a user runs --sync-only
together with other arguments and also miss the fact that the other arguments
didn't take effect, and have bad consequences?

> I _think_ we should throw an error if the user specifies any options
> that are being ignored. But an error might break someone's automation
> (perhaps for their own good), since the current behaviour has been in
> place for a very long time, so I'm willing to settle for at least a
> warning in such a case.

We typically don't issue warnings for incompatible arguments, but rather error
out, and I'm not convinced this warrants breaking that.  If we are going to do
anything I think we should error out; if we decide to do something then we
consider the scripts that will break to already be broken.

A slightly confusing aspect of this is however the error message for sync-only
when -D or PGDATA isn't set says "will reside" when in fact it should say "is
residing" (or something along those lines):

  $ ./bin/initdb --sync-only
  initdb: error: no data directory specified
  You must identify the directory where the data for this database system
  will reside.  Do this with either the invocation option -D or the
  environment variable PGDATA.

I doubt it's worth complicating the code for this fringe case though.

--
Daniel Gustafsson        https://vmware.com/




pgsql-hackers by date:

Previous
From: Ranier Vilela
Date:
Subject: Re: Keep notnullattrs in RelOptInfo (Was part of UniqueKey patch series)
Next
From: Dean Rasheed
Date:
Subject: Re: [PATCH] expand the units that pg_size_pretty supports on output