Jeremie Courreges-Anglas - Thu, 12 December 2019 at 11:35:51 > Can you actually use ICU as the default collation algorithm used by > a database?
it's not totally straightforward but yes, on the schema level it's possible to override collation: macos=# CREATE TABLE t (n text COLLATE "fr-FR-x-icu"); CREATE TABLE macos=# INSERT INTO t (values ('bernard'),('bérénice'),('béatrice'),('boris')); INSERT 0 4 macos=# SELECT * FROM t ORDER BY n; n ---------- béatrice bérénice bernard boris (4 rows) macos=# show lc_collate; lc_collate ------------ C (1 row) macos=# \d t Table "public.t" Column | Type | Collation | Nullable | Default --------+------+-------------+----------+--------- n | text | fr-FR-x-icu | | however `CREATE DATABASE` and `initdb` does not support this. it's WIP: https://www.postgresql-archive.org/ICU-for-global-collation-td6099973.html it is far from ideal but at least having the option to override the collation on both schema and/or individual query level means a working sorting. this is a good article when ICU was introduced: https://www.2ndquadrant.com/en/blog/icu-support-postgresql-10/ (...i wonder what's the actual situation with mariadb...) -f -- tower: "say position." pilot: "position."