Lei Tang created TINKERPOP-2933: ----------------------------------- Summary: LazyBarrierStrategy affects the output order of query result Key: TINKERPOP-2933 URL: https://issues.apache.org/jira/browse/TINKERPOP-2933 Project: TinkerPop Issue Type: Bug Reporter: Lei Tang
I find that when I remove `LazyBarrierStrategy`, sometimes the output order of query result can be changed. I don't know whether it is a correct behavior, but it sometimes can affect the query result, e.g., a `range()` or `limit()` in a query. For example, I can get the consistent result with the following queries. {code:java} gremlin> :> g.withoutStrategies(LazyBarrierStrategy).V().out('el0','el1').has('vp1', lt(0.30755568)) ==>v[98] ==>v[14] ==>v[94] gremlin> :> g.V().out('el0','el1').has('vp1', lt(0.30755568)) ==>v[98] ==>v[14] ==>v[94] {code} However, I retrieved a different order of results with the following two queries. I think they should also execute the same query results, as well as the same order. {code:java} gremlin> :> g.V().out('el0','el1').not(__.has('vp1', lt(0.30755568))) ==>v[78] ==>v[35] ==>v[103] ==>v[103] ==>v[80] ==>v[80] ==>v[50] gremlin> :> g.withoutStrategies(LazyBarrierStrategy).V().out('el0','el1').not(__.has('vp1', lt(0.30755568))) ==>v[78] ==>v[35] ==>v[103] ==>v[80] ==>v[103] ==>v[80] ==>v[50] {code} Thus, if I have some other operations after it, I will get different query results. {code:java} gremlin> :> g.withoutStrategies(LazyBarrierStrategy).V().out('el0','el1').not(__.has('vp1', lt(0.30755568))).tail(3) ==>v[103] ==>v[80] ==>v[50] gremlin> :> g.V().out('el0','el1').not(__.has('vp1', lt(0.30755568))).tail(3) ==>v[80] ==>v[80] ==>v[50] {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)