Alexey Pechnikov wrote:
> Hello!
> 
> On Thursday 25 February 2010 02:53:32 Igor Tandetnik wrote:
>> http://www.sqlite.org/datatype3.html
>> For conversions between TEXT and REAL storage classes, SQLite considers the 
>> conversion to be lossless and reversible if the first 15 significant decimal 
>> digits of the number are preserved.
> 
> The SQLite datatyping is very different from other RDBMS:
> 
> sqlite> select 1='1';
> 0
> 
> Postgres:
> template1=# select 1='1';
>  ?column? 
> ----------
>  t
> 
> And there are a lot of problem as result, see some tests here:
> http://sqlite.mobigroup.ru/src/wiki?name=tclsqlite
> 
> I don't know how to fix it in the SQLite core. My patch for 
> the tclslite interface can't resolve the internal problem...

It would seem to me that asking [1='1'] *should* return false because the 
numeric and character string value domains are logically disjoint, so no value 
from one could ever equal a value from another, and so SQLite's answer is 
correct.

As for your Postgres, what version of Postgres are you using?  AFAIK, since at 
least Postgres 8.3, Postgres became stricter and stopped doing implicit casting 
between disjoint data types, which would be required for [1='1'] to be true.

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

Reply via email to