Hi Simon,

> But you were using a SQL command to make the match.

Well, I was using it to demonstrate some behavior I observed, yes. I
was not "matching values with NULL". But whatever.

> You executed a SELECT command and got an answer from SQL.  That answer does 
> not mean
> "The result of the calculation '1.0 / 0.0' is the value NULL."

That's a bit of a philosophical point. In the context of SQLite, the
expression 1.0 / 0.0 evaluates to something that is representable,
namely NULL, that much is clear. Whether NULL is to be considered a
value is up for debate. It is a bit weird to be able to represent
"that what cannot be represented", so I'd take the IMHO simpler
interpretation of just accepting NULL as a value of any non NOT NULL
domain.

> because you asked SQL, not a maths library.  In this case, it's unknown.  
> Because SQLite doesn't know how to do that calculation.

Accepting that, my question becomes: why does SQLite elect to not know
what to do? The handling of NaN results is special cased in the code
(see http://www.sqlite.org/cvstrac/chngview?cn=5066). Why not just
accept the existence of NaN as a valid floating point value? Postgres,
Mysql, and (from a quick google) Oracle and DB2 do this. SQLite is
really the odd one out, here.

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

Reply via email to