Daniel Kuppitz created TINKERPOP-1905:
-----------------------------------------

             Summary: TinkerGraphComputer doesn't handle grouping side-effect 
steps properly
                 Key: TINKERPOP-1905
                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1905
             Project: TinkerPop
          Issue Type: Bug
          Components: process
    Affects Versions: 3.3.1
            Reporter: Daniel Kuppitz


As noted in https://github.com/apache/tinkerpop/pull/803, there seems to be an 
issue in how {{TinkerGraphComputer}} processes grouping side-effect steps. Both 
grouping steps require an extra {{barrier()}} step to function properly; other 
side-effect steps (e.g. {{aggregate()}} show the correct / expected behavior.

{noformat}
gremlin> g = TinkerFactory.createModern().traversal().withComputer()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], graphcomputer]
gremlin> g.V().group("a").by("name").select("a")
==>[]
==>[]
==>[]
==>[]
==>[]
==>[]
gremlin> g.V().groupCount("a").by("name").select("a")
==>[]
==>[]
==>[]
==>[]
==>[]
==>[]
gremlin> g.V().aggregate("a").by("name").select("a")
==>[lop,josh,peter,vadas,ripple,marko]
==>[lop,josh,peter,vadas,ripple,marko]
==>[lop,josh,peter,vadas,ripple,marko]
==>[lop,josh,peter,vadas,ripple,marko]
==>[lop,josh,peter,vadas,ripple,marko]
==>[lop,josh,peter,vadas,ripple,marko]
{noformat}

Including an extra {{barrier()}} which, in my opinion, really shouldn't be 
necessary in an OLAP job:

{noformat}
gremlin> g.V().group("a").by("name").barrier().select("a")
==>[josh:[v[4]],ripple:[v[5]],lop:[v[3]],peter:[v[6]],vadas:[v[2]],marko:[v[1]]]
==>[josh:[v[4]],ripple:[v[5]],lop:[v[3]],peter:[v[6]],vadas:[v[2]],marko:[v[1]]]
==>[josh:[v[4]],ripple:[v[5]],lop:[v[3]],peter:[v[6]],vadas:[v[2]],marko:[v[1]]]
==>[josh:[v[4]],ripple:[v[5]],lop:[v[3]],peter:[v[6]],vadas:[v[2]],marko:[v[1]]]
==>[josh:[v[4]],ripple:[v[5]],lop:[v[3]],peter:[v[6]],vadas:[v[2]],marko:[v[1]]]
==>[josh:[v[4]],ripple:[v[5]],lop:[v[3]],peter:[v[6]],vadas:[v[2]],marko:[v[1]]]
gremlin> g.V().groupCount("a").by("name").barrier().select("a")
==>[josh:1,ripple:1,lop:1,peter:1,vadas:1,marko:1]
==>[josh:1,ripple:1,lop:1,peter:1,vadas:1,marko:1]
==>[josh:1,ripple:1,lop:1,peter:1,vadas:1,marko:1]
==>[josh:1,ripple:1,lop:1,peter:1,vadas:1,marko:1]
==>[josh:1,ripple:1,lop:1,peter:1,vadas:1,marko:1]
==>[josh:1,ripple:1,lop:1,peter:1,vadas:1,marko:1]
{noformat}

A pull request for this ticket should also remove the extra {{barrier()}} step 
from the test case 
{{g_VX1X_groupXaX_byXconstantXaXX_byXnameX_selectXaX_selectXaX}}.

I haven't checked 3.2.x yet, but this line of code most likely shows the same 
issue.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to