Re: Crash report for some ICU-52 (debian8) COLLATE and work_mem values
Peter Geoghegan <pg@bowt.ie>
From: Peter Geoghegan <pg@bowt.ie>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Robert Haas <robertmhaas@gmail.com>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>,
Daniel Verite <daniel@manitou-mail.org>, PostgreSQL mailing lists <pgsql-bugs@postgresql.org>
Date: 2017-08-09T19:31:44Z
Lists: pgsql-bugs, pgsql-hackers
On Wed, Aug 9, 2017 at 11:46 AM, Peter Geoghegan <pg@bowt.ie> wrote: > The base locale names, which include regional variants like Austrian > German, are as stable as possible. pg_import_system_collations() > should just add those. I just noticed that ICU collations within pg_collation do not include entries for each of the many regional variants of English, such as English from Ireland, Britain, the Cook Islands, etc. OTOH, glibc does have all these variants listed within pg_collation, at least on my system. This is because we don't actually add one pg_collation entry per ICU locale. Rather, we add one entry per distinct ICU collation, via ucol_countAvailable() + ucol_getAvailable(). Maybe Austrian German actually is sorted in a slightly different way to German German, and so gets its own pg_collation entry? I guess this is fine, because English is in practice sorted in exactly the same way throughout all English locales (except for a few true variants, like "English (United States, Computer)"). These unlisted locales do have different currency symbols and so on, but that's not something we'll use ICU for, so it's fine. This difference will need to be documented, though. It would help if CREATE COLLATION left new ICU collations with the same useful "Description" as initdb created collations will have; maybe that should be added. -- Peter Geoghegan
Commits
-
Reject use of ucol_strcollUTF8() before ICU 53
- d6391b03b302 10.0 landed
-
Rethink behavior of pg_import_system_collations().
- 0b13b2a7712b 10.0 cited
-
Faster expression evaluation and targetlist projection.
- b8d7f053c5c2 10.0 cited