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=31971#action_31971 ] 

Michael Pizzo commented on ODATA-166:
-------------------------------------

I think we should differentiate between null values and the null literal that we use to evaluate null.

The null literal isn't really a value, it is ONLY used in an expression to see if a value is null. "eq null" is really an operator, equivalent to "is null" in ansi sql. It's nice to think of it as an operand in that you don't need a separate "is" operator, and you can put it on either side of the eq operator, but it is not a value.
-The null literal cannot be used in relational operators (gt, ge, lt, le). (i.e., Name ge null is invalid)
-The null literal cannot be used as a Boolean value (i.e., null and true is invalid)
-Null values can be compared to the null literal; <nullvalue> eq null is true for all null values, false for all non-null values.
-Null values compared to any value other than the null literal is false.

This definition makes it easy to understand null treatment and express null comparisons in a request without having to define rules for handling meaningless cases.

> 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]