1
0
mirror of https://github.com/postgres/postgres.git synced 2025-09-02 04:21:28 +03:00

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
This commit is contained in:
Peter Eisentraut
2023-01-03 14:21:40 +01:00
parent 33ab0a2a52
commit bf03cfd162
6 changed files with 1650 additions and 52 deletions

View File

@@ -185,6 +185,7 @@ sub installcheck
sub check
{
my $schedule = shift || 'parallel';
my $encoding = $ENV{ENCODING} || "SQL_ASCII";
# for backwards compatibility, "serial" runs the tests in
# parallel_schedule one by one.
my $maxconn = $maxconn;
@@ -199,7 +200,7 @@ sub check
"--bindir=",
"--schedule=${schedule}_schedule",
"--max-concurrent-tests=20",
"--encoding=SQL_ASCII",
"--encoding=${encoding}",
"--no-locale",
"--temp-instance=./tmp_check");
push(@args, $maxconn) if $maxconn;