[
https://issues.apache.org/jira/browse/TINKERPOP-1650?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ted Wilmes resolved TINKERPOP-1650.
-----------------------------------
Resolution: Fixed
Fix Version/s: 3.3.1
> PathRetractionStrategy makes Match steps unsolvable
> ---------------------------------------------------
>
> Key: TINKERPOP-1650
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1650
> Project: TinkerPop
> Issue Type: Bug
> Components: process
> Affects Versions: 3.2.3, 3.2.4
> Reporter: Branden Moore
> Assignee: Ted Wilmes
> Fix For: 3.2.7, 3.3.1
>
>
> 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.4.14#64029)