I would not either. We can agree to agree. But clarity requires this. It is 
like "the" in English. 

________________________________________
From: sqlite-users-boun...@sqlite.org [sqlite-users-boun...@sqlite.org] on 
behalf of Igor Tandetnik [i...@tandetnik.org]
Sent: Thursday, August 22, 2013 9:37 PM
To: sqlite-users@sqlite.org
Subject: Re: [sqlite] BETWEEN and explicit collation assignment

On 8/22/2013 9:01 PM, Roman Fleysher wrote:
>> create table t(x text collate nocase);
>> insert into t values ('A');
>> select count(*) from t where x = 'a';
>
>> In your opinion, what result should this select statement produce? 1, as
>> it does now? 0, as Simon's approach seems to imply? Something else?
>
> Since logically it is the operation that needs a modifier, then it should be 
> supplied and not derived from the operands. If I put aside backward 
> compatibility and take position of purity and clarity to the extreme (because 
> taking extreme positions clarifies thinking), then this should fail since no 
> rule to compare is fully specified. The "=" must be accompanied by a 
> modifier. Once the modifier is supplied, comparison can proceed and index can 
> be identified.
>
> Thus, I would use lengthy version for clarity:
>
> create table t(x text)
> create index t(x collate nocase)
> create index t(x collate someothercase)
> insert into t values ('A');
> select count(*) from t where x = 'a' nocase;

Well, I personally would not want to use a DBMS that requires me to do
that for every single comparison operator in every single query I use. I
suppose we would have to agree to disagree here.
--
Igor Tandetnik

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to