[
https://issues.apache.org/jira/browse/TINKERPOP-2112?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16781828#comment-16781828
]
ASF GitHub Bot commented on TINKERPOP-2112:
-------------------------------------------
spmallette commented on pull request #1076: TINKERPOP-2112 Fold property() so
that T values can work in any order
URL: https://github.com/apache/tinkerpop/pull/1076
Also optimizes a bit to capture additional possible folds to the
"AddElementStep" that would have been otherwise missed before. This should
enhance performance of certain mutation traversals depending on the positioning
and parameterization of the property() steps as more folding will occur.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> Folding in property() step is not being optimally performed
> -----------------------------------------------------------
>
> Key: TINKERPOP-2112
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2112
> Project: TinkerPop
> Issue Type: Bug
> Components: process
> Affects Versions: 3.3.4
> Reporter: Daniel Kuppitz
> Assignee: stephen mallette
> Priority: Major
>
> Somehow we mess up the folding in {{property()}} step when it's used with
> tokens. I think there's just a missing {{if}} branch, but needs further
> investigation.
> {noformat}
> gremlin> g = TinkerGraph.open().traversal()
> ==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
> gremlin> g.addV().property(T.id , 'id').property(single, 'k', 'v')
> ==>v[id]
> gremlin> g.addV().property(single, 'k', 'v').property(T.id , 'id')
> org.apache.tinkerpop.gremlin.structure.T$2 cannot be cast to java.lang.String
> Type ':help' or ':h' for help.
> Display stack trace? [yN]
> {noformat}
> {noformat}
> gremlin> g = TinkerGraph.open().traversal()
> ==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
> gremlin> g.addV().property(T.id , 'id').property(single, 'k', 'v').explain()
> ==>Traversal Explanation
> =========================================================================================================
> Original Traversal [AddVertexStartStep({id=[id]}),
> AddPropertyStep({key=[k], value=[v]})]
> ConnectiveStrategy [D] [AddVertexStartStep({id=[id]}),
> AddPropertyStep({key=[k], value=[v]})]
> MatchPredicateStrategy [O] [AddVertexStartStep({id=[id]}),
> AddPropertyStep({key=[k], value=[v]})]
> FilterRankingStrategy [O] [AddVertexStartStep({id=[id]}),
> AddPropertyStep({key=[k], value=[v]})]
> InlineFilterStrategy [O] [AddVertexStartStep({id=[id]}),
> AddPropertyStep({key=[k], value=[v]})]
> IncidentToAdjacentStrategy [O] [AddVertexStartStep({id=[id]}),
> AddPropertyStep({key=[k], value=[v]})]
> AdjacentToIncidentStrategy [O] [AddVertexStartStep({id=[id]}),
> AddPropertyStep({key=[k], value=[v]})]
> RepeatUnrollStrategy [O] [AddVertexStartStep({id=[id]}),
> AddPropertyStep({key=[k], value=[v]})]
> PathRetractionStrategy [O] [AddVertexStartStep({id=[id]}),
> AddPropertyStep({key=[k], value=[v]})]
> CountStrategy [O] [AddVertexStartStep({id=[id]}),
> AddPropertyStep({key=[k], value=[v]})]
> LazyBarrierStrategy [O] [AddVertexStartStep({id=[id]}),
> AddPropertyStep({key=[k], value=[v]})]
> TinkerGraphCountStrategy [P] [AddVertexStartStep({id=[id]}),
> AddPropertyStep({key=[k], value=[v]})]
> TinkerGraphStepStrategy [P] [AddVertexStartStep({id=[id]}),
> AddPropertyStep({key=[k], value=[v]})]
> ProfileStrategy [F] [AddVertexStartStep({id=[id]}),
> AddPropertyStep({key=[k], value=[v]})]
> StandardVerificationStrategy [V] [AddVertexStartStep({id=[id]}),
> AddPropertyStep({key=[k], value=[v]})]
> Final Traversal [AddVertexStartStep({id=[id]}),
> AddPropertyStep({key=[k], value=[v]})]
> gremlin> g.addV().property(single, 'k', 'v').property(T.id , 'id').explain()
> ==>Traversal Explanation
> ===========================================================================================================================================
> Original Traversal [AddVertexStartStep({}),
> AddPropertyStep({key=[k], value=[v]}), AddPropertyStep({key=[id],
> value=[id]})]
> ConnectiveStrategy [D] [AddVertexStartStep({}),
> AddPropertyStep({key=[k], value=[v]}), AddPropertyStep({key=[id],
> value=[id]})]
> MatchPredicateStrategy [O] [AddVertexStartStep({}),
> AddPropertyStep({key=[k], value=[v]}), AddPropertyStep({key=[id],
> value=[id]})]
> FilterRankingStrategy [O] [AddVertexStartStep({}),
> AddPropertyStep({key=[k], value=[v]}), AddPropertyStep({key=[id],
> value=[id]})]
> InlineFilterStrategy [O] [AddVertexStartStep({}),
> AddPropertyStep({key=[k], value=[v]}), AddPropertyStep({key=[id],
> value=[id]})]
> IncidentToAdjacentStrategy [O] [AddVertexStartStep({}),
> AddPropertyStep({key=[k], value=[v]}), AddPropertyStep({key=[id],
> value=[id]})]
> AdjacentToIncidentStrategy [O] [AddVertexStartStep({}),
> AddPropertyStep({key=[k], value=[v]}), AddPropertyStep({key=[id],
> value=[id]})]
> RepeatUnrollStrategy [O] [AddVertexStartStep({}),
> AddPropertyStep({key=[k], value=[v]}), AddPropertyStep({key=[id],
> value=[id]})]
> PathRetractionStrategy [O] [AddVertexStartStep({}),
> AddPropertyStep({key=[k], value=[v]}), AddPropertyStep({key=[id],
> value=[id]})]
> CountStrategy [O] [AddVertexStartStep({}),
> AddPropertyStep({key=[k], value=[v]}), AddPropertyStep({key=[id],
> value=[id]})]
> LazyBarrierStrategy [O] [AddVertexStartStep({}),
> AddPropertyStep({key=[k], value=[v]}), AddPropertyStep({key=[id],
> value=[id]})]
> TinkerGraphCountStrategy [P] [AddVertexStartStep({}),
> AddPropertyStep({key=[k], value=[v]}), AddPropertyStep({key=[id],
> value=[id]})]
> TinkerGraphStepStrategy [P] [AddVertexStartStep({}),
> AddPropertyStep({key=[k], value=[v]}), AddPropertyStep({key=[id],
> value=[id]})]
> ProfileStrategy [F] [AddVertexStartStep({}),
> AddPropertyStep({key=[k], value=[v]}), AddPropertyStep({key=[id],
> value=[id]})]
> StandardVerificationStrategy [V] [AddVertexStartStep({}),
> AddPropertyStep({key=[k], value=[v]}), AddPropertyStep({key=[id],
> value=[id]})]
> Final Traversal [AddVertexStartStep({}),
> AddPropertyStep({key=[k], value=[v]}), AddPropertyStep({key=[id],
> value=[id]})]
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)