Skip to content

Commit cff4e5a

Browse files
committed
Skip citext_utf8 test on Windows.
On other Windows build farm animals it is already skipped because they don't use UTF-8 encoding. On "hamerkop", UTF-8 is used, and then the test fails. It is not clear to me (a non-Windows person looking only at buildfarm evidence) whether Windows is less sophisticated than other OSes and doesn't know how to downcase Turkish İ with the standard Unicode database, or if it is more sophisticated than other systems and uses locale-specific behavior like ICU does. Whichever the reason, the result is the same: we need to skip the test on Windows, just as we already do for ICU, at least until a Windows-savvy developer comes up with a better idea. The technique for detecting the OS is borrowed from collate.windows.win1252.sql. This was anticipated by commit c2e8bd2, but the problem only surfaced when Windows build farm animals started using Meson. Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://postgr.es/m/CA%2BhUKGJ1LeC3aE2qQYTK95rFVON3ZVoTQpTKJqxkHdtEyawH4A%40mail.gmail.com
1 parent 267d41d commit cff4e5a

File tree

3 files changed

+9
-0
lines changed

3 files changed

+9
-0
lines changed

contrib/citext/expected/citext_utf8.out

+3
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@
66
* Turkish dotted I is not correct for many ICU locales. citext always
77
* uses the default collation, so it's not easy to restrict the test
88
* to the "tr-TR-x-icu" collation where it will succeed.
9+
*
10+
* Also disable for Windows. It fails similarly, at least in some locales.
911
*/
1012
SELECT getdatabaseencoding() <> 'UTF8' OR
13+
version() ~ '(Visual C\+\+|mingw32|windows)' OR
1114
(SELECT (datlocprovider = 'c' AND datctype = 'C') OR datlocprovider = 'i'
1215
FROM pg_database
1316
WHERE datname=current_database())

contrib/citext/expected/citext_utf8_1.out

+3
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@
66
* Turkish dotted I is not correct for many ICU locales. citext always
77
* uses the default collation, so it's not easy to restrict the test
88
* to the "tr-TR-x-icu" collation where it will succeed.
9+
*
10+
* Also disable for Windows. It fails similarly, at least in some locales.
911
*/
1012
SELECT getdatabaseencoding() <> 'UTF8' OR
13+
version() ~ '(Visual C\+\+|mingw32|windows)' OR
1114
(SELECT (datlocprovider = 'c' AND datctype = 'C') OR datlocprovider = 'i'
1215
FROM pg_database
1316
WHERE datname=current_database())

contrib/citext/sql/citext_utf8.sql

+3
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,12 @@
66
* Turkish dotted I is not correct for many ICU locales. citext always
77
* uses the default collation, so it's not easy to restrict the test
88
* to the "tr-TR-x-icu" collation where it will succeed.
9+
*
10+
* Also disable for Windows. It fails similarly, at least in some locales.
911
*/
1012

1113
SELECT getdatabaseencoding() <> 'UTF8' OR
14+
version() ~ '(Visual C\+\+|mingw32|windows)' OR
1215
(SELECT (datlocprovider = 'c' AND datctype = 'C') OR datlocprovider = 'i'
1316
FROM pg_database
1417
WHERE datname=current_database())

0 commit comments

Comments
 (0)