[ https://issues.apache.org/jira/browse/TINKERPOP-2325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17014259#comment-17014259 ]
Stephen Mallette commented on TINKERPOP-2325: --------------------------------------------- [~m.valzelli] please issue your pull request to this branch: https://github.com/apache/tinkerpop/tree/3.4-dev btw, harsh confirmed on twitter that this change should not be a problem. easy one. > Generate traversals that will better yield index lookups with SPARQL > -------------------------------------------------------------------- > > Key: TINKERPOP-2325 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2325 > Project: TinkerPop > Issue Type: Improvement > Components: sparql > Affects Versions: 3.4.4 > Reporter: Stephen Mallette > Priority: Major > > The following simple bit of SPARQL generates a {{match()}} that wont easily > be converted to further utilize indices. > {code} > gremlin> s.sparql("SELECT ?x WHERE { ?x v:name 'marko' }").explain() > ==>Traversal Explanation > =========================================================================================================================================================================================== > Original Traversal [InjectStep([SELECT ?x WHERE { ?x v:name > 'marko' }])] > ConnectiveStrategy [D] [InjectStep([SELECT ?x WHERE { ?x v:name > 'marko' }])] > SparqlStrategy [D] [GraphStep(vertex,[]), > MatchStep(AND,[[MatchStartStep(x), PropertiesStep([name],value), > IsStep(eq(marko)), MatchEndStep]]), SelectOneStep(last,x)] > MatchPredicateStrategy [O] [GraphStep(vertex,[]), > MatchStep(AND,[[MatchStartStep(x), PropertiesStep([name],value), > IsStep(eq(marko)), MatchEndStep]]), SelectOneStep(last,x)] > FilterRankingStrategy [O] [GraphStep(vertex,[]), > MatchStep(AND,[[MatchStartStep(x), PropertiesStep([name],value), > IsStep(eq(marko)), MatchEndStep]]), SelectOneStep(last,x)] > EarlyLimitStrategy [O] [GraphStep(vertex,[]), > MatchStep(AND,[[MatchStartStep(x), PropertiesStep([name],value), > IsStep(eq(marko)), MatchEndStep]]), SelectOneStep(last,x)] > InlineFilterStrategy [O] [GraphStep(vertex,[]), > MatchStep(AND,[[MatchStartStep(x), PropertiesStep([name],value), > IsStep(eq(marko)), MatchEndStep]]), SelectOneStep(last,x)] > IncidentToAdjacentStrategy [O] [GraphStep(vertex,[]), > MatchStep(AND,[[MatchStartStep(x), PropertiesStep([name],value), > IsStep(eq(marko)), MatchEndStep]]), SelectOneStep(last,x)] > AdjacentToIncidentStrategy [O] [GraphStep(vertex,[]), > MatchStep(AND,[[MatchStartStep(x), PropertiesStep([name],value), > IsStep(eq(marko)), MatchEndStep]]), SelectOneStep(last,x)] > RepeatUnrollStrategy [O] [GraphStep(vertex,[]), > MatchStep(AND,[[MatchStartStep(x), PropertiesStep([name],value), > IsStep(eq(marko)), MatchEndStep]]), SelectOneStep(last,x)] > CountStrategy [O] [GraphStep(vertex,[]), > MatchStep(AND,[[MatchStartStep(x), PropertiesStep([name],value), > IsStep(eq(marko)), MatchEndStep]]), SelectOneStep(last,x)] > PathRetractionStrategy [O] [GraphStep(vertex,[]), > MatchStep(AND,[[MatchStartStep(x), PropertiesStep([name],value), > IsStep(eq(marko)), MatchEndStep]]), SelectOneStep(last,x)] > LazyBarrierStrategy [O] [GraphStep(vertex,[]), > MatchStep(AND,[[MatchStartStep(x), PropertiesStep([name],value), > IsStep(eq(marko)), MatchEndStep]]), SelectOneStep(last,x)] > TinkerGraphCountStrategy [P] [GraphStep(vertex,[]), > MatchStep(AND,[[MatchStartStep(x), PropertiesStep([name],value), > IsStep(eq(marko)), MatchEndStep]]), SelectOneStep(last,x)] > TinkerGraphStepStrategy [P] [TinkerGraphStep(vertex,[]), > MatchStep(AND,[[MatchStartStep(x), PropertiesStep([name],value), > IsStep(eq(marko)), MatchEndStep]]), SelectOneStep(last,x)] > ProfileStrategy [F] [TinkerGraphStep(vertex,[]), > MatchStep(AND,[[MatchStartStep(x), PropertiesStep([name],value), > IsStep(eq(marko)), MatchEndStep]]), SelectOneStep(last,x)] > StandardVerificationStrategy [V] [TinkerGraphStep(vertex,[]), > MatchStep(AND,[[MatchStartStep(x), PropertiesStep([name],value), > IsStep(eq(marko)), MatchEndStep]]), SelectOneStep(last,x)] > Final Traversal [TinkerGraphStep(vertex,[]), > MatchStep(AND,[[MatchStartStep(x), PropertiesStep([name],value), > IsStep(eq(marko)), MatchEndStep]]), SelectOneStep(last,x)] > {code} > {{sparql-gremlin}} needs some improvements in this area. -- This message was sent by Atlassian Jira (v8.3.4#803005)