Hi Pieter, What are the two answers --- TinkerGraph and Sqlg for the respective test traversal?
(I suspect the test is bad because group() pushes traversers through with bulks and all so the test might just add to a collection without adding respecting bulks. Probably should change that test regardless to do like a count or something instead). Marko. http://markorodriguez.com > On Oct 24, 2016, at 12:57 PM, pieter-gmail <[email protected]> wrote: > > 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
