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
This commit is contained in:
parent
390298f080
commit
3d185cfc09
|
@ -734,7 +734,7 @@
|
|||
# encoding
|
||||
|
||||
# These settings are initialized by initdb, but they can be changed.
|
||||
#lc_messages = 'C' # locale for system error message
|
||||
#lc_messages = '' # locale for system error message
|
||||
# strings
|
||||
#lc_monetary = 'C' # locale for monetary formatting
|
||||
#lc_numeric = 'C' # locale for number formatting
|
||||
|
|
|
@ -1227,25 +1227,17 @@ setup_config(void)
|
|||
conflines = replace_guc_value(conflines, "shared_buffers",
|
||||
repltok, false);
|
||||
|
||||
/*
|
||||
* Hack: don't replace the LC_XXX GUCs when their value is 'C', because
|
||||
* replace_guc_value will decide not to quote that, which looks strange.
|
||||
*/
|
||||
if (strcmp(lc_messages, "C") != 0)
|
||||
conflines = replace_guc_value(conflines, "lc_messages",
|
||||
lc_messages, false);
|
||||
conflines = replace_guc_value(conflines, "lc_messages",
|
||||
lc_messages, false);
|
||||
|
||||
if (strcmp(lc_monetary, "C") != 0)
|
||||
conflines = replace_guc_value(conflines, "lc_monetary",
|
||||
lc_monetary, false);
|
||||
conflines = replace_guc_value(conflines, "lc_monetary",
|
||||
lc_monetary, false);
|
||||
|
||||
if (strcmp(lc_numeric, "C") != 0)
|
||||
conflines = replace_guc_value(conflines, "lc_numeric",
|
||||
lc_numeric, false);
|
||||
conflines = replace_guc_value(conflines, "lc_numeric",
|
||||
lc_numeric, false);
|
||||
|
||||
if (strcmp(lc_time, "C") != 0)
|
||||
conflines = replace_guc_value(conflines, "lc_time",
|
||||
lc_time, false);
|
||||
conflines = replace_guc_value(conflines, "lc_time",
|
||||
lc_time, false);
|
||||
|
||||
switch (locale_date_order(lc_time))
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue