Re: insensitive collations

Daniel Verite <daniel@manitou-mail.org>

From: "Daniel Verite" <daniel@manitou-mail.org>
To: "Peter Eisentraut" <peter.eisentraut@2ndquadrant.com>
Cc: "Peter Geoghegan" <pg@bowt.ie>,"pgsql-hackers" <pgsql-hackers@postgresql.org>
Date: 2019-03-05T17:48:59Z
Lists: pgsql-hackers
	Peter Eisentraut wrote:

> Older ICU versions (<54) don't support all the locale customization
> options, so many of my new tests in collate.icu.utf8.sql will fail on
> older systems.  What should we do about that?  Have another extra test file?

Maybe stick to the old-style syntax for the regression tests?
The declarations that won't work as expected with older ICU versions
would be:

CREATE COLLATION case_insensitive (provider = icu, locale =
'und-u-ks-level2', deterministic = false);

'und-u-ks-level2' is equivalent to 'und@colStrength=secondary'

CREATE COLLATION ignore_accents (provider = icu, locale =
'und-u-ks-level1-kc-true', deterministic = false);

'und-u-ks-level1-kc-true' => 'und@colStrength=primary;colCaseLevel=yes'


Best regards,
-- 
Daniel Vérité
PostgreSQL-powered mailer: http://www.manitou-mail.org
Twitter: @DanielVerite


Commits

  1. Collations with nondeterministic comparison

  2. Add support for collation attributes on older ICU versions

  3. Make type "name" collation-aware.

  4. Make collation-aware system catalog columns use "C" collation.

  5. Adjust string comparison so that only bitwise-equal strings are considered