Restore initdb's old behavior of always setting the lc_xxx GUCs.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 10 Jan 2024 23:09:29 +0000 (18:09 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 10 Jan 2024 23:09:29 +0000 (18:09 -0500)
commit3d185cfc09c32b1f250adfbb62c0c7a3f96c5af2
treeba1980b95f7cbe9cd89c028ee76f654035b454cf
parent390298f0806588ceb131dd47760208bd2cd6298f
Restore initdb's old behavior of always setting the lc_xxx GUCs.

In commit 3e51b278d I (tgl) caused initdb to leave lc_messages and
other lc_xxx GUCs commented-out in the installed postgresql.conf file
if they were going to be set to 'C'.  This was a hack for cosmetic
purposes, and it was buggy because lc_messages' wired-in default is
not 'C' but '' (empty string).  That led to --no-locale not having
the expected effect, since the postmaster would then obtain
lc_messages from its startup environment.

Let's just revert to the prior behavior of always de-commenting the
lc_xxx entries; the argument for changing that longstanding behavior
was weak in the first place.

Also, fix postgresql.conf.sample's erroneous claim that the default
value of lc_messages is 'C'.  I suspect that was what misled me into
making this mistake in the first place.

Report and patch by Kyotaro Horiguchi.  Back-patch to v16 where
the problem was introduced.

Discussion: https://postgr.es/m/20231122.162700.1995154567625541112.horikyota.ntt@gmail.com
src/backend/utils/misc/postgresql.conf.sample
src/bin/initdb/initdb.c