Обсуждение: pgsql: Another attempt at fixing Windows Norwegian locale.
Another attempt at fixing Windows Norwegian locale. Previous fix mapped "Norwegian (Bokmål)" locale, which contains a non-ASCII character, to the pure ASCII alias "norwegian-bokmal". However, it turns out that more recent versions of the CRT library, in particular MSVCR110 (Visual Studio 2012), changed the behaviour of setlocale() so that if you pass "norwegian-bokmal" to setlocale, it returns "Norwegian_Norway". That meant trouble, when setlocale(..., NULL) first returned "Norwegian (Bokmål)_Norway", which we mapped to "norwegian-bokmal_Norway", but another call to setlocale(..., "norwegian-bokmal_Norway") returned "Norwegian_Norway". That caused PostgreSQL to think that they are different locales, and therefore not compatible. That caused initdb to fail at CREATE DATABASE. Older CRT versions seem to accept "Norwegian_Norway" too, so change the mapping to return "Norwegian_Norway" instead of "norwegian-bokmal". Backpatch to 9.2 like the previous attempt. We haven't made a release that includes the previous fix yet, so we don't need to worry about changing the locale of existing clusters from "norwegian-bokmal" to "Norwegian_Norway". (Doing any mapping like this at all requires changing the locale of existing databases; the release notes need to include instructions for that). Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/aa1d2fc5e91e396bec5bf8a8d10b6cc4af0b0fff Modified Files -------------- src/port/win32setlocale.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Heikki Linnakangas <heikki.linnakangas@iki.fi> writes:
> Backpatch to 9.2 like the previous attempt. We haven't made a release that
> includes the previous fix yet, so we don't need to worry about changing the
> locale of existing clusters from "norwegian-bokmal" to "Norwegian_Norway".
> (Doing any mapping like this at all requires changing the locale of
> existing databases; the release notes need to include instructions for
> that).
What instructions do you have in mind to give?
regards, tom lane
On 01/16/2015 04:17 PM, Tom Lane wrote: > Heikki Linnakangas <heikki.linnakangas@iki.fi> writes: >> Backpatch to 9.2 like the previous attempt. We haven't made a release that >> includes the previous fix yet, so we don't need to worry about changing the >> locale of existing clusters from "norwegian-bokmal" to "Norwegian_Norway". >> (Doing any mapping like this at all requires changing the locale of >> existing databases; the release notes need to include instructions for >> that). > > What instructions do you have in mind to give? I wrote preliminary instructions here: http://www.postgresql.org/message-id/attachment/35205/fix-bokmal-pg_database.txt. Another method is to use pg_upgrade. I'll need to format that for the release notes, and add more explanation of what the issue is and who it applies to. Or perhaps it would be better to put those instructions on a wiki page, so that we can easily add to it later if necessary? - Heikki