> On Aug 16, 2017, at 4:55 PM, Richard Hipp <[email protected]> wrote:
>
> Remember: COLLATE binds more tightly than ==. So
>
> 'xyz' = 'XYZ' COLLATE nocase
>
> gets parsed out as
>
> 'xyz' = ('XYZ' COLLATE nocase)
>
> And that expression has a different meaning from your
>
> ('xyz' = 'XYZ') COLLATE nocase
Oh, so collation is actually an attribute of a string value, that gets applied
during comparisons involving that value? That’s very different from my mental
model!
In that case, what is the meaning of
('foo' COLLATE binary) = ('FOO' COLLATE nocase)
i.e. which of the two competing collations does the = operator decide to use?
And is the collation attribute passed around with the string value, through
intervening expressions? I.e. is this expression true?
'FOO' = ifnull(null, 'foo' COLLATE nocase)
—Jens
_______________________________________________
sqlite-users mailing list
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users