Thread: Re: [COMMITTERS] pgsql: Replace empty locale name with implied value in CREATE DATABASE
Re: [COMMITTERS] pgsql: Replace empty locale name with implied value in CREATE DATABASE
From
Stefan Kaltenbrunner
Date:
On 03/26/2012 03:47 AM, Tom Lane wrote: > Replace empty locale name with implied value in CREATE DATABASE and initdb. > > setlocale() accepts locale name "" as meaning "the locale specified by the > process's environment variables". Historically we've accepted that for > Postgres' locale settings, too. However, it's fairly unsafe to store an > empty string in a new database's pg_database.datcollate or datctype fields, > because then the interpretation could vary across postmaster restarts, > possibly resulting in index corruption and other unpleasantness. > > Instead, we should expand "" to whatever it means at the moment of calling > CREATE DATABASE, which we can do by saving the value returned by > setlocale(). > > For consistency, make initdb set up the initial lc_xxx parameter values the > same way. initdb was already doing the right thing for empty locale names, > but it did not replace non-empty names with setlocale results. On a > platform where setlocale chooses to canonicalize the spellings of locale > names, this would result in annoying inconsistency. (It seems that popular > implementations of setlocale don't do such canonicalization, which is a > pity, but the POSIX spec certainly allows it to be done.) The same risk > of inconsistency leads me to not venture back-patching this, although it > could certainly be seen as a longstanding bug. > > Per report from Jeff Davis, though this is not his proposed patch. hmm seems like this commit broken quagga: http://www.pgbuildfarm.org/cgi-bin/show_log.pl?nm=quagga&dt=2012-03-26%2002%3A03%3A04 Stefan
Re: Re: [COMMITTERS] pgsql: Replace empty locale name with implied value in CREATE DATABASE
From
Tom Lane
Date:
Stefan Kaltenbrunner <stefan@kaltenbrunner.cc> writes: > On 03/26/2012 03:47 AM, Tom Lane wrote: >> Replace empty locale name with implied value in CREATE DATABASE and initdb. > hmm seems like this commit broken quagga: > http://www.pgbuildfarm.org/cgi-bin/show_log.pl?nm=quagga&dt=2012-03-26%2002%3A03%3A04 Hm, it's hard to see how that patch would have affected the create-conversions step but not any preceding one. Can you provide a stack trace from the core dump? regards, tom lane
Re: Re: [COMMITTERS] pgsql: Replace empty locale name with implied value in CREATE DATABASE
From
Stefan Kaltenbrunner
Date:
On 03/26/2012 04:29 PM, Tom Lane wrote: > Stefan Kaltenbrunner <stefan@kaltenbrunner.cc> writes: >> On 03/26/2012 03:47 AM, Tom Lane wrote: >>> Replace empty locale name with implied value in CREATE DATABASE and initdb. > >> hmm seems like this commit broken quagga: >> http://www.pgbuildfarm.org/cgi-bin/show_log.pl?nm=quagga&dt=2012-03-26%2002%3A03%3A04 > > Hm, it's hard to see how that patch would have affected the > create-conversions step but not any preceding one. Can you provide > a stack trace from the core dump? hmm weird - I cannot reproduce the core dump using the binaries created by the failing build at all. Given that the current build also went through just fine I wonder if that was some sort of false-alarm created by a cosmic ray or a hardware issue(though I have no indication that anything is wrong on the box). Stefan