On 9/19/17 22:01, Peter Geoghegan wrote: > On Tue, Sep 19, 2017 at 5:52 PM, Peter Eisentraut > <peter.eisentr...@2ndquadrant.com> wrote: >> On 9/18/17 18:46, Peter Geoghegan wrote: >>> As I pointed out a couple of times already [1], we don't currently >>> sanitize ICU's BCP 47 language tags within CREATE COLLATION. >> >> There is no requirement that the locale strings for ICU need to be BCP >> 47. ICU locale names like 'de@collation=phonebook' are also acceptable. > > Right. But, we only document that BCP 47 is supported by Postgres.
The documentation is admittedly not very concrete about what ICU locale names it accepts beyond talking about a "named collator provided by the ICU library". The examples we provide use the BCP 47 style, but that's just because we liked them that way. ICU <54 doesn't even support the BCP 47 style, so we need to keep supporting the old/other style anyway. > And, I think that I > see a bigger problem: we pass a string that is almost certainly a BCP > 47 string to ucol_open() from within pg_newlocale_from_collation(). We > do so despite the fact that ucol_open() apparently doesn't accept BCP > 47 syntax locale strings until ICU 54 [1]. pg_import_system_collations() takes care to use the non-BCP-47 style for such versions, so I think this is working correctly. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers