You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We need to implement three-value logic for null, true and false consistent with Elasticsearch EQL and Elasticsearch SQL.
Some necessary changes
Any value can be compared to null
The only way to explicitly check for null is == null or != null (plus commutative versions)
Likely need an intermediate ast node to delineate these nulls from folded nulls
All other comparisons to null return null (< null, <= null, etc)
Dynamic nulls can not be compared. process_name == parent_process_name will be null even if both values are null. This is a change from the current implementation
Implement boolean logic similarly, while maintaining the short-circuiting properties: ... and false => false, and ... or true => true
Disable implicit boolean casting. We can keep a toggle to manually turn it back on
Functions with any null required inputs return null
Might be worthwhile to track functions that can return null, even when all parameters are the correct-type and non-null
And of course, update existing tests to be consistent
The text was updated successfully, but these errors were encountered:
Part of #15
We need to implement three-value logic for
null
,true
andfalse
consistent with Elasticsearch EQL and Elasticsearch SQL.Some necessary changes
== null
or!= null
(plus commutative versions)null
return null (< null
,<= null
, etc)process_name == parent_process_name
will be null even if both values are null. This is a change from the current implementation... and false
=> false, and... or true
=> trueAnd of course, update existing tests to be consistent
The text was updated successfully, but these errors were encountered: