[ https://issues.apache.org/jira/browse/TINKERPOP-2605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17409649#comment-17409649 ]
ASF GitHub Bot commented on TINKERPOP-2605: ------------------------------------------- spmallette opened a new pull request #1471: URL: https://github.com/apache/tinkerpop/pull/1471 https://issues.apache.org/jira/browse/TINKERPOP-2605 The JIRA outlines the steps that fail when `null` is encountered in some way. There are still further cases where things aren't working properly but this PR is getting large enough. It may be sufficient to review this PR just be looking at the gherkin tests that establish the semantics, but feel free to dig into the code if desired. Here' a sample of things working now that weren't before: ```text gremlin> g.V().hasLabel(null) gremlin> g.V().has('name',within('josh',null)) ==>v[4] gremlin> g.V().has('name',within(null)) gremlin> g.V().values('age').inject(null).sum() ==>123 gremlin> g.inject(null,null,null).sum() ==>null gremlin> g.V().values('age').inject(null).min() ==>27 gremlin> g.V().values('age').inject(null).max() ==>35 gremlin> g.inject(null,null,null).min() ==>null gremlin> g.inject(null,null,null).max() ==>null gremlin> g.V().values('age').inject(null).mean() ==>30.75 gremlin> g.inject(null,null,null).mean() ==>null gremlin> g.V().properties().hasKey(null) gremlin> g.V().properties().hasValue(null) gremlin> g.withSideEffect('k',null).inject(1).select('k') ==>null gremlin> g.inject(null,1).as('a').path() ==>[null] ==>[1] ``` All tests pass with `docker/build.sh -t -n -i` VOTE +1 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@tinkerpop.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Further enforce and refine null semantics > ----------------------------------------- > > Key: TINKERPOP-2605 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2605 > Project: TinkerPop > Issue Type: Improvement > Components: process, test-suite > Affects Versions: 3.5.1 > Reporter: Stephen Mallette > Assignee: Stephen Mallette > Priority: Major > > A number of areas where {{null}} is used in traversals result in some odd > looking errors. Identify these situations and improve them to be more user > friendly. Some specific items to take care of: > {code} > hasLabel(null) // currently results in exception, should just filter > P.within(null) // TINKERPOP-2598 > sum() // NPE if null is present, should ignore nulls in calculation and > return null if all values are null > mean() // NPE if null is present, should ignore nulls in calculation and > return null if all values are null > max() // NPE if null is present, should ignore nulls in calculation and > return null if all values are null > min() // NPE if null is present, should ignore nulls in calculation and > return null if all values are null > inject(null) // NPE > hasValue(null) // NPE if accidentally applied to hasValue(P), should just > filter > hasKey(null) // NPE, should just filter > withSideEffect('k',null) // NPE, should just allow the assignment > g.inject(1,null).as('a') // NPE and won't allow labelling > path() // NPE when encountering nulls > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)