Norio Akagi created TINKERPOP-2422:
--------------------------------------
Summary: LABELED_PATH does not need to be added when a step label
is not consumed
Key: TINKERPOP-2422
URL: https://issues.apache.org/jira/browse/TINKERPOP-2422
Project: TinkerPop
Issue Type: Improvement
Components: process
Reporter: Norio Akagi
Currently `LABELED_PATH` requirement is added whenever a step under the
traversal has any step label.
But if the step label specified is not used, we actually don't need the
requirement.
By omitting unnecessary requirement we should be able to have some sort of
performance gain (it varies depending on how query engine layer deals with
TraverserRequirements).
To achieve this, we may need some concise way to detect if following steps
after the one produces the step label actually uses the label. Checking step
one by one (e.g. `WherePredicateStep`, `PathStep`, etc) is error-prone and we
may forget to add the handling when we add a new Step that consumes a step
label.
I talked with [~divijvaidya] and possibly we can utilize `PATH` requirement -
so whenever a step touches the labeled path the step adds `PATH` requirement to
itself, then we can set `LABELED_PATH` req only when following steps has `PATH`
requirement. More precisely it'd be better if we can retrieve what step label
is used in a single common method and see the exact label used.
Please let me know how you think.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)