Hello all,

while packaging 9.1 beta1, I noticed that the "collate" test case now
fails (see attached regression.diffs). It seems to work when I run
this under LANG= LANGUAGE= (i. e. in C locale), but it fails under
both en_US.UTF-8 and de_DE.UTF-8.

Is this just a bug/quirk/expectation of the test suite, i. e. should I
always run the tests under the C locale? Or does it actually point
towards an unexpected behaviour?

Thanks,

Martin
-- 
Martin Pitt                        | http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)
*** 
/home/martin/debian/psql/9.1/postgresql-9.1beta1/src/test/regress/expected/collate.out
      2011-04-27 23:17:22.000000000 +0200
--- 
/home/martin/debian/psql/9.1/postgresql-9.1beta1/src/test/regress/results/collate.out
       2011-05-10 14:32:53.116257734 +0200
***************
*** 49,70 ****
   a |  b  
  ---+-----
   1 | abc
   3 | bbc
! (2 rows)
  
  SELECT * FROM collate_test1 WHERE b >= 'abc' COLLATE "C";
   a |  b  
  ---+-----
   1 | abc
   3 | bbc
! (2 rows)
  
  SELECT * FROM collate_test1 WHERE b COLLATE "C" >= 'abc' COLLATE "C";
   a |  b  
  ---+-----
   1 | abc
   3 | bbc
! (2 rows)
  
  SELECT * FROM collate_test1 WHERE b COLLATE "C" >= 'bbc' COLLATE "POSIX"; -- 
fail
  ERROR:  collation mismatch between explicit collations "C" and "POSIX"
--- 49,76 ----
   a |  b  
  ---+-----
   1 | abc
+  2 | Abc
   3 | bbc
!  4 | ABD
! (4 rows)
  
  SELECT * FROM collate_test1 WHERE b >= 'abc' COLLATE "C";
   a |  b  
  ---+-----
   1 | abc
+  2 | Abc
   3 | bbc
!  4 | ABD
! (4 rows)
  
  SELECT * FROM collate_test1 WHERE b COLLATE "C" >= 'abc' COLLATE "C";
   a |  b  
  ---+-----
   1 | abc
+  2 | Abc
   3 | bbc
!  4 | ABD
! (4 rows)
  
  SELECT * FROM collate_test1 WHERE b COLLATE "C" >= 'bbc' COLLATE "POSIX"; -- 
fail
  ERROR:  collation mismatch between explicit collations "C" and "POSIX"
***************
*** 95,112 ****
  SELECT a, b FROM collate_test5 ORDER BY b;
   a |  b  
  ---+-----
-  4 | ABD
-  2 | Abc
   1 | abc
   3 | bbc
  (4 rows)
  
  SELECT a, b FROM collate_test1 ORDER BY b;
   a |  b  
  ---+-----
-  4 | ABD
-  2 | Abc
   1 | abc
   3 | bbc
  (4 rows)
  
--- 101,118 ----
  SELECT a, b FROM collate_test5 ORDER BY b;
   a |  b  
  ---+-----
   1 | abc
+  2 | Abc
+  4 | ABD
   3 | bbc
  (4 rows)
  
  SELECT a, b FROM collate_test1 ORDER BY b;
   a |  b  
  ---+-----
   1 | abc
+  2 | Abc
+  4 | ABD
   3 | bbc
  (4 rows)
  
***************
*** 122,130 ****
  SELECT a, b FROM collate_test1 ORDER BY b COLLATE "C";
   a |  b  
  ---+-----
-  4 | ABD
-  2 | Abc
   1 | abc
   3 | bbc
  (4 rows)
  
--- 128,136 ----
  SELECT a, b FROM collate_test1 ORDER BY b COLLATE "C";
   a |  b  
  ---+-----
   1 | abc
+  2 | Abc
+  4 | ABD
   3 | bbc
  (4 rows)
  
***************
*** 132,140 ****
  SELECT * FROM collate_test1 ORDER BY b;
   a |  b  
  ---+-----
-  4 | ABD
-  2 | Abc
   1 | abc
   3 | bbc
  (4 rows)
  
