[ https://issues.apache.org/jira/browse/TINKERPOP-2762?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stephen Mallette closed TINKERPOP-2762. --------------------------------------- Fix Version/s: 3.7.0 3.6.1 3.5.4 Assignee: Dave Bechberger Resolution: Done > getScopeKeys should respect the order of keys passed in Step > ------------------------------------------------------------ > > Key: TINKERPOP-2762 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2762 > Project: TinkerPop > Issue Type: Improvement > Components: process > Affects Versions: 3.6.0, 3.4.13, 3.5.3 > Reporter: Norio Akagi > Assignee: Dave Bechberger > Priority: Major > Fix For: 3.7.0, 3.6.1, 3.5.4 > > > Right now, {{Scoping#getScopeKeys}} return {{Set<String>}} to return all keys > used in scoping. > Depending on each Step's implementation, this loses the information of the > order of keys. For example, {{SelectStep}} stores keys as {{HashSet}} > [https://github.com/apache/tinkerpop/blob/cf95caaf139b5570d0c2d509b74f6f6cb561ffaf/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectStep.java#L61] > When GraphProvider implements their own optimization for SelectStep, > naturally they want to access this keys, but let's say when a query has > {{{}select('a', 'b'){}}}, the GraphProvider can only know there are keys > {{'a'}} and {{'b'}} and cannot see which comes first because it returns as > {{{}HashSet{}}}. > This blocks them from performing their own by-traversal for each key, because > applying by-traversals is done in round-robin manner and the order is > critical information to process. > For now, I am adding a getter of the list for a provider. > https://github.com/apache/tinkerpop/pull/1726 -- This message was sent by Atlassian Jira (v8.20.10#820010)