Re: initdb --no-locale=C doesn't work as specified when the environment is not C
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2023-11-22T16:04:01Z
Lists: pgsql-hackers
Kyotaro Horiguchi <horikyota.ntt@gmail.com> writes: > Commit 3e51b278db leaves lc_* conf lines as commented-out when > their value is "C". This leads to the following behavior. Hmm ... I see a contributing factor here: this bit in postgresql.conf.sample is a lie: #lc_messages = 'C' # locale for system error message # strings A look in guc_tables.c shows that the actual default is '' (empty string), which means "use the environment", and that matches how the variable is documented in config.sgml. Somebody --- quite possibly me --- was misled by the contents of postgresql.conf.sample into thinking that the lc_xxx GUCs all default to C, when that's only true for the others. I think that a more correct fix for this would treat lc_messages differently from the other lc_xxx GUCs. Maybe just eliminate the hack about not substituting "C" for that one? In any case, we need to fix this mistake in postgresql.conf.sample. regards, tom lane
Commits
-
Restore initdb's old behavior of always setting the lc_xxx GUCs.
- ba33775fd030 16.2 landed
- 3d185cfc09c3 17.0 landed
-
Add "-c name=value" switch to initdb.
- 3e51b278db6a 16.0 cited