Branden Moore created TINKERPOP-1650:
----------------------------------------

             Summary: PathRetractionStrategy makes Match steps unsolvable
                 Key: TINKERPOP-1650
                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1650
             Project: TinkerPop
          Issue Type: Bug
    Affects Versions: 3.2.4, 3.2.3
            Reporter: Branden Moore


The `PathRetractionStrategy` can make certain Match() steps "Unsolvable".

This (nonsensical) example demonstrates the issue:

{code}
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> 
g.V().hasLabel("person").as("perp").match(__.as("a").out("created").as("sw"), 
__.as("sw").has("lang", "java").as("java")).where("sw", neq("a")).select("perp")
The provided match pattern is unsolvable: [[MatchStartStep(a), 
VertexStep(OUT,[created],vertex), MatchEndStep(sw)], [MatchStartStep(sw), 
HasStep([lang.eq(java)]), MatchEndStep(java)], [MatchStartStep(sw), 
WherePredicateStep(neq(a)), MatchEndStep]]
Type ':help' or ':h' for help.
Display stack trace? [yN]n
gremlin> 
{code}

If we remove the `PathRetractionStrategy`, or use `g.withPath()` the match step 
is solvable, and works fine.
{code}
g.withoutStrategies(PathRetractionStrategy).V().hasLabel("person").as("perp").match(__.as("a").out("created").as("sw"),
 __.as("sw").has("lang", "java").as("java")).where("sw", 
neq("a")).select("perp")
==>v[1]
==>v[4]
==>v[4]
==>v[6]
gremlin> 
g.withPath().V().hasLabel("person").as("perp").match(__.as("a").out("created").as("sw"),
 __.as("sw").has("lang", "java").as("java")).where("sw", 
neq("a")).select("perp")
==>v[1]
==>v[4]
==>v[4]
==>v[6]
gremlin> 

{code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to