[ 
https://issues.apache.org/jira/browse/TINKERPOP-1280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15262480#comment-15262480
 ] 

Marko A. Rodriguez commented on TINKERPOP-1280:
-----------------------------------------------

Ha. Yea, because there is no {{select}}, {{where}}, {{match}}, etc. step in the 
first traversal, {{TraverserRequirement.LABELED_PATH}} is not a requirement as 
{{as("a")}} does nothing. However, if your {{program()}} requires it, 
{{TraversalVertexProgram}} doesn't know that cause {{program()}} is like a 
lambda... it can't introspect into the program to know what it needs.

There is no easy solution to this. The hack is to do something like 
{{where(as("a"))}} like you do above, or we add the following:

{code}
g = g.withRequirement(LABELED_PATH) 
g.V().as("a")....
{code}

I'm sort of scared of adding {{withRequirement}} as there are a couple of 
tickets out there about getting rid of the concept of requrements.... :). In 
short, this is sort of a stalemate with no obvious solution besides the manual 
hack.

> VertexPrograms should declare traverser requirements
> ----------------------------------------------------
>
>                 Key: TINKERPOP-1280
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1280
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: process
>    Affects Versions: 3.2.0-incubating
>            Reporter: Daniel Kuppitz
>
> VertexPrograms should declare their {{TraverserRequirement}} which can then 
> be propagated by the {{program()}} step. Most VPs (at least the ones I have 
> written so far) rely on (labeled) path information and thus will fail if the 
> actual traversal doesn't use any other steps with the same traverser 
> requirements. I keep running into this issue whenever I write a new VP.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to