Hi,
This is on 3.2.3
I have been investigating why
`DedupTest.g_V_asXaX_repeatXbothX_timesX3X_emit_asXbX_group_byXselectXaXX_byXselectXbX_dedup_order_byXidX_foldX_selectXvaluesX_unfold_dedup`
fails on Sqlg. It is a fairly recently added test.
My investigation so far has narrowed the problem to the
`PathRetractionStrategy`
On the modern graph,
GraphTraversal<Vertex, Map<Vertex, Collection<Vertex>>>
traversal = g.traversal()
.V().as("a")
.out().as("b")
.<Vertex, Collection<Vertex>>group().by(select("a"))
.by(select("b"));
printTraversalForm(traversal);
Outputs the following on TinkerGraph
pre-strategy:[GraphStep(vertex,[])@[a], VertexStep(OUT,vertex)@[b],
GroupStep([SelectOneStep(a)],[SelectOneStep(b)])]
post-strategy:[TinkerGraphStep(vertex,[])@[a],
VertexStep(OUT,vertex)@[b], GroupStep([SelectOneStep(a),
NoOpBarrierStep(2500)],[SelectOneStep(b), NoOpBarrierStep(2500)])]
And on Sqlg
pre-strategy:[GraphStep(vertex,[])@[a], VertexStep(OUT,vertex)@[b],
GroupStep([SelectOneStep(a)],[SelectOneStep(b)])]
post-strategy:[SqlgGraphStepCompiled(vertex,[])@[b],
GroupStep([SelectOneStep(a)],[SelectOneStep(b)])]
The difference being that Sqlg does not have the `NoOpBarrierStep` inserted.
For TinkerGraph the `NoOpBarrierStep` is being inserted in the
`PathRetractionStrategy` on line 113
However this does not happen for Sqlg as Sqlg's GraphStep has
`TraverRequirement.PATH` as a requirement which prevents
`PathRetractionStrategy` from doing what it does.
Is this a bug of sorts? Should Sqlg be adding in the `NoOpBarrierStep`?
Thanks
Pieter