[ https://issues.apache.org/jira/browse/TINKERPOP-1583?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15730335#comment-15730335 ]
Ted Wilmes commented on TINKERPOP-1583: --------------------------------------- Thanks for reporting this [~gereedy]. I'll take a look. > PathRetractionStrategy retracts keys that are actually needed > ------------------------------------------------------------- > > Key: TINKERPOP-1583 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1583 > Project: TinkerPop > Issue Type: Bug > Components: process > Affects Versions: 3.2.3 > Reporter: Geoff Reedy > > We've seen this specifically for labels used in the until modulator of repeat > but I suspect it happens for other modulators as well. Here's a test case: > {code} > graph = TinkerGraph.open() > g = graph.traversal() > g.addV().as("first").repeat(addE("next").to(addV()).inV()).times(5).addE("next").to(select("first")).iterate() > g.V().limit(1).as('z').out().repeat(store('seen').out().where(without('seen'))).until(where(eq('z'))) > {code} > complains there is no z-key > I tired to fix it myself and submit a pull request but I found the > implementation of PathRetractionStrategy confusing. > One thing I noticed is that it seems the set of labels a step needs present > in order to work properly is determined external to the steps and that code > includes a lot of type-tests. If that logic were pushed down into the step > implementations I think fixing the repeat case would be easier and it would > be possible for extension steps to work properly with this strategy > (currently it seems they can't because of the closed-world assumption > inherent in the type-casing). -- This message was sent by Atlassian JIRA (v6.3.4#6332)