You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2015/08/25 14:35:04 UTC

[45/50] incubator-tinkerpop git commit: a much cleaner implementation of g.V([1, 2, 3]) for OLAP where [v1, v2, ..] are converted to [1, 2, ...] prior to submission to the cluster so you don't serialize elements.

a much cleaner implementation of g.V([1,2,3]) for OLAP where [v1,v2,..] are converted to [1,2,...] prior to submission to the cluster so you don't serialize elements.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/d5e54660
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/d5e54660
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/d5e54660

Branch: refs/heads/tp30
Commit: d5e546608f6487d7bad3ba7b96880b8f73dc01a3
Parents: 722948e
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Mon Aug 24 11:56:42 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Mon Aug 24 11:56:42 2015 -0600

----------------------------------------------------------------------
 .../computer/traversal/TraversalVertexProgram.java        | 10 +++++-----
 .../process/traversal/step/sideEffect/GraphStep.java      |  4 ++++
 2 files changed, 9 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d5e54660/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java
index bf706af..31a5e96 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java
@@ -61,6 +61,7 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Optional;
 import java.util.Set;
+import java.util.function.Function;
 import java.util.function.Supplier;
 
 
@@ -154,10 +155,9 @@ public final class TraversalVertexProgram implements VertexProgram<TraverserSet<
 
             final GraphStep<Element> graphStep = (GraphStep<Element>) this.traversal.getStartStep();
             final String future = graphStep.getNextStep().getId();
-            final boolean elementIds = graphStep.getIds().length > 0 && graphStep.getIds()[0] instanceof Element;
             final TraverserGenerator traverserGenerator = this.traversal.getTraverserGenerator();
             if (graphStep.returnsVertex()) {  // VERTICES (process the first step locally)
-                if (elementIds ? ElementHelper.elementExists(vertex, graphStep.getIds()) : ElementHelper.idExists(vertex.id(), graphStep.getIds())) {
+                if (ElementHelper.idExists(vertex.id(), graphStep.getIds())) {
                     final Traverser.Admin<Element> traverser = traverserGenerator.generate(vertex, graphStep, 1l);
                     traverser.setStepId(future);
                     traverser.detach();
@@ -170,9 +170,9 @@ public final class TraversalVertexProgram implements VertexProgram<TraverserSet<
                 boolean voteToHalt = true;
                 final Iterator<Edge> starts = vertex.edges(Direction.OUT);
                 while (starts.hasNext()) {
-                    final Edge edge = starts.next();
-                    if (elementIds ? ElementHelper.elementExists(edge, graphStep.getIds()) : ElementHelper.idExists(edge.id(), graphStep.getIds())) {
-                        final Traverser.Admin<Element> traverser = traverserGenerator.generate(edge, graphStep, 1l);
+                    final Edge start = starts.next();
+                    if (ElementHelper.idExists(start.id(), graphStep.getIds())) {
+                        final Traverser.Admin<Element> traverser = traverserGenerator.generate(start, graphStep, 1l);
                         traverser.setStepId(future);
                         traverser.detach();
                         if (traverser.isHalted())

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d5e54660/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GraphStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GraphStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GraphStep.java
index da6f80f..b0472b2 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GraphStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GraphStep.java
@@ -85,6 +85,10 @@ public class GraphStep<S extends Element> extends StartStep<S> implements Engine
     public void onEngine(final TraversalEngine traversalEngine) {
         if (traversalEngine.isComputer()) {
             this.iteratorSupplier = Collections::emptyIterator;
+            for(int i=0; i<this.ids.length; i++) {    // if this is going to OLAP, convert to ids so you don't serialize elements
+                if(this.ids[i] instanceof Element)
+                    this.ids[i] = ((Element)this.ids[i]).id();
+            }
         }
     }