debugsqlMinor
Default collation not working?
Viewed 0 times
defaultnotworkingcollation
Problem
I don't understand why the default collation on my psqlserver 11 instance returns a different result than using with explicit collation.
Details:
When I use the default collation I get an unexpected output:
When I add the default collation explicitly, I get the expected output:
The collation
So I think both queries should return the same result: What am I missing?
More info:
Details:
show LC_CTYPE; -- de-AT
show LC_COLLATE; -- de-ATWhen 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-ATSo 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 LinuxSolution
Let me guess: you are using Alpine Linux, which uses
It is known that the collations in Alpine Linux don't work quite as they should, which is the cause of the problem. I am not sure if that is PostgreSQL's fault or not.
At any rate, you should use a different Linux distribution that uses
musl as its C library, which uses ICU collations by default.It is known that the collations in Alpine Linux don't work quite as they should, which is the cause of the problem. I am not sure if that is PostgreSQL's fault or not.
At any rate, you should use a different Linux distribution that uses
glibc.Context
StackExchange Database Administrators Q#252482, answer score: 2
Revisions (0)
No revisions yet.