pgsql: Work around Windows locale name with non-ASCII character.

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема pgsql: Work around Windows locale name with non-ASCII character.
Дата
Msg-id E1XhjKc-0003Zo-9j@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Work around Windows locale name with non-ASCII character.

Windows has one a locale whose name contains a non-ASCII character:
"Norwegian (Bokmål)" (that's an 'a' with a ring on top). That causes
trouble; when passing it setlocale(), it's not clear what encoding the
argument should be in. Another problem is that the locale name is stored in
pg_database catalog table, and the encoding used there depends on what
server encoding happens to be in use when the database is created. For
example, if you issue the CREATE DATABASE when connected to a UTF-8
database, the locale name is stored in pg_database in UTF-8. As long as all
locale names are pure ASCII, that's not a problem.

To work around that, map the troublesome locale name to a pure-ASCII alias
of the same locale, "norwegian-bokmal".

Now, this doesn't change the existing values that are already in
pg_database and in postgresql.conf. Old clusters will need to be fixed
manually. Instructions for that need to be put in the release notes.

This fixes bug #11431 reported by Alon Siman-Tov. Backpatch to 9.2;
backpatching further would require more work than seems worth it.

Branch
------
REL9_3_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/8f80dcf3c646679ae1270eb55f29fed9b0009c80

Modified Files
--------------
src/port/win32setlocale.c |  158 ++++++++++++++++++++++++++++++++-------------
1 file changed, 114 insertions(+), 44 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: pgsql: Make the locale comparison in pg_upgrade more lenient
Следующее
От: Heikki Linnakangas
Дата:
Сообщение: pgsql: Work around Windows locale name with non-ASCII character.