--- 138,146 ----
  SELECT * FROM collate_test1 ORDER BY b;
   a |  b  
  ---+-----
   1 | abc
+  2 | Abc
+  4 | ABD
   3 | bbc
  (4 rows)
  
***************
*** 205,213 ****
  SELECT a, coalesce(b, 'foo') FROM collate_test1 ORDER BY 2;
   a | coalesce 
  ---+----------
-  4 | ABD
-  2 | Abc
   1 | abc
   3 | bbc
  (4 rows)
  
--- 211,219 ----
  SELECT a, coalesce(b, 'foo') FROM collate_test1 ORDER BY 2;
   a | coalesce 
  ---+----------
   1 | abc
+  2 | Abc
+  4 | ABD
   3 | bbc
  (4 rows)
  
***************
*** 230,239 ****
  SELECT a, b, greatest(b, 'CCC') FROM collate_test1 ORDER BY 3;
   a |  b  | greatest 
  ---+-----+----------
   2 | Abc | CCC
   4 | ABD | CCC
-  1 | abc | abc
-  3 | bbc | bbc
  (4 rows)
  
  SELECT a, b, greatest(b, 'CCC') FROM collate_test2 ORDER BY 3;
--- 236,245 ----
  SELECT a, b, greatest(b, 'CCC') FROM collate_test1 ORDER BY 3;
   a |  b  | greatest 
  ---+-----+----------
+  1 | abc | CCC
   2 | Abc | CCC
+  3 | bbc | CCC
   4 | ABD | CCC
  (4 rows)
  
  SELECT a, b, greatest(b, 'CCC') FROM collate_test2 ORDER BY 3;
***************
*** 249,262 ****
   a |  x  |  y  | lower | lower 
  ---+-----+-----+-------+-------
   1 | hij | hij | hij   | hij
!  2 | HIJ | HIJ | foo   | foo
  (2 rows)
  
  SELECT a, nullif(b, 'abc') FROM collate_test1 ORDER BY 2;
   a | nullif 
  ---+--------
-  4 | ABD
   2 | Abc
   3 | bbc
   1 | 
  (4 rows)
--- 255,268 ----
   a |  x  |  y  | lower | lower 
  ---+-----+-----+-------+-------
   1 | hij | hij | hij   | hij
!  2 | HIJ | HIJ | hij   | foo
  (2 rows)
  
  SELECT a, nullif(b, 'abc') FROM collate_test1 ORDER BY 2;
   a | nullif 
  ---+--------
   2 | Abc
+  4 | ABD
   3 | bbc
   1 | 
  (4 rows)
***************
*** 280,288 ****
  SELECT a, CASE b WHEN 'abc' THEN 'abcd' ELSE b END FROM collate_test1 ORDER 
BY 2;
   a |  b   
  ---+------
-  4 | ABD
   2 | Abc
   1 | abcd
   3 | bbc
  (4 rows)
  
--- 286,294 ----
  SELECT a, CASE b WHEN 'abc' THEN 'abcd' ELSE b END FROM collate_test1 ORDER 
BY 2;
   a |  b   
  ---+------
   2 | Abc
   1 | abcd
+  4 | ABD
   3 | bbc
  (4 rows)
  
***************
*** 299,307 ****
  SELECT a, b::testdomain FROM collate_test1 ORDER BY 2;
   a |  b  
  ---+-----
-  4 | ABD
-  2 | Abc
   1 | abc
   3 | bbc
  (4 rows)
  
--- 305,313 ----
  SELECT a, b::testdomain FROM collate_test1 ORDER BY 2;
   a |  b  
  ---+-----
   1 | abc
+  2 | Abc
+  4 | ABD
   3 | bbc
  (4 rows)
  
***************
*** 333,339 ****
  SELECT min(b), max(b) FROM collate_test1;
   min | max 
  -----+-----
!  ABD | bbc
  (1 row)
  
  SELECT min(b), max(b) FROM collate_test2;
--- 339,345 ----
  SELECT min(b), max(b) FROM collate_test1;
   min | max 
  -----+-----
!  abc | bbc
  (1 row)
  
  SELECT min(b), max(b) FROM collate_test2;
