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)
======================================================================
signature.asc
Description: Digital signature
