Re: insensitive collations

Peter Eisentraut <peter.eisentraut@2ndquadrant.com>

From: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
To: Daniel Verite <daniel@manitou-mail.org>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2019-01-06T01:06:40Z
Lists: pgsql-hackers
On 04/01/2019 17:05, Daniel Verite wrote:
> When using GROUP BY and ORDER BY on a field with a non-deterministic
> collation, this pops out:
> 
> CREATE COLLATION myfr (locale='fr-u-ks-level1',
>   provider='icu', deterministic=false);
> 
> =# select n from (values ('été' collate "myfr"), ('ete')) x(n)
>   group by 1 order by 1 ;
>   n  
> -----
>  ete
> (1 row)
> 
> =#  select n from (values ('été' collate "myfr"), ('ete')) x(n)
>   group by 1 order by 1 desc;
>   n  
> -----
>  été
> (1 row)

I don't see anything wrong here.  The collation says that both values
are equal, so which one is returned is implementation-dependent.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


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