You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by dk...@apache.org on 2016/05/27 11:48:32 UTC
[05/12] incubator-tinkerpop git commit: Don't over-optimize in
`RangeByIsCountStrategy` if `count()` or `is()` is labeled.
Don't over-optimize in `RangeByIsCountStrategy` if `count()` or `is()` is labeled.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/d55897af
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/d55897af
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/d55897af
Branch: refs/heads/master
Commit: d55897afcd3833d9161d0871ad46cc21cf3db7ce
Parents: 51f55df
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Thu May 26 11:13:17 2016 +0200
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Fri May 27 13:25:37 2016 +0200
----------------------------------------------------------------------
.../traversal/strategy/optimization/RangeByIsCountStrategy.java | 5 +++--
.../strategy/optimization/RangeByIsCountStrategyTest.java | 2 ++
2 files changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d55897af/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategy.java
index efa79e6..2994085 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategy.java
@@ -90,8 +90,9 @@ public final class RangeByIsCountStrategy extends AbstractTraversalStrategy<Trav
final boolean update = highRange == null || highRangeCandidate > highRange;
if (update) {
highRange = highRangeCandidate;
- useNotStep = (highRange <= 1L && predicate.equals(Compare.lt)) ||
- (highRange == 1L && (predicate.equals(Compare.eq) || predicate.equals(Compare.lte)));
+ useNotStep = curr.getLabels().isEmpty() && next.getLabels().isEmpty()
+ && ((highRange <= 1L && predicate.equals(Compare.lt))
+ || (highRange == 1L && (predicate.equals(Compare.eq) || predicate.equals(Compare.lte))));
}
} else {
final Long highRangeOffset = RANGE_PREDICATES.get(predicate);
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d55897af/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategyTest.java
index b6d0e27..f07c267 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategyTest.java
@@ -127,6 +127,8 @@ public class RangeByIsCountStrategyTest {
{__.out().count().is(0), __.not(__.out())},
{__.out().count().is(lt(1)), __.not(__.out())},
{__.out().count().is(lte(0)), __.not(__.out())},
+ {__.out().count().is(0).as("a"), __.out().limit(1).count().is(0).as("a")},
+ {__.out().count().as("a").is(0), __.out().limit(1).count().as("a").is(0)},
{__.out().count().is(neq(4)), __.out().limit(5).count().is(neq(4))},
{__.out().count().is(lte(3)), __.out().limit(4).count().is(lte(3))},
{__.out().count().is(lt(3)), __.out().limit(3).count().is(lt(3))},