[
https://issues.apache.org/jira/browse/TINKERPOP-3201?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ken Hu updated TINKERPOP-3201:
------------------------------
Description:
tail() step inside repeat() is not properly resetting per iteration.
Consider the following queries on the modern graph on 3.7.x
{code:java}
gremlin>
g.withoutStrategies(RepeatUnrollStrategy).V(1).repeat(__.both().order().tail(2)).times(2)
==>v[4]
==>v[6]
{code}
{code:java}
gremlin> g.V(1).both().order().tail(2).both().order().tail(2)
==>v[5]
==>v[6]
{code}
The unrolled version doesn't match the repeat() version because tail() is
recalculated on each call to processNextStart(). The tail() is being calculated
too frequently even though there are still output traversers remaining from the
previous calculation.
was:tail() step inside repeat() is not properly resetting per iteration. More
examples to come.
> Fix tail inside repeat
> ----------------------
>
> Key: TINKERPOP-3201
> URL: https://issues.apache.org/jira/browse/TINKERPOP-3201
> Project: TinkerPop
> Issue Type: Bug
> Components: process
> Affects Versions: 3.8.0
> Reporter: Ken Hu
> Priority: Major
> Fix For: 3.8.0
>
>
> tail() step inside repeat() is not properly resetting per iteration.
> Consider the following queries on the modern graph on 3.7.x
> {code:java}
> gremlin>
> g.withoutStrategies(RepeatUnrollStrategy).V(1).repeat(__.both().order().tail(2)).times(2)
> ==>v[4]
> ==>v[6]
> {code}
> {code:java}
> gremlin> g.V(1).both().order().tail(2).both().order().tail(2)
> ==>v[5]
> ==>v[6]
> {code}
> The unrolled version doesn't match the repeat() version because tail() is
> recalculated on each call to processNextStart(). The tail() is being
> calculated too frequently even though there are still output traversers
> remaining from the previous calculation.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)