pgsql: Windows support in pg_import_system_collations

Started by Peter Eisentrautover 3 years ago1 messagescomitters
Jump to latest
#1Peter Eisentraut
peter_e@gmx.net

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: /messages/by-id/0050ec23-34d9-2765-9015-98c04f0e18ac@postgrespro.ru

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/bf03cfd162176d543da79f9398131abc251ddbb9

Modified Files
--------------
src/backend/commands/collationcmds.c | 237 ++++-
.../regress/expected/collate.windows.win1252.out | 1024 ++++++++++++++++++++
.../regress/expected/collate.windows.win1252_1.out | 13 +
src/test/regress/parallel_schedule | 2 +-
src/test/regress/sql/collate.windows.win1252.sql | 423 ++++++++
src/tools/msvc/vcregress.pl | 3 +-
6 files changed, 1650 insertions(+), 52 deletions(-)