Got it, thank you! On 12/10/2015 11:23 AM, Marko Rodriguez wrote:
Hi Michael,Yes, see ReducingBarrierStep :). https://github.com/apache/incubator-tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/ReducingBarrierStep.java#L100 See a traverser is generated a fresh! Marko. http://markorodriguez.com On Dec 9, 2015, at 3:17 PM, Michael Pollmeier <[email protected]> wrote:Sweet, that's what I was looking for. Just to confirm: the path history only get's cleared for ReducingBarrierStep, not for the other BarrierSteps? Do you happen to know where this is implemented in the tinkerpop3 codebase? On 12/10/2015 03:00 AM, Marko Rodriguez wrote:Hi Michael, Every time there is a reducing barrier step, the path history is lost. Why, when you go many-to-one what is the path? http://tinkerpop.apache.org/docs/3.1.0-incubating/#a-note-on-barrier-steps In TinkerPop2, a reducing barrier would make the path of the yielded traverser be the path of the last reduced traverser. However, this is random as ordering is random. In TinkerPop3, it was decided best to just say "the path starts a fresh." Thoughts?, Marko. http://markorodriguez.com On Dec 8, 2015, at 9:16 PM, Michael Pollmeier <[email protected]> wrote:There are some steps that empty out the path, e.g. `mean`: gremlin> g.E().as("a").values("weight").as("b").path() ==>[e[7][1-knows->2], 0.5] ==>[e[8][1-knows->4], 1.0] ==>[e[9][1-created->3], 0.4] ==>[e[10][4-created->5], 1.0] ==>[e[11][4-created->3], 0.4] ==>[e[12][6-created->3], 0.2] gremlin> g.E().as("a").values("weight").mean().as("b").path() ==>[0.5833333333333334] Question: where does this 'emptying out' happen? How can I tell which steps have this behaviour? Background: Gremlin-Scala preserves the type of every labelled step, so that the `select` step returns a typed list (HList) of the labelled types. Cheers Michael
