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)