[
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)