Re: WIN32 pg_import_system_collations
От | Dmitry Koval |
---|---|
Тема | Re: WIN32 pg_import_system_collations |
Дата | |
Msg-id | 0050ec23-34d9-2765-9015-98c04f0e18ac@postgrespro.ru обсуждение исходный текст |
Ответ на | WIN32 pg_import_system_collations (Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>) |
Ответы |
Re: WIN32 pg_import_system_collations
|
Список | pgsql-hackers |
Hi Juan José, I a bit tested this feature and have small doubts about block: +/* + * Windows will use hyphens between language and territory, where POSIX + * uses an underscore. Simply make it POSIX looking. + */ + hyphen = strchr(localebuf, '-'); + if (hyphen) + *hyphen = '_'; After this block modified collation name is used in function GetNLSVersionEx(COMPARE_STRING, wide_collcollate, &version) (see win32_read_locale() -> CollationFromLocale() -> CollationCreate() call). Is it correct to use (wide_collcollate = "en_NZ") instead of (wide_collcollate = "en-NZ") in GetNLSVersionEx() function? 1) Documentation [1], [2], quote: If it is a neutral locale for which the script is significant, the pattern is <language>-<Script>. 2) Conversation [3], David Rowley, quote: Then, since GetNLSVersionEx() wants yet another variant with a - rather than an _, I've just added a couple of lines to swap the _ for a -. On my computer (Windows 10 Pro 21H2 19044.1466, MSVC2019 version 16.11.9) work correctly both variants ("en_NZ", "en-NZ"). But David Rowley (MSVC2010 and MSVC2017) replaced "_" to "-" for the same function. Maybe he had a problem with "_" on MSVC2010 or MSVC2017? [1] https://docs.microsoft.com/en-us/windows/win32/api/winnls/nf-winnls-getnlsversionex [2] https://docs.microsoft.com/en-us/windows/win32/intl/locale-names [3] https://www.postgresql.org/message-id/flat/CAApHDvq3FXpH268rt-6sD_Uhe7Ekv9RKXHFvpv%3D%3Duh4c9OeHHQ%40mail.gmail.com With best regards, Dmitry Koval.
В списке pgsql-hackers по дате отправления: