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/28 18:56:25 UTC
tinkerpop git commit: MatchPredicateStrategy needs to come prior to
FilterRankStrategy given that MatchPredicatesStrategy will try and pull
where()/dedup()-steps into match(). If FilterRankStrategy pushes those
'right' cause these are high-ranked filters
Repository: tinkerpop
Updated Branches:
refs/heads/master 7a4a836d8 -> c0b6e799f
MatchPredicateStrategy needs to come prior to FilterRankStrategy given that MatchPredicatesStrategy will try and pull where()/dedup()-steps into match(). If FilterRankStrategy pushes those 'right' cause these are high-ranked filters, MatchPredicateStategy won't be able to do its job (which uses the runtime optimizer). Also, tweaked some JavaDoc. CTR.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/c0b6e799
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/c0b6e799
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/c0b6e799
Branch: refs/heads/master
Commit: c0b6e799f79df9804ee964c336dd381eb9e19014
Parents: 7a4a836
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Wed Sep 28 12:56:21 2016 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Wed Sep 28 12:56:21 2016 -0600
----------------------------------------------------------------------
.../strategy/optimization/FilterRankingStrategy.java | 8 +++-----
.../strategy/optimization/MatchPredicateStrategy.java | 7 +++++++
2 files changed, 10 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c0b6e799/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/FilterRankingStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/FilterRankingStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/FilterRankingStrategy.java
index 04b789b..2a0a025 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/FilterRankingStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/FilterRankingStrategy.java
@@ -42,6 +42,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -62,6 +63,7 @@ import java.util.Set;
* <tr><td>simplePath()</td><td>4</td></tr>
* <tr><td>cyclicPath()</td><td>4</td></tr>
* <tr><td>filter(traversal)</td><td>5</td></tr>
+ * <tr><td>not(traversal)</td>td>5</td></tr>
* <tr><td>where(traversal)</td><td>6</td></tr>
* <tr><td>or(...)</td><td>7</td></tr>
* <tr><td>and(...)</td><td>8</td></tr>
@@ -80,11 +82,7 @@ import java.util.Set;
public final class FilterRankingStrategy extends AbstractTraversalStrategy<TraversalStrategy.OptimizationStrategy> implements TraversalStrategy.OptimizationStrategy {
private static final FilterRankingStrategy INSTANCE = new FilterRankingStrategy();
- private static final Set<Class<? extends OptimizationStrategy>> PRIORS = new HashSet<>();
-
- static {
- PRIORS.add(IdentityRemovalStrategy.class);
- }
+ private static final Set<Class<? extends OptimizationStrategy>> PRIORS = Collections.singleton(IdentityRemovalStrategy.class);
private FilterRankingStrategy() {
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c0b6e799/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategy.java
index 28e5677..f2928d8 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategy.java
@@ -34,6 +34,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
@@ -54,6 +55,7 @@ public final class MatchPredicateStrategy extends AbstractTraversalStrategy<Trav
private static final MatchPredicateStrategy INSTANCE = new MatchPredicateStrategy();
private static final Set<Class<? extends OptimizationStrategy>> PRIORS = new HashSet<>(Arrays.asList(IdentityRemovalStrategy.class, InlineFilterStrategy.class));
+ private static final Set<Class<? extends OptimizationStrategy>> POSTS = Collections.singleton(FilterRankingStrategy.class);
private MatchPredicateStrategy() {
}
@@ -98,4 +100,9 @@ public final class MatchPredicateStrategy extends AbstractTraversalStrategy<Trav
public Set<Class<? extends OptimizationStrategy>> applyPrior() {
return PRIORS;
}
+
+ @Override
+ public Set<Class<? extends OptimizationStrategy>> applyPost() {
+ return POSTS;
+ }
}