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;
+    }
 }