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 2016/09/28 16:57:10 UTC
[12/44] tinkerpop git commit: TreeStep should trigger a failure in
IncidentToAdjacentStrategy. Fixed and added test case. TINKERPOP-1423
TreeStep should trigger a failure in IncidentToAdjacentStrategy. Fixed and added test case. TINKERPOP-1423
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/1b1defc6
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/1b1defc6
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/1b1defc6
Branch: refs/heads/TINKERPOP-944
Commit: 1b1defc685a4cae715d65001e36e2fbe55186bc8
Parents: ab70dca
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Sep 27 10:59:04 2016 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Sep 27 12:45:49 2016 -0600
----------------------------------------------------------------------
CHANGELOG.asciidoc | 1 +
.../optimization/IncidentToAdjacentStrategy.java | 4 +++-
.../IncidentToAdjacentStrategyTest.java | 16 ++++++----------
3 files changed, 10 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1b1defc6/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 499046e..bb9f309 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -26,6 +26,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
TinkerPop 3.2.3 (Release Date: NOT OFFICIALLY RELEASED YET)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Fixed a bug in `IncidentToAdjacentStrategy` where `TreeStep` traversals were allowed.
* Fixed a end-step label bug in `MatchPredicateStrategy`.
* Fixed a bug in `MatchPredicateStrategy` where inlined traversals did not have strategies applied to it.
* Fixed a bug in `RepeatUnrollStrategy` where inlined traversal did not have strategies applied to it.
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1b1defc6/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java
index 18e1c50..153e43a 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java
@@ -25,6 +25,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.LambdaHolder;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.EdgeOtherVertexStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.EdgeVertexStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.PathStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.TreeStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.VertexStep;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.AbstractTraversalStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
@@ -57,13 +58,14 @@ import java.util.Set;
* __.bothE().otherV() // is replaced by __.both()
* __.bothE().bothV() // will not be modified
* __.outE().inV().path() // will not be modified
+ * __.outE().inV().tree() // will not be modified
* </pre>
*/
public final class IncidentToAdjacentStrategy extends AbstractTraversalStrategy<TraversalStrategy.OptimizationStrategy>
implements TraversalStrategy.OptimizationStrategy {
private static final IncidentToAdjacentStrategy INSTANCE = new IncidentToAdjacentStrategy();
- private static final Set<Class> INVALIDATING_STEP_CLASSES = new HashSet<>(Arrays.asList(PathStep.class, LambdaHolder.class));
+ private static final Set<Class> INVALIDATING_STEP_CLASSES = new HashSet<>(Arrays.asList(PathStep.class, TreeStep.class, LambdaHolder.class));
private IncidentToAdjacentStrategy() {
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1b1defc6/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategyTest.java
index 7139f7b..6e56ab8 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategyTest.java
@@ -39,24 +39,19 @@ import static org.junit.Assert.assertEquals;
@RunWith(Parameterized.class)
public class IncidentToAdjacentStrategyTest {
-
@Parameterized.Parameter(value = 0)
public Traversal original;
@Parameterized.Parameter(value = 1)
public Traversal optimized;
- void applyIncidentToAdjacentStrategy(final Traversal traversal) {
- final TraversalStrategies strategies = new DefaultTraversalStrategies();
- strategies.addStrategies(IncidentToAdjacentStrategy.instance());
- traversal.asAdmin().setStrategies(strategies);
- traversal.asAdmin().applyStrategies();
- }
-
@Test
public void doTest() {
- applyIncidentToAdjacentStrategy(original);
- assertEquals(optimized, original);
+ final TraversalStrategies strategies = new DefaultTraversalStrategies();
+ strategies.addStrategies(IncidentToAdjacentStrategy.instance());
+ this.original.asAdmin().setStrategies(strategies);
+ this.original.asAdmin().applyStrategies();
+ assertEquals(this.optimized, this.original);
}
@Parameterized.Parameters(name = "{0}")
@@ -74,6 +69,7 @@ public class IncidentToAdjacentStrategyTest {
{__.bothE().outV(), __.bothE().outV()},
{__.outE().as("a").inV(), __.outE().as("a").inV()}, // todo: this can be optimized, but requires a lot more checks
{__.outE().inV().path(), __.outE().inV().path()},
+ {__.outE().inV().tree().as("a"), __.outE().inV().tree().as("a")},
{__.outE().inV().map(lambda), __.outE().inV().map(lambda)},
{__.union(__.outE().inV(), __.inE().outV()).path(), __.union(__.outE().inV(), __.inE().outV()).path()},
{__.as("a").outE().inV().as("b"), __.as("a").out().as("b")}});