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)

Reply via email to