From: | Alexander Korotkov <a(dot)korotkov(at)postgrespro(dot)ru> |
---|---|
To: | Markus Winand <markus(dot)winand(at)winand(dot)at> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: SQL/JSON path: collation for comparisons, minor typos in docs |
Date: | 2019-08-08 20:30:04 |
Message-ID: | CAPpHfdt7YiiydbgrfSp3RnDx8eMk7XB3g4XBKdpHM3JCiMH0kQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi, Markus!
On Thu, Aug 8, 2019 at 11:53 AM Markus Winand <markus(dot)winand(at)winand(dot)at> wrote:
> The patch makes my tests pass.
Cool.
> I wonder about a few things:
>
> - Isn’t there any code that could be re-used for that (the one triggered by ‘a’ < ‘A’ COLLATE ucs_basic)?
PostgreSQL supports ucs_basic, but it's alias to C collation and works
only for utf-8. Jsonpath code may work in different encodings. New
string comparison code can work in different encodings.
> - For object key members, the standard also refers to unicode code point collation (SQL-2:2016 4.46.3, last paragraph).
> - I guess it also applies to the “starts with” predicate, but I cannot find this explicitly stated in the standard.
For object keys we don't actually care about whether strings are less
or greater. We only search for equal keys. So, per-byte comparison
we currently use should be fine. The same states for "starts with"
predicate.
> My tests check whether those cases do case-sensitive comparisons. With my default collation "en_US.UTF-8” I cannot discover potential issues there. I haven’t played around with nondeterministic ICU collations yet :(
That's OK. There should be other beta testers around :)
------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company
From | Date | Subject | |
---|---|---|---|
Next Message | Ibrar Ahmed | 2019-08-08 21:12:04 | Re: Small const correctness patch |
Previous Message | Robert Haas | 2019-08-08 20:27:16 | Re: POC: Cleaning up orphaned files using undo logs |