On 11/18/2013 05:54 PM, Istvan Chung wrote:
If a value of None is placed in column Bar of table foo, the SQL
expression
SELECT * FROM foo WHERE foo.Bar={[None]}
will fail to find any rows. This appears to be a consequence of the
fact that in SQL, [NULL=NULL] is false, and the implementation detail
that None is represented with NULL in databases. A workaround is to
use [IS NULL] instead, but it seems to me that this should be fixed in
Ur/Web.
I wouldn't say it's an "implementation detail" that [None] maps to
'NULL'; it's part of the semantics of the Ur/Web SQL interface. For
better or worse, this interface is designed to expose SQL and its
semantics directly to the Ur/Web programmer.
For the particular code you wrote, I suggest going with [IS NULL] like
you mentioned. For more complex comparisons, consider the [eqNullable]
and [eqNullable'] functions from the standard library, whose types
you'll find in lib/ur/top.urs.
_______________________________________________
Ur mailing list
[email protected]
http://www.impredicative.com/cgi-bin/mailman/listinfo/ur