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




Reply via email to