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

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

     [ https://issues.apache.org/jira/browse/TINKERPOP-1650?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ted Wilmes reassigned TINKERPOP-1650:
-------------------------------------

    Assignee: Ted Wilmes

> 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.3, 3.2.4
>            Reporter: Branden Moore
>            Assignee: Ted Wilmes
>
> 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)