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] Commented: (ODATA-166) Inconsistent lifted operators for $filter


    [ http://tools.oasis-open.org/issues/browse/ODATA-166?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=31972#action_31972 ] 

Matthew Borges commented on ODATA-166:
--------------------------------------

If "eq null" is really an operator then I think we need to be explicit about that in the documentation.

My original description wasn't clear with regard to the null literal and null value.  To clarify, I was overloading "null" to mean both a null literal and a null value.

The issue I was trying to bring up was the inconsistent use of 2-value and 3-value logic (with respect to operators whose outcome is a boolean value).  The last comment implies the result of comparison operators is always true or false.  To be consistent, the results of boolean operators should also be true or false.  Then I still think that "not <nullvalue>" should be true for consistency:

E.g. Let's say b1 is a boolean property with a null value.  If "b1 and b1" is false then "not ( b1 and b1 )" should be true, which implies "not b1" should be true.

This is different than a database but a database uses 3-value logic.  So taking the above example  "b1 and b1" is null and "not ( b1 and b1 )" is null so the result is consistent.

> 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 v1.0
>    Affects Versions: WD01
>         Environment: [Proposed]
>            Reporter: Matthew Borges
>            Priority: Minor
>             Fix For: 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]