You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Branden Moore (JIRA)" <ji...@apache.org> on 2017/03/15 19:57:41 UTC

[jira] [Created] (TINKERPOP-1650) PathRetractionStrategy makes Match steps unsolvable

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)