Re: EBCDIC sorting as a use case for ICU rules
Jonathan S. Katz <jkatz@postgresql.org>
From: "Jonathan S. Katz" <jkatz@postgresql.org>
To: Jeff Davis <pgsql@j-davis.com>, Daniel Verite <daniel@manitou-mail.org>,
pgsql-hackers@postgresql.org
Cc: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Date: 2023-06-21T17:13:01Z
Lists: pgsql-hackers
On 6/21/23 12:14 PM, Jeff Davis wrote: > On Wed, 2023-06-21 at 15:28 +0200, Daniel Verite wrote: >> At a conference this week I was asked if ICU could be able to >> sort like EBCDIC [2]. It turns out it has been already asked on >> -general a few years ago [3] with no satisfactory answer at the time >> , >> and that it can be implemented with rules in v16. > > Interesting, thank you! +1 -- this is very helpful framing the problem, thank you! >> This can be useful for people who migrate from mainframes to Postgres >> and need their migration tests to produce the same sorted results as >> the >> original system. >> Since rules can be defined at the database level with the icu_rules >> option, >> they don't even need to tweak their queries to add COLLATE clauses, >> which surely is appreciable in that kind of project. > > I still had some technical concerns about the ICU rules feature, > unfortunately, and one option is to only allow it for the collation > objects and not the database level collation. How much would that hurt > this use case? > > >> I'm open to suggestions on whether this EBCDIC example is worth being >> in the >> doc in some form or putting this in the wiki would be good enough. > > I like the idea of having a real example. Ideally, we could add some > explanation along the way about how the rule is constructed to match > EBCDIC, which would reduce the shock of a long rule like that. > > I wonder why the rule syntax is such that it cannot be broken up? Would > it be incorrect for us to allow some whitespace in there? I'll give the unhelpful comment of "yes, I agree we should have a real world example", especially one that seems relevant to helping more people adopt PostgreSQL.
Commits
-
doc: Add more ICU rules examples
- 103df207a71e 16.0 landed
- 17ec2c5dfa8d 17.0 landed