I don't understand why the default collation on my psqlserver 11 instance returns a different result than using with explicit collation.
Details:
show LC_CTYPE; -- de-AT
show LC_COLLATE; -- de-AT
When I use the default collation I get an unexpected output:
demo=# SELECT unnest(array['a','B', 'A']) order by 1;
unnest
--------
A
B
a
(3 rows)
When I add the default collation explicitly, I get the expected output:
demo=# SELECT unnest(array['a','B', 'A']) collate "de-AT-x-icu" ORDER BY 1;
unnest
--------
a
A
B
(3 rows)
The collation de-AT-x-icu uses exactly the default values for LC_COLLATE and LC_COLTYPE shown above:
SELECT collname, collcollate, collctype
FROM pg_collation
where collname like '%de-AT%';
collname | collcollate | collctype
-------------+-------------+-----------
de-AT-x-icu | de-AT | de-AT
So I think both queries should return the same result: What am I missing?
More info:
- postgresql version
11.5 - OS inside the Docker container:
Linux 8660fb4cef84 4.9.184-linuxkit #1 SMP Tue Jul 2 22:58:16 UTC 2019 x86_64 Linux