diff options
| author | Jeff Davis <jdavis@postgresql.org> | 2023-03-09 10:52:41 -0800 |
|---|---|---|
| committer | Jeff Davis <jdavis@postgresql.org> | 2023-03-09 10:52:41 -0800 |
| commit | 27b62377b47f9e7bf58613608bc718c86ea91e91 (patch) | |
| tree | 80ada6d59fac3df61ff41801d5fd3c1faf469470 /contrib | |
| parent | a7e584a7d68a9a2bcc7efaf442262771f9044248 (diff) | |
Use ICU by default at initdb time.
If the ICU locale is not specified, initialize the default collator
and retrieve the locale name from that.
Discussion: https://postgr.es/m/510d284759f6e943ce15096167760b2edcb2e700.camel@j-davis.com
Reviewed-by: Peter Eisentraut
Diffstat (limited to 'contrib')
| -rw-r--r-- | contrib/citext/expected/citext_utf8.out | 9 | ||||
| -rw-r--r-- | contrib/citext/expected/citext_utf8_1.out | 9 | ||||
| -rw-r--r-- | contrib/citext/sql/citext_utf8.sql | 9 | ||||
| -rw-r--r-- | contrib/unaccent/expected/unaccent.out | 9 | ||||
| -rw-r--r-- | contrib/unaccent/expected/unaccent_1.out | 8 | ||||
| -rw-r--r-- | contrib/unaccent/sql/unaccent.sql | 11 |
6 files changed, 52 insertions, 3 deletions
diff --git a/contrib/citext/expected/citext_utf8.out b/contrib/citext/expected/citext_utf8.out index 666b07ccec4..77b4586d8fa 100644 --- a/contrib/citext/expected/citext_utf8.out +++ b/contrib/citext/expected/citext_utf8.out @@ -1,9 +1,16 @@ /* * This test must be run in a database with UTF-8 encoding * and a Unicode-aware locale. + * + * Also disable this file for ICU, because the test for the the + * Turkish dotted I is not correct for many ICU locales. citext always + * uses the default collation, so it's not easy to restrict the test + * to the "tr-TR-x-icu" collation where it will succeed. */ SELECT getdatabaseencoding() <> 'UTF8' OR - current_setting('lc_ctype') = 'C' + current_setting('lc_ctype') = 'C' OR + (SELECT datlocprovider='i' FROM pg_database + WHERE datname=current_database()) AS skip_test \gset \if :skip_test \quit diff --git a/contrib/citext/expected/citext_utf8_1.out b/contrib/citext/expected/citext_utf8_1.out index 433e9853497..d1e1fe1a9d8 100644 --- a/contrib/citext/expected/citext_utf8_1.out +++ b/contrib/citext/expected/citext_utf8_1.out @@ -1,9 +1,16 @@ /* * This test must be run in a database with UTF-8 encoding * and a Unicode-aware locale. + * + * Also disable this file for ICU, because the test for the the + * Turkish dotted I is not correct for many ICU locales. citext always + * uses the default collation, so it's not easy to restrict the test + * to the "tr-TR-x-icu" collation where it will succeed. */ SELECT getdatabaseencoding() <> 'UTF8' OR - current_setting('lc_ctype') = 'C' + current_setting('lc_ctype') = 'C' OR + (SELECT datlocprovider='i' FROM pg_database + WHERE datname=current_database()) AS skip_test \gset \if :skip_test \quit diff --git a/contrib/citext/sql/citext_utf8.sql b/contrib/citext/sql/citext_utf8.sql index d068000b423..8530c68dd7e 100644 --- a/contrib/citext/sql/citext_utf8.sql +++ b/contrib/citext/sql/citext_utf8.sql @@ -1,10 +1,17 @@ /* * This test must be run in a database with UTF-8 encoding * and a Unicode-aware locale. + * + * Also disable this file for ICU, because the test for the the + * Turkish dotted I is not correct for many ICU locales. citext always + * uses the default collation, so it's not easy to restrict the test + * to the "tr-TR-x-icu" collation where it will succeed. */ SELECT getdatabaseencoding() <> 'UTF8' OR - current_setting('lc_ctype') = 'C' + current_setting('lc_ctype') = 'C' OR + (SELECT datlocprovider='i' FROM pg_database + WHERE datname=current_database()) AS skip_test \gset \if :skip_test \quit diff --git a/contrib/unaccent/expected/unaccent.out b/contrib/unaccent/expected/unaccent.out index ee0ac71a1cc..cef98ee60cc 100644 --- a/contrib/unaccent/expected/unaccent.out +++ b/contrib/unaccent/expected/unaccent.out @@ -1,3 +1,12 @@ +-- unaccent is broken if the default collation is provided by ICU and +-- LC_CTYPE=C +SELECT current_setting('lc_ctype') = 'C' AND + (SELECT datlocprovider='i' FROM pg_database + WHERE datname=current_database()) + AS skip_test \gset +\if :skip_test +\quit +\endif CREATE EXTENSION unaccent; -- must have a UTF8 database SELECT getdatabaseencoding(); diff --git a/contrib/unaccent/expected/unaccent_1.out b/contrib/unaccent/expected/unaccent_1.out new file mode 100644 index 00000000000..0a4a3838abd --- /dev/null +++ b/contrib/unaccent/expected/unaccent_1.out @@ -0,0 +1,8 @@ +-- unaccent is broken if the default collation is provided by ICU and +-- LC_CTYPE=C +SELECT current_setting('lc_ctype') = 'C' AND + (SELECT datlocprovider='i' FROM pg_database + WHERE datname=current_database()) + AS skip_test \gset +\if :skip_test +\quit diff --git a/contrib/unaccent/sql/unaccent.sql b/contrib/unaccent/sql/unaccent.sql index 3fc0c706be3..027dfb964a7 100644 --- a/contrib/unaccent/sql/unaccent.sql +++ b/contrib/unaccent/sql/unaccent.sql @@ -1,3 +1,14 @@ + +-- unaccent is broken if the default collation is provided by ICU and +-- LC_CTYPE=C +SELECT current_setting('lc_ctype') = 'C' AND + (SELECT datlocprovider='i' FROM pg_database + WHERE datname=current_database()) + AS skip_test \gset +\if :skip_test +\quit +\endif + CREATE EXTENSION unaccent; -- must have a UTF8 database |
