[ 
https://issues.apache.org/jira/browse/TINKERPOP3-780?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14710189#comment-14710189
 ] 

Marko A. Rodriguez commented on TINKERPOP3-780:
-----------------------------------------------

This problem is not so simple to solve. I made it so that 
{{ReducingBarrierStep}} will always check to see if there is more data before 
"being done." However, given that this is a reducing step, the traverser that 
is generated is "fresh" and doesn't have a loop counter. Thus, its 0 (within 
{{repeat()}}). Thus, the unfolded data never escapes {{repeat()}}.

....................this is a general "problem" with reducing steps. They 
create a new traverser that has no memory of the past (path, loop counters, 
bulk, sacks, etc.)

> Use of fold() in repeat()
> -------------------------
>
>                 Key: TINKERPOP3-780
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP3-780
>             Project: TinkerPop 3
>          Issue Type: Bug
>          Components: process
>    Affects Versions: 3.0.0-incubating
>            Reporter: stephen mallette
>            Assignee: Marko A. Rodriguez
>             Fix For: 3.0.1-incubating, 3.1.0-incubating
>
>
> I would expect these two traversals to be equivalent:
> {code}
> gremlin> g = TinkerFactory.createModern().traversal()
> ==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
> gremlin> g.V(1).repeat(out().fold().unfold()).times(2)
> gremlin> g.V(1).repeat(out()).times(2)
> ==>v[5]
> ==>v[3]
> {code}
> Also note something [~dkuppitz] pointed out:
> {code}
> gremlin> g.V(1).repeat(out().fold()).times(1)
> ==>[]
> gremlin> g.V(1).out().fold()
> ==>[v[3], v[2], v[4]]
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to