You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2019/03/01 16:07:00 UTC

[jira] [Commented] (TINKERPOP-2112) Folding in property() step is not being optimally performed

    [ 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:
users@infra.apache.org


> 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)