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