Robert Haas <robertmhaas@gmail.com> writes:
> On Wed, Jan 17, 2018 at 6:50 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> * As the patch stands, --set-db-properties is implicit when you specify
>> -C, and in fact the patch goes to the trouble of throwing an error if you
>> try to specify both switches. I'm inclined to think this might be a bad
>> idea. What about saying that -C enables emitting CREATE DATABASE and
>> reconnecting to that DB, and independently of that, --set-db-properties
>> enables emitting the additional per-database properties? This seems
>> simpler to understand, more flexible, and less of a change from the
>> previous behavior of -C. On the other hand you could argue that people
>> would always want --set-db-properties with -C and so we're merely
>> promoting carpal tunnel (and errors of omission) if we do it like that.
> I would vigorously agree with that latter argument. I think the
> chances of errors of omission would be very high even if the carpal
> tunnel dangers were ameliorated by giving --set-db-properties a short
> option name.
Fair enough. We'll keep the behavioral change then.
>> If so, maybe we could say "-C implies --set-db-properties by default, but
>> if you really don't want that, you can say -C --no-set-db-properties".
> That seems like a better idea.
What I think I'll do for the moment is make them independent options so
far as the implementation is concerned, but have the command line switch
processing do
/* --create implies --set-db-properties, for now anyway */
if (dopt.outputCreateDB)
dopt.set_db_properties = 1;
If somebody actually asks for --no-set-db-properties, we can add that
later.
regards, tom lane