You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Daniel Kuppitz (JIRA)" <ji...@apache.org> on 2015/06/29 18:12:05 UTC

[jira] [Created] (TINKERPOP3-754) MergeStep

Daniel Kuppitz created TINKERPOP3-754:
-----------------------------------------

             Summary: MergeStep
                 Key: TINKERPOP3-754
                 URL: https://issues.apache.org/jira/browse/TINKERPOP3-754
             Project: TinkerPop 3
          Issue Type: Improvement
          Components: process
            Reporter: Daniel Kuppitz
            Assignee: Marko A. Rodriguez


Given the traversal in https://issues.apache.org/jira/browse/TINKERPOP3-753 I thought it would be nice to have a step that lets us modify a {{sideEffect}} map - basically {{store()}} for maps. For example:

{code}
g.V().match(
      __.as("v").outE().count().as("outDegree"),
      __.as("v").inE().count().as("inDegree")).
   select("v").by(valueMap()).merge("outDegree","inDegree")
{code}

**Expected result:**

{noformat}
==>[name=[marko], age=[29], inDegree=0, outDegree=3]
==>[name=[vadas], age=[27], inDegree=1, outDegree=0]
==>[name=[lop], lang=[java], inDegree=3, outDegree=0]
==>[name=[josh], age=[32], inDegree=1, outDegree=2]
==>[name=[ripple], lang=[java], inDegree=1, outDegree=0]
==>[name=[peter], age=[35], inDegree=0, outDegree=1]
{noformat}

Instead of {{.merge(keys...)}} we could also make it {{.merge(mapKey, keys...)}} (which is probably better as it allows more flexible traversals).

[~okram] already mentioned that {{merge()}} might not be the best name (and I agree), so both - the name and the functionality - are still open for discussions.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)