You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2016/09/07 22:33:22 UTC
tinkerpop git commit: fixed an inheritence issue with withBulk(false)
traversers. I introduced this problem last week and we just so happened to
have a test case that didn't expose it. I added @dkuppitz recommended query
that exposed it. Thank you -- god
Repository: tinkerpop
Updated Branches:
refs/heads/master 0c6971019 -> c82f66179
fixed an inheritence issue with withBulk(false) traversers. I introduced this problem last week and we just so happened to have a test case that didn't expose it. I added @dkuppitz recommended query that exposed it. Thank you -- god speed.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/c82f6617
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/c82f6617
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/c82f6617
Branch: refs/heads/master
Commit: c82f66179959095da3e297f21e44538b56cc1679
Parents: 0c69710
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Wed Sep 7 15:33:11 2016 -0700
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Wed Sep 7 15:33:11 2016 -0700
----------------------------------------------------------------------
.../traverser/O_OB_S_SE_SL_Traverser.java | 11 +++++++
.../step/sideEffect/GroovySackTest.groovy | 6 ++++
.../traversal/step/sideEffect/SackTest.java | 33 +++++++++++++++-----
3 files changed, 42 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c82f6617/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/O_OB_S_SE_SL_Traverser.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/O_OB_S_SE_SL_Traverser.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/O_OB_S_SE_SL_Traverser.java
index 44a7cbb..2fb68ad 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/O_OB_S_SE_SL_Traverser.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/O_OB_S_SE_SL_Traverser.java
@@ -32,6 +32,7 @@ public class O_OB_S_SE_SL_Traverser<T> extends O_Traverser<T> {
protected short loops = 0; // an optimization hack to use a short internally to save bits :)
protected transient TraversalSideEffects sideEffects;
protected String future = HALT;
+ protected long bulk = 1L;
protected O_OB_S_SE_SL_Traverser() {
}
@@ -46,6 +47,16 @@ public class O_OB_S_SE_SL_Traverser<T> extends O_Traverser<T> {
/////////////////
@Override
+ public void setBulk(final long count) {
+ this.bulk = count > 0 ? 1L : 0L;
+ }
+
+ @Override
+ public long bulk() {
+ return this.bulk;
+ }
+
+ @Override
public <S> S sack() {
return (S) this.sack;
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c82f6617/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySackTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySackTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySackTest.groovy
index 3ffbb2b..9df18ad 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySackTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySackTest.groovy
@@ -71,6 +71,12 @@ public abstract class GroovySackTest {
}
@Override
+ public Traversal<Vertex, Double> get_g_withBulkXfalseX_withSackX1_sumX_VX1X_localXoutEXknowsX_barrierXnormSackX_inVX_inXknowsX_barrier_sack(
+ final Object v1Id) {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.withBulk(false).withSack(1.0d, sum).V(v1Id).local(outE('knows').barrier(normSack).inV).in('knows').barrier.sack", "v1Id", v1Id)
+ }
+
+ @Override
Traversal<Vertex, BigDecimal> get_g_withSackXBigInteger_TEN_powX1000X_assignX_V_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack() {
new ScriptTraversal<>(g, "gremlin-groovy", "g.withSack(BigInteger.TEN.pow(1000), assign).V.local(out('knows').barrier(normSack)).in('knows').barrier.sack")
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c82f6617/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SackTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SackTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SackTest.java
index 1e44697..678cdb3 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SackTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SackTest.java
@@ -22,7 +22,6 @@ import org.apache.tinkerpop.gremlin.LoadGraphWith;
import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
import org.apache.tinkerpop.gremlin.process.GremlinProcessRunner;
import org.apache.tinkerpop.gremlin.process.traversal.Operator;
-import org.apache.tinkerpop.gremlin.process.traversal.SackFunctions;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
import org.apache.tinkerpop.gremlin.structure.T;
import org.apache.tinkerpop.gremlin.structure.Vertex;
@@ -32,10 +31,13 @@ import org.junit.runner.RunWith;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
+import static org.apache.tinkerpop.gremlin.process.traversal.Operator.sum;
+import static org.apache.tinkerpop.gremlin.process.traversal.SackFunctions.Barrier.normSack;
import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.out;
import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.outE;
import static org.junit.Assert.assertEquals;
@@ -66,6 +68,8 @@ public abstract class SackTest extends AbstractGremlinProcessTest {
public abstract Traversal<Vertex, Integer> get_g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack();
+ public abstract Traversal<Vertex, Double> get_g_withBulkXfalseX_withSackX1_sumX_VX1X_localXoutEXknowsX_barrierXnormSackX_inVX_inXknowsX_barrier_sack(final Object v1Id);
+
public abstract Traversal<Vertex, BigDecimal> get_g_withSackXBigInteger_TEN_powX1000X_assignX_V_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack();
@Test
@@ -145,6 +149,14 @@ public abstract class SackTest extends AbstractGremlinProcessTest {
@Test
@LoadGraphWith(MODERN)
+ public void g_withBulkXfalseX_withSackX1_sumX_VX1X_localXoutEXknowsX_barrierXnormSackX_inVX_inXknowsX_barrier_sack() {
+ final Traversal<Vertex, Double> traversal = get_g_withBulkXfalseX_withSackX1_sumX_VX1X_localXoutEXknowsX_barrierXnormSackX_inVX_inXknowsX_barrier_sack(convertToVertexId("marko"));
+ printTraversalForm(traversal);
+ checkResults(Collections.singletonList(1.0d), traversal);
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
public void g_withSackXBigInteger_TEN_powX1000X_assignX_V_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack() {
final Traversal<Vertex, BigDecimal> traversal = get_g_withSackXBigInteger_TEN_powX1000X_assignX_V_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack();
printTraversalForm(traversal);
@@ -165,22 +177,22 @@ public abstract class SackTest extends AbstractGremlinProcessTest {
@Override
public Traversal<Vertex, Double> get_g_withSackX0X_V_outE_sackXsumX_byXweightX_inV_sack_sum() {
- return g.withSack(0.0f).V().outE().sack(Operator.sum).by("weight").inV().sack().sum();
+ return g.withSack(0.0f).V().outE().sack(sum).by("weight").inV().sack().sum();
}
@Override
public Traversal<Vertex, Double> get_g_withSackX0X_V_repeatXoutE_sackXsumX_byXweightX_inVX_timesX2X_sack() {
- return g.withSack(0.0f).V().repeat(outE().sack(Operator.sum).by("weight").inV()).times(2).sack();
+ return g.withSack(0.0f).V().repeat(outE().sack(sum).by("weight").inV()).times(2).sack();
}
@Override
public Traversal<Vertex, Double> get_g_withSackX0X_V_outE_sackXsum_weightX_inV_sack_sum() {
- return g.withSack(0.0f).V().outE().sack(Operator.sum, "weight").inV().sack().sum();
+ return g.withSack(0.0f).V().outE().sack(sum, "weight").inV().sack().sum();
}
@Override
public Traversal<Vertex, Double> get_g_withSackX0X_V_repeatXoutE_sackXsum_weightX_inVX_timesX2X_sack() {
- return g.withSack(0.0f).V().repeat(outE().sack(Operator.sum, "weight").inV()).times(2).sack();
+ return g.withSack(0.0f).V().repeat(outE().sack(sum, "weight").inV()).times(2).sack();
}
@Override
@@ -193,17 +205,22 @@ public abstract class SackTest extends AbstractGremlinProcessTest {
@Override
public Traversal<Vertex, Double> get_g_withSackX1_sumX_VX1X_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack(final Object v1Id) {
- return g.withSack(1.0d, Operator.sum).V(v1Id).local(out("knows").barrier(SackFunctions.Barrier.normSack)).in("knows").barrier().sack();
+ return g.withSack(1.0d, sum).V(v1Id).local(out("knows").barrier(normSack)).in("knows").barrier().sack();
}
@Override
public Traversal<Vertex, Integer> get_g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack() {
- return g.withBulk(false).withSack(1, Operator.sum).V().out().barrier().sack();
+ return g.withBulk(false).withSack(1, sum).V().out().barrier().sack();
+ }
+
+ @Override
+ public Traversal<Vertex, Double> get_g_withBulkXfalseX_withSackX1_sumX_VX1X_localXoutEXknowsX_barrierXnormSackX_inVX_inXknowsX_barrier_sack(final Object v1Id) {
+ return g.withBulk(false).withSack(1.0d, sum).V(v1Id).local(outE("knows").barrier(normSack).inV()).in("knows").barrier().sack();
}
@Override
public Traversal<Vertex, BigDecimal> get_g_withSackXBigInteger_TEN_powX1000X_assignX_V_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack() {
- return g.withSack(BigInteger.TEN.pow(1000), Operator.assign).V().local(out("knows").barrier(SackFunctions.Barrier.normSack)).in("knows").barrier().sack();
+ return g.withSack(BigInteger.TEN.pow(1000), Operator.assign).V().local(out("knows").barrier(normSack)).in("knows").barrier().sack();
}
}
}
\ No newline at end of file