Ted Wilmes created TINKERPOP-1781:
-------------------------------------
Summary: Traversal admin addStep does not update bytecode
Key: TINKERPOP-1781
URL: https://issues.apache.org/jira/browse/TINKERPOP-1781
Project: TinkerPop
Issue Type: Improvement
Components: process
Affects Versions: 3.2.6, 3.3.0
Reporter: Ted Wilmes
Right now bytecode is constructed at traversal construction time and is not
updated post-construction when traversal rewriting happens via strategies. This
works fine in most cases because the traversal is locked post-strategy
application and will be executed, not serialized out for execution somewhere
else.
There are issues when trying to apply client side, pre-serialization traversal
rewriting (a kind of client-side traversal strategy outside of the usual
strategy flow). Since a direct call to {{addStep}} circumvents the bytecode
construction, the bytecode diverges from the rewritten traversal.
{code}
gremlin> traversal = g.V().out();null
==>null
gremlin> traversal.getSteps()
==>GraphStep(vertex,[])
==>VertexStep(OUT,vertex)
gremlin> traversal.getBytecode()
==>[[], [V(), out()]]
gremlin> TraversalHelper.insertAfterStep(new CountGlobalStep(traversal),
traversal.getSteps()[1], traversal.asAdmin())
==>null
gremlin> traversal.getSteps()
==>GraphStep(vertex,[])
==>VertexStep(OUT,vertex)
==>CountGlobalStep
gremlin> traversal.getBytecode()
==>[[], [V(), out()]]
{code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)