Windows support in pg_import_system_collations
authorPeter Eisentraut <peter@eisentraut.org>
Tue, 3 Jan 2023 13:21:40 +0000 (14:21 +0100)
committerPeter Eisentraut <peter@eisentraut.org>
Tue, 3 Jan 2023 13:21:56 +0000 (14:21 +0100)
commitbf03cfd162176d543da79f9398131abc251ddbb9
treec8b43b2ac1bd10de8c332d4ea726d03e555ef5a8
parent33ab0a2a527e3af5beee3a98fc07201e555d6e45
Windows support in pg_import_system_collations

Windows can enumerate the locales that are either installed or
supported by calling EnumSystemLocalesEx(), similar to what is already
done in the READ_LOCALE_A_OUTPUT switch.  We can refactor some of the
logic already used in that switch into a new function
create_collation_from_locale().

The enumerated locales have BCP 47 shape, that is with a hyphen
between language and territory, instead of POSIX's underscore.  The
created collations will retain the BCP 47 shape, but we will also
create a POSIX alias, so xx-YY will have an xx_YY alias.

A new test collate.windows.win1252 is added that is like
collate.linux.utf8.

Author: Juan Jose Santamaria Flecha <juanjo.santamaria@gmail.com>
Reviewed-by: Dmitry Koval <d.koval@postgrespro.ru>
Reviewed-by: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Discussion: https://www.postgresql.org/message-id/flat/0050ec23-34d9-2765-9015-98c04f0e18ac@postgrespro.ru
src/backend/commands/collationcmds.c
src/test/regress/expected/collate.windows.win1252.out [new file with mode: 0644]
src/test/regress/expected/collate.windows.win1252_1.out [new file with mode: 0644]
src/test/regress/parallel_schedule
src/test/regress/sql/collate.windows.win1252.sql [new file with mode: 0644]
src/tools/msvc/vcregress.pl