Re: Set arbitrary GUC options during initdb

Peter Eisentraut <peter.eisentraut@enterprisedb.com>

From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@lists.postgresql.org
Date: 2023-01-27T14:48:53Z
Lists: pgsql-hackers
On 25.01.23 22:25, Tom Lane wrote:
> So this invents an initdb switch "-c NAME=VALUE" just like the
> one that the server itself has long had.

This seems useful.

> The specified settings
> are applied on the command line of the initial probe calls
> (which happen before we've made any config files), and then they
> are added to postgresql.auto.conf, which causes them to take
> effect for the bootstrap backend runs as well as subsequent
> postmaster starts.

I would have expected them to be edited into postgresql.conf.  What are 
the arguments for one or the other?

Btw., something that I have had in my notes for a while, but with this 
it would now be officially exposed:  Not all options can be safely set 
during bootstrap.  For example,

     initdb -D data -c track_commit_timestamp=on

will fail an assertion.  This might be an exception, or there might be 
others.




Commits

  1. Fix initdb's handling of min_wal_size and max_wal_size.

  2. Reduce memory leakage in initdb.

  3. Add "-c name=value" switch to initdb.