Re: Add standard collation UNICODE

Vik Fearing <vik@postgresfriends.org>

From: Vik Fearing <vik@postgresfriends.org>
To: Peter Eisentraut <peter.eisentraut@enterprisedb.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-03-02T00:05:34Z
Lists: pgsql-hackers
On 3/1/23 11:09, Peter Eisentraut wrote:
> The SQL standard defines several standard collations.  Most of them are 
> only of legacy interest (IMO), but two are currently relevant: UNICODE 
> and UCS_BASIC.  UNICODE sorts by the default Unicode collation algorithm 
> specifications and UCS_BASIC sorts by codepoint.
> 
> When collation support was added to PostgreSQL, we added UCS_BASIC, 
> since that could easily be mapped to the C locale.  But there was no 
> straightforward way to provide the UNICODE collation.  (Recall that 
> collation support came several releases before ICU support.)
> 
> With ICU support, we can provide the UNICODE collation, since it's just 
> the root locale.  I suppose one hesitation was that ICU was not a 
> standard feature, so this would create variations in the default catalog 
> contents, or something like that.  But I think now that we are drifting 
> to make ICU more prominent, we can just add that anyway.  I think being 
> able to say
> 
>      COLLATE UNICODE
> 
> instead of
> 
>      COLLATE "und-x-icu"
> 
> or whatever it is, is pretty useful.
> 
> So, attached is a small patch to add this.

I don't feel competent to review the patch (simple as it is), but +1 on 
the principle.
-- 
Vik Fearing




Commits

  1. initdb: Set collversion for standard collation UNICODE

  2. Add standard collation UNICODE