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)