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/23 22:56:29 UTC
tinkerpop git commit: a little smarter about
applySingleLevelTraversal(). And added that method to RepeatUnrollStrategy as
it inlines a child traversal.
Repository: tinkerpop
Updated Branches:
refs/heads/TINKERPOP-1456 dabeb02de -> 8ffd3ca84
a little smarter about applySingleLevelTraversal(). And added that method to RepeatUnrollStrategy as it inlines a child traversal.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/8ffd3ca8
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/8ffd3ca8
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/8ffd3ca8
Branch: refs/heads/TINKERPOP-1456
Commit: 8ffd3ca84857319a1c6fa17450bc35b09c819cb0
Parents: dabeb02
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Fri Sep 23 16:56:24 2016 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Fri Sep 23 16:56:24 2016 -0600
----------------------------------------------------------------------
.../strategy/optimization/InlineFilterStrategy.java | 4 ++--
.../strategy/optimization/RepeatUnrollStrategy.java | 1 +
.../gremlin/process/traversal/util/TraversalHelper.java | 10 ++++++----
.../jsr223/TinkerGraphGroovyTranslatorProvider.java | 10 ++--------
4 files changed, 11 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8ffd3ca8/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategy.java
index beeca95..0944361 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategy.java
@@ -56,7 +56,7 @@ public final class InlineFilterStrategy extends AbstractTraversalStrategy<Traver
final Traversal.Admin<?, ?> childTraversal = step.getLocalChildren().get(0);
if (TraversalHelper.allStepsInstanceOf(childTraversal, FilterStep.class, true)) {
changed = true;
- TraversalHelper.applySingleLevelStrategies(childTraversal, traversal.getStrategies(), InlineFilterStrategy.class);
+ TraversalHelper.applySingleLevelStrategies(traversal, childTraversal, InlineFilterStrategy.class);
final Step<?, ?> finalStep = childTraversal.getEndStep();
TraversalHelper.insertTraversal((Step) step, childTraversal, traversal);
traversal.removeStep(step);
@@ -72,7 +72,7 @@ public final class InlineFilterStrategy extends AbstractTraversalStrategy<Traver
Step<?, ?> finalStep = null;
for (int i = childTraversals.size() - 1; i >= 0; i--) {
final Traversal.Admin<?, ?> childTraversal = childTraversals.get(i);
- TraversalHelper.applySingleLevelStrategies(childTraversal, traversal.getStrategies(), InlineFilterStrategy.class);
+ TraversalHelper.applySingleLevelStrategies(traversal, childTraversal, InlineFilterStrategy.class);
if (null == finalStep)
finalStep = childTraversal.getEndStep();
TraversalHelper.insertTraversal((Step) step, childTraversals.get(i), traversal);
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8ffd3ca8/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RepeatUnrollStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RepeatUnrollStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RepeatUnrollStrategy.java
index fdc7e85..f996ec5 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RepeatUnrollStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RepeatUnrollStrategy.java
@@ -51,6 +51,7 @@ public final class RepeatUnrollStrategy extends AbstractTraversalStrategy<Traver
final Traversal.Admin<?, ?> repeatTraversal = repeatStep.getGlobalChildren().get(0);
final int repeatLength = repeatTraversal.getSteps().size() - 1;
repeatTraversal.removeStep(repeatLength); // removes the RepeatEndStep
+ TraversalHelper.applySingleLevelStrategies(traversal, repeatTraversal, RepeatUnrollStrategy.class);
int insertIndex = i;
final int loops = (int) ((LoopTraversal) repeatStep.getUntilTraversal()).getMaxLoops();
for (int j = 0; j < loops; j++) {
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8ffd3ca8/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
index 697dc2a..054a1df 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
@@ -22,7 +22,6 @@ import org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.Traversa
import org.apache.tinkerpop.gremlin.process.traversal.Scope;
import org.apache.tinkerpop.gremlin.process.traversal.Step;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies;
import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.lambda.ElementValueTraversal;
import org.apache.tinkerpop.gremlin.process.traversal.lambda.TokenTraversal;
@@ -581,9 +580,12 @@ public final class TraversalHelper {
return true;
}
- public static void applySingleLevelStrategies(final Traversal.Admin<?, ?> traversal, final TraversalStrategies traversalStrategies, final Class<? extends TraversalStrategy> stopAfterStrategy) {
- for (final TraversalStrategy<?> strategy : traversalStrategies.toList()) {
- strategy.apply(traversal);
+ public static void applySingleLevelStrategies(final Traversal.Admin<?, ?> parentTraversal, final Traversal.Admin<?, ?> childTraversal, final Class<? extends TraversalStrategy> stopAfterStrategy) {
+ childTraversal.setStrategies(parentTraversal.getStrategies());
+ childTraversal.setSideEffects(parentTraversal.getSideEffects());
+ parentTraversal.getGraph().ifPresent(childTraversal::setGraph);
+ for (final TraversalStrategy<?> strategy : parentTraversal.getStrategies().toList()) {
+ strategy.apply(childTraversal);
if (null != stopAfterStrategy && stopAfterStrategy.isInstance(strategy))
break;
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8ffd3ca8/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/process/groovy/jsr223/TinkerGraphGroovyTranslatorProvider.java
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/process/groovy/jsr223/TinkerGraphGroovyTranslatorProvider.java b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/process/groovy/jsr223/TinkerGraphGroovyTranslatorProvider.java
index a014efa..7591bf0 100644
--- a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/process/groovy/jsr223/TinkerGraphGroovyTranslatorProvider.java
+++ b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/process/groovy/jsr223/TinkerGraphGroovyTranslatorProvider.java
@@ -21,13 +21,10 @@ package org.apache.tinkerpop.gremlin.tinkergraph.process.groovy.jsr223;
import org.apache.tinkerpop.gremlin.LoadGraphWith;
import org.apache.tinkerpop.gremlin.groovy.jsr223.GroovyTranslator;
+import org.apache.tinkerpop.gremlin.process.computer.GraphComputerTest;
import org.apache.tinkerpop.gremlin.process.traversal.TraversalInterruptionComputerTest;
import org.apache.tinkerpop.gremlin.process.traversal.TraversalInterruptionTest;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.OrderTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.PageRankTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.PeerPressureTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.ProfileTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.ProgramTest;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.ElementIdStrategyProcessTest;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.TranslationStrategy;
@@ -51,13 +48,10 @@ public class TinkerGraphGroovyTranslatorProvider extends TinkerGraphProvider {
"g_VX1X_out_injectXv2X_name",
"shouldNeverPropagateANoBulkTraverser",
"shouldNeverPropagateANullValuedTraverser",
- OrderTest.Traversals.class.getCanonicalName(),
- ProfileTest.Traversals.class.getCanonicalName(),
+ GraphComputerTest.class.getCanonicalName(),
ProgramTest.Traversals.class.getCanonicalName(),
TraversalInterruptionTest.class.getCanonicalName(),
TraversalInterruptionComputerTest.class.getCanonicalName(),
- PageRankTest.Traversals.class.getCanonicalName(),
- PeerPressureTest.Traversals.class.getCanonicalName(),
ElementIdStrategyProcessTest.class.getCanonicalName()));