You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Stephen Mallette (Jira)" <ji...@apache.org> on 2021/08/25 15:11:03 UTC

[jira] [Created] (TINKERPOP-2608) Enhance sample().by() semantics when by produces a null

Stephen Mallette created TINKERPOP-2608:
-------------------------------------------

             Summary: Enhance sample().by() semantics when by produces a null
                 Key: TINKERPOP-2608
                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2608
             Project: TinkerPop
          Issue Type: Improvement
          Components: process
    Affects Versions: 3.5.1
            Reporter: Stephen Mallette


We currently get a NPE for this:

{code}
gremlin> g.V().sample(1).by("age")
java.lang.NullPointerException
Type ':help' or ':h' for help.
Display stack trace? [yN]
{code}

Since {{sample()}} is a filter, it seems intuitive that it could remove traversers that don't resolve in the {{by()}}. Of course, that changes the current semantics when the sample size is greater than or equal to the size of the traverser set:

{code}
gremlin> g.V().sample(6).by("age")
==>v[1]
==>v[2]
==>v[3]
==>v[4]
==>v[5]
==>v[6]
{code}

As an aside, we might also improve this error messaging:

{code}
gremlin> g.V().sample(1).by("name")
class java.lang.String cannot be cast to class java.lang.Number (java.lang.String and java.lang.Number are in module java.base of loader 'bootstrap')
Type ':help' or ':h' for help.
Display stack trace? [yN]
{code}

As this would change Gremlin semantics a bit, it should target the next breaking version.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)