From: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
---|---|
To: | Brian Ceccarelli <ceccareb(at)talussoftware(dot)com> |
Cc: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: BUG #4999: select 'a' < 'A' is true, but should be false . . . |
Date: | 2009-08-24 08:53:37 |
Message-ID: | 1251104017.10096.6.camel@vanquo.pezone.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
On tor, 2009-08-20 at 20:24 +0000, Brian Ceccarelli wrote:
> since the < and > comparison operators seem to be case insensitive:
>
> select 'a' < 'Z'; -- true
> select 'a' < 'z'; -- true
> select 'A' < 'Z'; -- true
> select 'A' < 'z'; -- true
>
> select 'z' < 'A'; -- false
> select 'z' < 'a'; -- false
> select 'Z' < 'A'; -- false
> select 'Z' < 'a'; -- false
>
> Any case A is < any case Z implies case-insensitive compare. Which would
> imply that 'a' = 'A', but 'a' < 'A' is true.
No, they are not "case insensitive". The way this works is with a
multipass comparison algorithm: First, the letters are compared
independent of case, then the case is compared. There is also an
additional pass for comparing accents, but I forget at the moment which
pass that is. Search for Unicode collation algorithm, if you are
interested.
From | Date | Subject | |
---|---|---|---|
Next Message | Sébastien Lardière | 2009-08-24 10:16:24 | Re: BUG #5004: pg_freespacemap make a SegFault |
Previous Message | Alvaro Herrera | 2009-08-24 00:57:01 | Re: BUG #5005: unique constraint considers nulls to be equal |