Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2049a7d

Browse files
committed
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).
1 parent a10de35 commit 2049a7d

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/port/win32setlocale.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ static const struct locale_map locale_map_result[] = {
9797
* It's not clear what encoding setlocale() uses when it returns the
9898
* locale name, so to play it safe, we search for "Norwegian (Bok*l)".
9999
*/
100-
{"Norwegian (Bokm", "l)", "norwegian-bokmal"},
100+
{"Norwegian (Bokm", "l)_Norway", "Norwegian_Norway"},
101101
{NULL, NULL, NULL}
102102
};
103103

0 commit comments

Comments
 (0)