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/10/12 18:01:19 UTC
tinkerpop git commit: added a more stringent requirement. Only the
root traversal can get an end-cap barrier. Added more test cases.
Repository: tinkerpop
Updated Branches:
refs/heads/TINKERPOP-1492 7c026acb9 -> 135af8e11
added a more stringent requirement. Only the root traversal can get an end-cap barrier. Added more test cases.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/135af8e1
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/135af8e1
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/135af8e1
Branch: refs/heads/TINKERPOP-1492
Commit: 135af8e113bbd2cf02135b622a713f5eac3d5f19
Parents: 7c026ac
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Wed Oct 12 12:01:15 2016 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Wed Oct 12 12:01:15 2016 -0600
----------------------------------------------------------------------
.../traversal/strategy/optimization/LazyBarrierStrategy.java | 5 ++++-
.../strategy/optimization/LazyBarrierStrategyTest.java | 2 ++
2 files changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/135af8e1/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/LazyBarrierStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/LazyBarrierStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/LazyBarrierStrategy.java
index f0398a2..5ca5ff2 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/LazyBarrierStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/LazyBarrierStrategy.java
@@ -29,6 +29,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.map.GraphStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.NoOpBarrierStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.VertexStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.ProfileSideEffectStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.util.ProfileStep;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.AbstractTraversalStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
@@ -83,7 +84,9 @@ public final class LazyBarrierStrategy extends AbstractTraversalStrategy<Travers
(step instanceof GraphStep &&
(i > 0 || ((GraphStep) step).getIds().length >= BIG_START_SIZE ||
(((GraphStep) step).getIds().length == 0 && !(step.getNextStep() instanceof HasStep))))) {
- if (foundFlatMap && !labeledPath && !(step.getNextStep() instanceof Barrier)) {
+ if (foundFlatMap && !labeledPath &&
+ !(step.getNextStep() instanceof Barrier) &&
+ (!(step.getNextStep() instanceof EmptyStep) || step.getTraversal().getParent() instanceof EmptyStep)) {
final Step noOpBarrierStep = new NoOpBarrierStep<>(traversal, MAX_BARRIER_SIZE);
TraversalHelper.copyLabels(step, noOpBarrierStep, true);
TraversalHelper.insertAfterStep(noOpBarrierStep, step, traversal);
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/135af8e1/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/LazyBarrierStrategyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/LazyBarrierStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/LazyBarrierStrategyTest.java
index f1738e2..dfa9665 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/LazyBarrierStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/LazyBarrierStrategyTest.java
@@ -97,6 +97,8 @@ public class LazyBarrierStrategyTest {
{__.out().as("a").out().as("b").in().where(P.neq("a")).out().out(), __.out().as("a").out().as("b").in().where(P.neq("a")).out().out(), Collections.emptyList()},
{__.out().as("a").out().as("b").in().where(P.neq("a")).out().select("b").out(), __.out().as("a").out().as("b").in().where(P.neq("a")).barrier(2500).out().select("b").barrier(2500).out().barrier(SIZE), Collections.singletonList(PathRetractionStrategy.instance())},
{__.out().as("a").out().as("b").in().where(P.neq("a")).out().select("b").out().out(), __.out().as("a").out().as("b").in().where(P.neq("a")).barrier(2500).out().select("b").barrier(2500).out().barrier(SIZE).out().barrier(SIZE), Collections.singletonList(PathRetractionStrategy.instance())},
+ {__.V().out().out().groupCount().by(__.out().out().out()).out(), __.V().out().barrier(SIZE).out().groupCount().by(__.out().out().barrier(SIZE).out()).out().barrier(SIZE), Collections.emptyList()},
+ {__.V().out().out().groupCount().by(__.out().out().out()).out().as("a"), __.V().out().barrier(SIZE).out().groupCount().by(__.out().out().barrier(SIZE).out()).out().barrier(SIZE).as("a"), Collections.emptyList()}
});
}
}