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 2015/06/09 20:16:01 UTC
incubator-tinkerpop git commit: WhereStep simplified by making use of
SelectOneStep in as('a').out... patterns. Removed the multi-label
capabilities of WhereStep as it is not well tested, documented,
and just needs more thought.
Repository: incubator-tinkerpop
Updated Branches:
refs/heads/master 1c2efeeae -> 4cd492af7
WhereStep simplified by making use of SelectOneStep in as('a').out... patterns. Removed the multi-label capabilities of WhereStep as it is not well tested, documented, and just needs more thought.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/4cd492af
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/4cd492af
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/4cd492af
Branch: refs/heads/master
Commit: 4cd492af736dc17f6db0bd4f34d678542ac27e57
Parents: 1c2efee
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Jun 9 12:15:34 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Jun 9 12:15:43 2015 -0600
----------------------------------------------------------------------
CHANGELOG.asciidoc | 1 +
.../traversal/step/filter/WhereStep.java | 113 +++++++------------
.../optimization/MatchWhereStrategy.java | 15 +++
.../process/traversal/util/TraversalP.java | 2 -
.../process/traversal/util/TraversalUtil.java | 37 ------
.../traversal/step/filter/WhereStepTest.java | 18 +--
.../step/filter/GroovyWhereTest.groovy | 4 +-
.../traversal/step/filter/WhereTest.java | 10 +-
.../tinkergraph/structure/TinkerGraphTest.java | 5 +-
9 files changed, 71 insertions(+), 134 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4cd492af/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 5ca461c..4e61785 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -25,6 +25,7 @@ image::http://www.tinkerpop.com/docs/current/images/gremlin-hindu.png[width=225]
TinkerPop 3.0.0.GA (NOT OFFICIALLY RELEASED YET)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* `WhereStep` now uses a `SelectOneStep` for `as('a').out()...` forms as this ensures `Traverser` (and metadata) propagation.
* Renamed `KeyStep` to `PropertyKeyStep` to be consistent with `PropertyValueStep`.
* Added `Gremlin-Lib-Paths` to modify paths in plugin `lib` directory.
* Modified the capabilities of `Gremlin-Plugin-Paths` to delete paths that have no value on the right-hand-side of the equals sign.
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4cd492af/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WhereStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WhereStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WhereStep.java
index 51c9647..6823e58 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WhereStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WhereStep.java
@@ -20,16 +20,18 @@ package org.apache.tinkerpop.gremlin.process.traversal.step.filter;
import org.apache.tinkerpop.gremlin.process.traversal.P;
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.Traverser;
import org.apache.tinkerpop.gremlin.process.traversal.step.Scoping;
import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.SelectOneStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.StartStep;
import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
+import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalP;
-import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalUtil;
import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
@@ -42,13 +44,9 @@ import java.util.Set;
public final class WhereStep<S> extends FilterStep<S> implements TraversalParent, Scoping {
protected P<Object> predicate;
- protected final Set<String> startKeys = new HashSet<>();
- protected final Set<String> endKeys = new HashSet<>();
protected String startKey;
protected String endKey;
protected Scope scope;
- protected boolean multiKeyedTraversal;
-
public WhereStep(final Traversal.Admin traversal, final Scope scope, final Optional<String> startKey, final P<?> predicate) {
super(traversal);
@@ -56,18 +54,22 @@ public final class WhereStep<S> extends FilterStep<S> implements TraversalParent
this.predicate = (P) predicate;
if (!this.predicate.getTraversals().isEmpty()) {
final Traversal.Admin<?, ?> whereTraversal = predicate.getTraversals().get(0);
- if (whereTraversal.getStartStep().getLabels().size() > 1 || whereTraversal.getEndStep().getLabels().size() > 1) {
- this.multiKeyedTraversal = true;
- this.startKeys.addAll(whereTraversal.getStartStep().getLabels());
- this.endKeys.addAll(whereTraversal.getEndStep().getLabels());
- } else {
- this.multiKeyedTraversal = false;
- this.startKey = whereTraversal.getStartStep().getLabels().isEmpty() ? null : whereTraversal.getStartStep().getLabels().iterator().next();
- this.endKey = whereTraversal.getEndStep().getLabels().isEmpty() ? null : whereTraversal.getEndStep().getLabels().iterator().next();
+ //// START STEP
+ final Step<?, ?> startStep = whereTraversal.getStartStep();
+ if (startStep instanceof StartStep && !startStep.getLabels().isEmpty()) {
+ if (startStep.getLabels().size() > 1)
+ throw new IllegalArgumentException("The start step of a where()-traversal predicate can only have one label: " + startStep);
+ TraversalHelper.replaceStep(whereTraversal.getStartStep(), new SelectOneStep<>(whereTraversal, scope, this.startKey = startStep.getLabels().iterator().next()), whereTraversal);
+ }
+ //// END STEP
+ final Step<?, ?> endStep = whereTraversal.getEndStep();
+ if (!endStep.getLabels().isEmpty()) {
+ if (endStep.getLabels().size() > 1)
+ throw new IllegalArgumentException("The end step of a where()-traversal predicate can only have one label: " + endStep);
+ this.endKey = endStep.getLabels().iterator().next();
}
this.predicate.getTraversals().forEach(this::integrateChild);
} else {
- this.multiKeyedTraversal = false;
this.startKey = startKey.orElse(null);
this.endKey = (String) (this.predicate.getValue() instanceof Collection ? ((Collection) this.predicate.getValue()).iterator().next() : this.predicate.getValue());
}
@@ -79,7 +81,20 @@ public final class WhereStep<S> extends FilterStep<S> implements TraversalParent
@Override
protected boolean filter(final Traverser.Admin<S> traverser) {
- return this.multiKeyedTraversal ? this.doMultiKeyFilter(traverser) : this.doSingleKeyFilter(traverser);
+ if (this.predicate instanceof TraversalP) {
+ return this.predicate.getBiPredicate().test(traverser, this.getOptionalScopeValueByKey(this.endKey, traverser).orElse(null));
+ } else {
+ final Object startObject = null == this.startKey ? traverser.get() : this.getOptionalScopeValueByKey(this.startKey, traverser).orElse(null);
+ if (null == startObject) return false;
+ final Object endObject;
+ if (null == this.endKey) {
+ endObject = null;
+ } else {
+ endObject = this.getOptionalScopeValueByKey(this.endKey, traverser).orElse(null);
+ if (null == endObject) return false;
+ }
+ return this.predicate.getBiPredicate().test(startObject, endObject);
+ }
}
@Override
@@ -89,21 +104,16 @@ public final class WhereStep<S> extends FilterStep<S> implements TraversalParent
@Override
public String toString() {
- return StringFactory.stepString(this, this.scope, this.multiKeyedTraversal ? this.startKeys : this.startKey, this.predicate);
+ return StringFactory.stepString(this, this.scope, this.startKey, this.predicate);
}
@Override
public Set<String> getScopeKeys() {
final Set<String> keys = new HashSet<>();
- if(this.multiKeyedTraversal) {
- keys.addAll(this.startKeys);
- keys.addAll(this.endKeys);
- } else {
- if (null != this.startKey)
- keys.add(this.startKey);
- if (null != this.endKey)
- keys.add(this.endKey);
- }
+ if (null != this.startKey)
+ keys.add(this.startKey);
+ if (null != this.endKey)
+ keys.add(this.endKey);
return keys;
}
@@ -125,7 +135,7 @@ public final class WhereStep<S> extends FilterStep<S> implements TraversalParent
@Override
public Set<TraverserRequirement> getRequirements() {
- return this.getSelfAndChildRequirements(Scope.local == this.scope || this.noStartAndEndKeys() ?
+ return this.getSelfAndChildRequirements(Scope.local == this.scope || (this.endKey == null && this.startKey == null) ?
new TraverserRequirement[]{TraverserRequirement.OBJECT, TraverserRequirement.SIDE_EFFECTS} :
new TraverserRequirement[]{TraverserRequirement.OBJECT, TraverserRequirement.PATH, TraverserRequirement.SIDE_EFFECTS});
}
@@ -133,6 +143,11 @@ public final class WhereStep<S> extends FilterStep<S> implements TraversalParent
@Override
public void setScope(final Scope scope) {
this.scope = scope;
+ if (this.predicate instanceof TraversalP) {
+ final Step startStep = this.predicate.getTraversals().get(0).getStartStep();
+ if (startStep instanceof Scoping)
+ ((Scoping) startStep).setScope(scope);
+ }
}
@Override
@@ -144,48 +159,4 @@ public final class WhereStep<S> extends FilterStep<S> implements TraversalParent
public Scope recommendNextScope() {
return this.scope;
}
-
- private boolean noStartAndEndKeys() {
- return this.multiKeyedTraversal ? this.endKeys.isEmpty() && this.startKeys.isEmpty() : this.endKey == null && this.startKey == null;
- }
-
- private Object getStartObject(final Traverser.Admin<S> traverser) {
- return this.predicate instanceof TraversalP ? traverser : traverser.get();
- }
-
- private boolean doSingleKeyFilter(final Traverser.Admin<S> traverser) {
- if (this.noStartAndEndKeys()) {
- return this.predicate.getBiPredicate().test(getStartObject(traverser), null);
- } else {
- final Object startObject = null == this.startKey ? getStartObject(traverser) : this.getOptionalScopeValueByKey(this.startKey, traverser).orElse(null);
- if (null == startObject) return false;
- final Object endObject;
- if (null == this.endKey) {
- endObject = null;
- } else {
- endObject = this.getOptionalScopeValueByKey(this.endKey, traverser).orElse(null);
- if (null == endObject) return false;
- }
- return this.predicate.getBiPredicate().test(startObject, endObject);
- }
- }
-
- private boolean doMultiKeyFilter(final Traverser.Admin<S> traverser) {
- // TODO: getOptionalScopeValueByKey()
- final List<Object> startObjects = new ArrayList<>();
- final List<Object> endObjects = new ArrayList<>();
-
- if (this.startKeys.isEmpty())
- startObjects.add(traverser.get());
- else {
- for (final String startKey : this.startKeys) {
- startObjects.add(this.getScopeValueByKey(startKey, traverser));
- }
- }
- for (final String endKey : this.endKeys) {
- endObjects.add(this.getScopeValueByKey(endKey, traverser));
- }
-
- return this.predicate.getBiPredicate().test(new TraversalUtil.Multiple<>(startObjects), endObjects.isEmpty() ? null : new TraversalUtil.Multiple<>(endObjects));
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4cd492af/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchWhereStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchWhereStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchWhereStrategy.java
index c4d7ce2..071afab 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchWhereStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchWhereStrategy.java
@@ -25,6 +25,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.SelectOneStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.SelectStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.match.MatchStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.StartStep;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.AbstractTraversalStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
@@ -68,6 +69,7 @@ public final class MatchWhereStrategy extends AbstractTraversalStrategy<Traversa
while (currentStep instanceof WhereStep || currentStep instanceof SelectStep || currentStep instanceof SelectOneStep) {
if (currentStep instanceof WhereStep) {
if (!((WhereStep) currentStep).getLocalChildren().isEmpty()) {
+ MatchWhereStrategy.convertWhereSelectOneStepToStartStep((WhereStep<?>) currentStep);
matchStep.addTraversal(((WhereStep<?>) currentStep).getLocalChildren().get(0));
traversal.removeStep(currentStep);
} else {
@@ -95,4 +97,17 @@ public final class MatchWhereStrategy extends AbstractTraversalStrategy<Traversa
return PRIORS;
}
+ // HACK: until MatchStep gets some work done on it.
+ private static void convertWhereSelectOneStepToStartStep(final WhereStep<?> whereStep) {
+ if (!whereStep.getLocalChildren().isEmpty()) {
+ final Traversal.Admin<?, ?> traversal = whereStep.getLocalChildren().get(0);
+ if (traversal.getStartStep() instanceof SelectOneStep) {
+ final SelectOneStep<?, ?> selectOneStep = (SelectOneStep) traversal.getStartStep();
+ final StartStep startStep = new StartStep(traversal);
+ startStep.addLabel(selectOneStep.getScopeKeys().iterator().next());
+ TraversalHelper.replaceStep(selectOneStep, startStep, traversal);
+ }
+ }
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4cd492af/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalP.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalP.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalP.java
index 002f550..3422ca9 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalP.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalP.java
@@ -112,8 +112,6 @@ public final class TraversalP<S, E> extends P<E> {
final boolean result;
if (start instanceof Traverser)
result = TraversalUtil.test(((Traverser<S>) start).asAdmin(), traversalP.traversal, end);
- else if (start instanceof TraversalUtil.Multiple)
- result = TraversalUtil.test((TraversalUtil.Multiple<S>) start, traversalP.traversal, (TraversalUtil.Multiple<E>) end);
else
result = TraversalUtil.test(start, traversalP.traversal, end);
return traversalP.negate ? !result : result;
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4cd492af/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalUtil.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalUtil.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalUtil.java
index 8459524..82c567b 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalUtil.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalUtil.java
@@ -22,8 +22,6 @@ import org.apache.tinkerpop.gremlin.process.traversal.Step;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
-import java.util.Collection;
-import java.util.Iterator;
import java.util.NoSuchElementException;
/**
@@ -101,25 +99,6 @@ public final class TraversalUtil {
return false;
}
- public static final <S, E> boolean test(final Multiple<S> start, final Traversal.Admin<S, E> traversal, final Multiple<E> end) {
- if (null == end) return TraversalUtil.test(start, traversal);
-
- traversal.reset();
- traversal.addStarts(traversal.getTraverserGenerator().generateIterator(start.iterator(), (Step) traversal.getStartStep(), 1l));
- final Step<?, E> endStep = traversal.getEndStep();
- while (traversal.hasNext()) {
- if (end.contains(endStep.next().get()))
- return true;
- }
- return false;
- }
-
- public static final <S, E> boolean test(final Multiple<S> start, final Traversal.Admin<S, E> traversal) {
- traversal.reset();
- traversal.addStarts(traversal.getTraverserGenerator().generateIterator(start.iterator(), (Step) traversal.getStartStep(), 1l));
- return traversal.hasNext();
- }
-
public static final <S, E> E applyNullable(final S start, final Traversal.Admin<S, E> traversal) {
return null == traversal ? (E) start : TraversalUtil.apply(start, traversal);
}
@@ -129,20 +108,4 @@ public final class TraversalUtil {
traversal.addStart(traversal.getTraverserGenerator().generate(start, traversal.getStartStep(), 1l));
return traversal.hasNext(); // filter
}
-
- public static class Multiple<S> implements Iterable<S> {
- private Collection<S> multiple;
-
- public Multiple(final Collection<S> multiple) {
- this.multiple = multiple;
- }
-
- public Iterator<S> iterator() {
- return this.multiple.iterator();
- }
-
- public boolean contains(final S object) {
- return this.multiple.contains(object);
- }
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4cd492af/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WhereStepTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WhereStepTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WhereStepTest.java
index f1737fa..c30430b 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WhereStepTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WhereStepTest.java
@@ -22,7 +22,6 @@
package org.apache.tinkerpop.gremlin.process.traversal.step.filter;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
import org.apache.tinkerpop.gremlin.process.traversal.step.StepTest;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalP;
import org.junit.Test;
@@ -31,7 +30,8 @@ import java.util.Arrays;
import java.util.List;
import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.as;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
@@ -43,28 +43,16 @@ public class WhereStepTest extends StepTest {
public void shouldHaveProperKeysAndState() {
Traversal<?, ?> traversal = as("a").out().as("b").where(as("a").out());
WhereStep<?> whereStep = (WhereStep) traversal.asAdmin().getEndStep();
- assertFalse(whereStep.multiKeyedTraversal);
- assertTrue(whereStep.startKeys.isEmpty());
- assertTrue(whereStep.endKeys.isEmpty());
assertNull(whereStep.endKey);
assertEquals("a", whereStep.startKey);
assertEquals(TraversalP.class, whereStep.predicate.getClass());
-
- traversal = as("a").out().as("b").where(as("a", "b").out());
- whereStep = (WhereStep) traversal.asAdmin().getEndStep();
- assertTrue(whereStep.multiKeyedTraversal);
- assertTrue(whereStep.startKeys.contains("a") && whereStep.startKeys.contains("b") && whereStep.startKeys.size() == 2);
- assertTrue(whereStep.endKeys.isEmpty());
- assertNull(whereStep.endKey);
- assertNull(whereStep.startKey);
- assertEquals(TraversalP.class, whereStep.predicate.getClass());
}
@Override
public List<Traversal> getTraversals() {
return Arrays.asList(
as("a").out().as("b").where(as("a").out()),
- as("a").out().as("b").where(as("a", "b").out())
+ as("a").out().as("b").where(as("a").out().as("b"))
);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4cd492af/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyWhereTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyWhereTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyWhereTest.groovy
index e9a6e72..0eefc3e 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyWhereTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyWhereTest.groovy
@@ -104,9 +104,9 @@ public abstract class GroovyWhereTest {
TraversalScriptHelper.compute("g.V.where(not(out('created'))).name", g);
}
- @Override
+ /*@Override
public Traversal<Vertex, String> get_g_V_asXaX_outXknowsX_asXbX_whereXasXa__bX_outXcreatedX_hasXname__rippleX_name() {
TraversalScriptHelper.compute("g.V.as('a').out('knows').as('b').where(__.as('a', 'b').out('created').has('name', 'ripple')).name", g)
- }
+ }*/
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4cd492af/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WhereTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WhereTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WhereTest.java
index d7c4ad1..f674315 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WhereTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WhereTest.java
@@ -81,7 +81,7 @@ public abstract class WhereTest extends AbstractGremlinProcessTest {
// multi-labels
- public abstract Traversal<Vertex, String> get_g_V_asXaX_outXknowsX_asXbX_whereXasXa__bX_outXcreatedX_hasXname__rippleX_name();
+ //public abstract Traversal<Vertex, String> get_g_V_asXaX_outXknowsX_asXbX_whereXasXa__bX_outXcreatedX_hasXname__rippleX_name();
@Test
@LoadGraphWith(MODERN)
@@ -257,12 +257,12 @@ public abstract class WhereTest extends AbstractGremlinProcessTest {
}
// multi-labels
- @Test
+ /* @Test
@LoadGraphWith(MODERN)
public void g_V_asXaX_outXknowsX_asXbX_whereXasXa__bX_outXcreatedX_hasXname__rippleX_name() {
final Traversal<Vertex, String> traversal = get_g_V_asXaX_outXknowsX_asXbX_whereXasXa__bX_outXcreatedX_hasXname__rippleX_name();
checkResults(Arrays.asList("josh"), traversal);
- }
+ } */
public static class Traversals extends WhereTest {
@@ -337,9 +337,9 @@ public abstract class WhereTest extends AbstractGremlinProcessTest {
// multi-labels
- @Override
+ /* @Override
public Traversal<Vertex, String> get_g_V_asXaX_outXknowsX_asXbX_whereXasXa__bX_outXcreatedX_hasXname__rippleX_name() {
return g.V().as("a").out("knows").as("b").where(as("a", "b").out("created").has("name", "ripple")).values("name");
- }
+ }*/
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4cd492af/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java
index 0f4c965..5adb115 100644
--- a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java
+++ b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java
@@ -160,8 +160,9 @@ public class TinkerGraphTest {
//g.V().label().groupCount().as("x").select().forEachRemaining(System.out::println);
//g.V().choose(__.outE().count().is(0L), __.as("x"), __.as("y")).select("x", "y").forEachRemaining(System.out::println);
// g.V().hasLabel("person").values("age").is(P.lt(27).or(P.gt(29))).forEachRemaining(System.out::println);
- System.out.println(g.V().as("a").out("knows").as("b").where(as("a","b").out("created")).select().by("name"));
- g.V().as("a").out("knows").as("b").where(as("b").out("created").in("created").as("a","b")).select().by("name").forEachRemaining(System.out::println);
+ //System.out.println(g.V().as("a").out("knows").as("b").where(as("a","b").out("created")).select().by("name"));
+ System.out.println(g.V().as("a").out().as("b").select().where(as("a").out("knows").as("b")).select().by("name").iterate());
+ g.V().as("a").out().as("b").select().where(as("a").out("knows").where(eq("b"))).select().by("name").forEachRemaining(System.out::println);
}
@Test