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

Reply via email to