Description
The `PathRetractionStrategy` can make certain Match() steps "Unsolvable".
This (nonsensical) example demonstrates the issue:
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>
If we remove the `PathRetractionStrategy`, or use `g.withPath()` the match step is solvable, and works fine.
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>
Attachments
Issue Links
- links to