Skip citext_utf8 test on Windows.
authorThomas Munro
Sun, 12 May 2024 19:55:20 +0000 (07:55 +1200)
committerThomas Munro
Thu, 1 Aug 2024 22:13:16 +0000 (10:13 +1200)
Back-patch of commit cff4e5a3 to 15 and 16, per request from Oleg
Tselebrovskiy.  Original commit message:

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 c2e8bd27, but the problem only surfaced
when Windows build farm animals started using Meson.

Reviewed-by: Tom Lane
Discussion: https://postgr.es/m/CA%2BhUKGJ1LeC3aE2qQYTK95rFVON3ZVoTQpTKJqxkHdtEyawH4A%40mail.gmail.com

contrib/citext/expected/citext_utf8.out
contrib/citext/expected/citext_utf8_1.out
contrib/citext/sql/citext_utf8.sql

index 666b07ccec4626a36210cef4d8f707d101b04fbd..3159f238dd32a33cb106ca5d268b4466310d63df 100644 (file)
@@ -3,6 +3,7 @@
  * and a Unicode-aware locale.
  */
 SELECT getdatabaseencoding() <> 'UTF8' OR
+       version() ~ '(Visual C\+\+|mingw32|windows)' OR
        current_setting('lc_ctype') = 'C'
        AS skip_test \gset
 \if :skip_test
index 433e9853497626e5a89a225af114ca84de07e863..d47836b2286732614e7978bb8070841c21dc8d8a 100644 (file)
@@ -3,6 +3,7 @@
  * and a Unicode-aware locale.
  */
 SELECT getdatabaseencoding() <> 'UTF8' OR
+       version() ~ '(Visual C\+\+|mingw32|windows)' OR
        current_setting('lc_ctype') = 'C'
        AS skip_test \gset
 \if :skip_test
index d068000b423672e53dde492acb8936e1435518d3..fc5da4e8beb483b84c128a2bb76b45e6237e091b 100644 (file)
@@ -4,6 +4,7 @@
  */
 
 SELECT getdatabaseencoding() <> 'UTF8' OR
+       version() ~ '(Visual C\+\+|mingw32|windows)' OR
        current_setting('lc_ctype') = 'C'
        AS skip_test \gset
 \if :skip_test