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(-)
--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers
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
--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers
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:
/messages/by-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
--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers
On 01/16/2015 07:05 PM, Heikki Linnakangas wrote:
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:
/messages/by-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?
Ok, I have created a wiki page for these instructions:
http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale
They can be moved to the release notes, or we can just add a note there
with a link to the wiki page. I think the latter would be better.
Suggested reference in the release notes:
Migration to Version X
If you are a Windows user, using the "Norwegian (Bokm�l)" locale, manual
action is needed after the upgrade, to replace the "Norwegian
(Bokm�l)_Norway" locale names stored in system catalogs with its
pure-ASCII alias, "Norwegian_Norway". More information is available at
http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale
- Heikki
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
Heikki Linnakangas <hlinnakangas@vmware.com> writes:
On 01/16/2015 07:05 PM, Heikki Linnakangas wrote:
On 01/16/2015 04:17 PM, Tom Lane wrote:
What instructions do you have in mind to give?
Ok, I have created a wiki page for these instructions:
They can be moved to the release notes, or we can just add a note there
with a link to the wiki page. I think the latter would be better.
Suggested reference in the release notes:
Migration to Version X
If you are a Windows user, using the "Norwegian (Bokm�l)" locale, manual
action is needed after the upgrade, to replace the "Norwegian
(Bokm�l)_Norway" locale names stored in system catalogs with its
pure-ASCII alias, "Norwegian_Norway". More information is available at
http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale
I've looked at this issue a bit now. I'm good with using essentially this
text in the release notes, but I think the instructions are one brick shy
of a load. Specifically, you claimed in the second commit that we'd not
made any releases using "norwegian-bokmal", but that's utterly wrong:
9.4.0 uses that spelling. What advice do we need to give 9.4 users?
regards, tom lane
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On 01/31/2015 09:52 PM, Tom Lane wrote:
Heikki Linnakangas <hlinnakangas@vmware.com> writes:
On 01/16/2015 07:05 PM, Heikki Linnakangas wrote:
On 01/16/2015 04:17 PM, Tom Lane wrote:
What instructions do you have in mind to give?
Ok, I have created a wiki page for these instructions:
They can be moved to the release notes, or we can just add a note there
with a link to the wiki page. I think the latter would be better.
Suggested reference in the release notes:Migration to Version X
If you are a Windows user, using the "Norwegian (Bokm�l)" locale, manual
action is needed after the upgrade, to replace the "Norwegian
(Bokm�l)_Norway" locale names stored in system catalogs with its
pure-ASCII alias, "Norwegian_Norway". More information is available at
http://wiki.postgresql.org/wiki/Changes_To_Norwegian_LocaleI've looked at this issue a bit now. I'm good with using essentially this
text in the release notes, but I think the instructions are one brick shy
of a load. Specifically, you claimed in the second commit that we'd not
made any releases using "norwegian-bokmal", but that's utterly wrong:
9.4.0 uses that spelling.
Oops, I didn't realize that.
What advice do we need to give 9.4 users?
I just downloaded the 9.4 EDB Windows installer and tried installing it.
initdb fails with the same error that I got after upgrading to more
recent MSVC version. "select version()" on the EDB binaries says:
version
-------------------------------------------------------------
PostgreSQL 9.4.0, compiled by Visual C++ build 1800, 64-bit
(1 row)
So there shouldn't be any existing Windows 9.4 installations that need
manual fixing, because the current binaries will just fail.
If there are any Norwegian users that have built Windows binaries
themselves, though, using an older MSVC version, then they would need to
follow the same manual fix-up steps to replace the "norwegian-bokmal"
locale names in pg_database with "Norwegian_Norway". Until they do,
CREATE DATABASE won't work (except with template=template0).
I suggest that we simply remove the notice about running the manual
steps from the 9.4.1 release notes.
- Heikki
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
Heikki Linnakangas <hlinnakangas@vmware.com> writes:
On 01/31/2015 09:52 PM, Tom Lane wrote:
What advice do we need to give 9.4 users?
I just downloaded the 9.4 EDB Windows installer and tried installing it.
initdb fails with the same error that I got after upgrading to more
recent MSVC version. "select version()" on the EDB binaries says:
version
-------------------------------------------------------------
PostgreSQL 9.4.0, compiled by Visual C++ build 1800, 64-bit
(1 row)
So there shouldn't be any existing Windows 9.4 installations that need
manual fixing, because the current binaries will just fail.
If there are any Norwegian users that have built Windows binaries
themselves, though, using an older MSVC version, then they would need to
follow the same manual fix-up steps to replace the "norwegian-bokmal"
locale names in pg_database with "Norwegian_Norway". Until they do,
CREATE DATABASE won't work (except with template=template0).
I suggest that we simply remove the notice about running the manual
steps from the 9.4.1 release notes.
Hm. My understanding of the situation was that the "norwegian-bokmal"
solution worked on some Windows versions but not others. So it seems
like the risk for 9.4 users is that they installed on a version where
"norwegian-bokmal" works and then someday want to migrate the database
to one where it doesn't. Maybe we don't need to address that, but
I'm strongly tempted to keep the same instructions but phrase them
as "change norwegian-bokmal to Norwegian_Norway if it's there".
regards, tom lane
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On 02/01/2015 04:56 PM, Tom Lane wrote:
Heikki Linnakangas <hlinnakangas@vmware.com> writes:
On 01/31/2015 09:52 PM, Tom Lane wrote:
What advice do we need to give 9.4 users?
I just downloaded the 9.4 EDB Windows installer and tried installing it.
initdb fails with the same error that I got after upgrading to more
recent MSVC version. "select version()" on the EDB binaries says:version
-------------------------------------------------------------
PostgreSQL 9.4.0, compiled by Visual C++ build 1800, 64-bit
(1 row)So there shouldn't be any existing Windows 9.4 installations that need
manual fixing, because the current binaries will just fail.If there are any Norwegian users that have built Windows binaries
themselves, though, using an older MSVC version, then they would need to
follow the same manual fix-up steps to replace the "norwegian-bokmal"
locale names in pg_database with "Norwegian_Norway". Until they do,
CREATE DATABASE won't work (except with template=template0).I suggest that we simply remove the notice about running the manual
steps from the 9.4.1 release notes.Hm. My understanding of the situation was that the "norwegian-bokmal"
solution worked on some Windows versions but not others.
I'm no Windows expert, but believe that it's not the Windows version
you're running on that matters, but the CRT library used when building
the binaries.
So it seems like the risk for 9.4 users is that they installed on a
version where "norwegian-bokmal" works and then someday want to
migrate the database to one where it doesn't. Maybe we don't need to
address that, but I'm strongly tempted to keep the same instructions
but phrase them as "change norwegian-bokmal to Norwegian_Norway if
it's there".
That's fine by me, that advice is correct, although I believe that you
only encounter that situation if you had built the binaries yourself
with an older MSVC version.
- Heikki
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
Heikki Linnakangas <hlinnakangas@vmware.com> writes:
On 02/01/2015 04:56 PM, Tom Lane wrote:
Hm. My understanding of the situation was that the "norwegian-bokmal"
solution worked on some Windows versions but not others.
I'm no Windows expert, but believe that it's not the Windows version
you're running on that matters, but the CRT library used when building
the binaries.
I see. Still, it's not too hard to credit that one might switch to a new
set of binaries built with a different library version.
So it seems like the risk for 9.4 users is that they installed on a
version where "norwegian-bokmal" works and then someday want to
migrate the database to one where it doesn't. Maybe we don't need to
address that, but I'm strongly tempted to keep the same instructions
but phrase them as "change norwegian-bokmal to Norwegian_Norway if
it's there".
That's fine by me, that advice is correct, although I believe that you
only encounter that situation if you had built the binaries yourself
with an older MSVC version.
OK, I'll make it so.
regards, tom lane
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers