[
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
> 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)