That's kind of sad; my reading of the 'Collate UNICODE' stuff suggested
it was designed specifically to deal with this issue.

Is this a bug, or WAI?


On 25/02/2011 6:11 PM, Zsolt Vasvari wrote:
> If you want to do case insensirtive search you should perhaphs rewrite
> your statement as:
>
> select * from authors a where UPPER(a.family_name) = 'LE GUIN'
> Collate
> UNICODE
>
> That will be better, but it will work for only characters in the 0-255
> range.  I have the same issue in my app, with no workaround, for my
> Russian users where this doesn't work for Cyrillic text.
>
>
>
>
> On Feb 25, 9:55 am, Grunthos <[email protected]> wrote:
>> Hi,
>>
>> In SQLite under Android 2.1 and 2.2 I have been using 'Collate
>> UNICODE' to sort and compare values; for sorting it does what I expect
>> -- it is case-insensitive, and handles the expanded character set
>> well.
>>
>> But for comparisons, eg. f = 'something' where f is a text field, it
>> seems to NOT do case-blind comparions.
>>
>> Specifically:
>>
>> On table authors(..., family_name text,...);
>>
>> I searched for
>>
>>    select * from authors a where a.family_name = 'Le Guin' Collate
>> UNICODE
>>
>> and it returned 0 rows even though there was an entry with family_name
>> = 'le Guin'.
>>
>> Am I missing something here? Should I be wrapping both sides of the
>> '=' in a call to 'Upper()'. I thought that the UNICODE collator for
>> SQLite was case-insensitive.
>>
>> If I do wrap both sides in calls to 'Upper()', am I correct in
>> assuming indexes will not be used?

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to