***************
*** 345,351 ****
  SELECT array_agg(b ORDER BY b) FROM collate_test1;
       array_agg     
  -------------------
!  {ABD,Abc,abc,bbc}
  (1 row)
  
  SELECT array_agg(b ORDER BY b) FROM collate_test2;
--- 351,357 ----
  SELECT array_agg(b ORDER BY b) FROM collate_test1;
       array_agg     
  -------------------
!  {abc,Abc,ABD,bbc}
  (1 row)
  
  SELECT array_agg(b ORDER BY b) FROM collate_test2;
***************
*** 357,368 ****
  SELECT a, b FROM collate_test1 UNION ALL SELECT a, b FROM collate_test1 ORDER 
BY 2;
   a |  b  
  ---+-----
-  4 | ABD
-  4 | ABD
-  2 | Abc
-  2 | Abc
   1 | abc
   1 | abc
   3 | bbc
   3 | bbc
  (8 rows)
--- 363,374 ----
  SELECT a, b FROM collate_test1 UNION ALL SELECT a, b FROM collate_test1 ORDER 
BY 2;
   a |  b  
  ---+-----
   1 | abc
   1 | abc
+  2 | Abc
+  2 | Abc
+  4 | ABD
+  4 | ABD
   3 | bbc
   3 | bbc
  (8 rows)
***************
*** 415,423 ****
  SELECT a, b COLLATE "C" FROM collate_test1 UNION SELECT a, b FROM 
collate_test2 ORDER BY 2; -- ok
   a |  b  
  ---+-----
-  4 | ABD
-  2 | Abc
   1 | abc
   3 | bbc
  (4 rows)
  
--- 421,429 ----
  SELECT a, b COLLATE "C" FROM collate_test1 UNION SELECT a, b FROM 
collate_test2 ORDER BY 2; -- ok
   a |  b  
  ---+-----
   1 | abc
+  2 | Abc
+  4 | ABD
   3 | bbc
  (4 rows)
  
***************
*** 464,470 ****
    (VALUES ('a', 'B'), ('A', 'b' COLLATE "C")) v(a,b);
   a | b | lt 
  ---+---+----
!  a | B | f
   A | b | t
  (2 rows)
  
--- 470,476 ----
    (VALUES ('a', 'B'), ('A', 'b' COLLATE "C")) v(a,b);
   a | b | lt 
  ---+---+----
!  a | B | t
   A | b | t
  (2 rows)
  
***************
*** 476,484 ****
  SELECT a, CAST(b AS varchar) FROM collate_test1 ORDER BY 2;
   a |  b  
  ---+-----
-  4 | ABD
-  2 | Abc
   1 | abc
   3 | bbc
  (4 rows)
  
--- 482,490 ----
  SELECT a, CAST(b AS varchar) FROM collate_test1 ORDER BY 2;
   a |  b  
  ---+-----
   1 | abc
+  2 | Abc
+  4 | ABD
   3 | bbc
  (4 rows)
  
***************
*** 495,503 ****
  SELECT * FROM unnest((SELECT array_agg(b ORDER BY b) FROM collate_test1)) 
ORDER BY 1;
   unnest 
  --------
-  ABD
-  Abc
   abc
   bbc
  (4 rows)
  
--- 501,509 ----
  SELECT * FROM unnest((SELECT array_agg(b ORDER BY b) FROM collate_test1)) 
ORDER BY 1;
   unnest 
  --------
   abc
+  Abc
+  ABD
   bbc
  (4 rows)
  
***************
*** 515,523 ****
  SELECT a, dup(b) FROM collate_test1 ORDER BY 2;
   a | dup 
  ---+-----
-  4 | ABD
-  2 | Abc
   1 | abc
   3 | bbc
  (4 rows)
  
--- 521,529 ----
  SELECT a, dup(b) FROM collate_test1 ORDER BY 2;
   a | dup 
  ---+-----
   1 | abc
+  2 | Abc
+  4 | ABD
   3 | bbc
  (4 rows)
  

======================================================================

Attachment: signature.asc
Description: Digital signature

Reply via email to