OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

odata message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [OASIS Issue Tracker] Updated: (ODATA-166) Inconsistent lifted operators for $filter


     [ http://tools.oasis-open.org/issues/browse/ODATA-166?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ralf Handl updated ODATA-166:
-----------------------------

    Proposal: 
In the following rules null means either a null literal or a null value

null eq null is true
null ne null is false

notnull eq null is false
notnull ne null is true

null le null is true --> mathematically consistent with the preceding rules and how JavaScript and Python work, but differs from C# and SQL
null ge null is true --> mathematically consistent with the preceding rules and how JavaScript and Python work, but differs from C# and SQL
notnull le null is false
notnull ge null is false
null le notnull  is false
null ge notnull is false

null lt null is false
null gt null is false
notnull lt null is false
notnull gt null is false
null lt notnull  is false
null gt notnull is false


null in logical operators is treated as unknown, see Kleene logic:

null and null is null
null and false is false
null and true is null

null or null is null
null or true is true
null or false is null

not null is null


$filter only returns items where the expression evaluates to true and omits items where it evaluates to false or to null

  was:To be prepared by Matthew and Mike


> Inconsistent lifted operators for $filter
> -----------------------------------------
>
>                 Key: ODATA-166
>                 URL: http://tools.oasis-open.org/issues/browse/ODATA-166
>             Project: OASIS Open Data Protocol (OData) TC
>          Issue Type: Bug
>          Components: OData Protocol 
>    Affects Versions: V4.0_WD01
>            Reporter: Matthew Borges
>            Priority: Minor
>             Fix For: V4.0_WD01
>
>
> I didn't see any mention of lifted operators in the working drafts.  We should define how each operator behaves when one (or both) operands is null.
> With that said, the V3 spec (section 2.2.3.6.1.1.5) is inconsistent with it's treatment of null:
> - For equality operators, null eq null is true and null eq <anything not null> is false (i.e. the result is true or false)
> - Any relational operators when compared with null are false (i.e. the result is true or false)
>    - This implies that null ge null and null le null is false which is inconsistent with null eq null is true
> - Logical operators treat null as false (i.e. the result is true or false)
> - Unary operators are null if the operand is null (i.e. in the case of not, the result is true, false, or null)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://tools.oasis-open.org/issues/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]