Null semantics
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Storm |
New
|
Undecided
|
Unassigned |
Bug Description
I couldn't find any documentation on null semantics in Storm. Is None equal to Null?
As far as I can make out from reading the code, you get a mix of Python semantics (None == None) and SQL semantics (NULL is not equal to NULL): when comparing values from Python, None == None holds. When comparing values from SQL, NULL == NULL does not hold. When comparing an SQL value to a Python one, NULL == None holds. What happens when doing that last comparison the other way, i.e. what does None == NULL do? A naïve look at the code suggests it behaves differently from None == NULL, but there may be some normalization that switches the comparands around.
I have no ideas as yet what you could do about this in the API, but at least it's worth documenting!