[ 
https://issues.apache.org/jira/browse/TINKERPOP-3173?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18017113#comment-18017113
 ] 

ASF GitHub Bot commented on TINKERPOP-3173:
-------------------------------------------

Cole-Greer opened a new pull request, #3195:
URL: https://github.com/apache/tinkerpop/pull/3195

   https://issues.apache.org/jira/browse/TINKERPOP-3173
   
   Replaces the old system of ternary boolean semantics with simple binary 
semantics. The triggers for "ERROR" states from illegal comparisons are 
unchanged (typically comparisons with NaN or between incomparable types such as 
String and int). The difference now is that instead of the ERROR being 
propagated according to ternary logic semantics until a reduction point is 
reached, the error now immediately returns a value of FALSE.
   
   This will be most visible in expressions which include negations. Prior to 
this change, `g.inject(NaN).not(is(1))` would produce no results as !(NaN == 1) 
-> !(ERROR) -> ERROR -> traverser is filtered out. After this change, the same 
traversal will return NaN as the same expression now evaluates as !(NaN == 1) 
-> !(FALSE) -> TRUE -> traverser is not filtered.
   
   This commit also introduces NotP to model a negated P, as the old method of 
getting the complement of the PBiPredicate may handle edge cases incorrectly:
   
   !(1 < NaN) != (1 >= NaN) -> !(FALSE) != (FALSE)




> Simplify Comparability Semantics
> --------------------------------
>
>                 Key: TINKERPOP-3173
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-3173
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: process
>    Affects Versions: 3.7.3
>            Reporter: Cole Greer
>            Priority: Major
>
> As recently discussed on the 
> [devlist|https://lists.apache.org/thread/hsqw2tvc72dw4z40nnbbdmygrqx43syr], 
> our current system of ternary boolean logic should be simplified to binary 
> boolean logic where invalid comparisons simply return false.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to