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 2017/05/28 13:42:34 UTC
tinkerpop git commit: Fixed folding of multiple `hasId()` into
`GraphStep`.
Repository: tinkerpop
Updated Branches:
refs/heads/tp32 2bc5431ad -> 5c41a827f
Fixed folding of multiple `hasId()` into `GraphStep`.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/5c41a827
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/5c41a827
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/5c41a827
Branch: refs/heads/tp32
Commit: 5c41a827f261889012cb368a59a07db8d18f6961
Parents: 2bc5431
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Sun May 28 15:41:34 2017 +0200
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Sun May 28 15:41:34 2017 +0200
----------------------------------------------------------------------
.../process/traversal/step/map/GraphStep.java | 3 +-
.../traversal/step/filter/GroovyHasTest.groovy | 10 +++++++
.../process/traversal/step/filter/HasTest.java | 31 ++++++++++++++++++++
3 files changed, 43 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5c41a827/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GraphStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GraphStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GraphStep.java
index 03a0bc4..7ab7d13 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GraphStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GraphStep.java
@@ -181,7 +181,8 @@ public class GraphStep<S, E extends Element> extends AbstractStep<S, E> implemen
* @return true if the {@link HasContainer} updated ids and thus, was processed.
*/
public static boolean processHasContainerIds(final GraphStep<?, ?> graphStep, final HasContainer hasContainer) {
- if (hasContainer.getKey().equals(T.id.getAccessor()) && (hasContainer.getBiPredicate() == Compare.eq || hasContainer.getBiPredicate() == Contains.within)) {
+ if (hasContainer.getKey().equals(T.id.getAccessor()) && graphStep.ids.length == 0 &&
+ (hasContainer.getBiPredicate() == Compare.eq || hasContainer.getBiPredicate() == Contains.within)) {
graphStep.addIds(hasContainer.getValue());
return true;
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5c41a827/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasTest.groovy
index 0a7729c..abaabf9 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasTest.groovy
@@ -159,5 +159,15 @@ public abstract class GroovyHasTest {
public Traversal<Vertex, String> get_g_V_hasNotXageX_name() {
new ScriptTraversal<>(g, "gremlin-groovy", "g.V.hasNot('age').name");
}
+
+ @Override
+ public Traversal<Vertex, Vertex> get_g_V_hasIdX1X_hasIdX2X(final Object v1Id, final Object v2Id) {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V.hasId(v1Id).hasId(v2Id)", "v1Id", v1Id, "v2Id", v2Id)
+ }
+
+ @Override
+ public Traversal<Vertex, Vertex> get_g_V_hasLabelXpersonX_hasLabelXsoftwareX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V.hasLabel('person').hasId('software')")
+ }
}
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5c41a827/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
index d132eb1..01f20a7 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
@@ -104,6 +104,10 @@ public abstract class HasTest extends AbstractGremlinProcessTest {
public abstract Traversal<Vertex, String> get_g_V_hasNotXageX_name();
+ public abstract Traversal<Vertex, Vertex> get_g_V_hasIdX1X_hasIdX2X(final Object v1Id, final Object v2Id);
+
+ public abstract Traversal<Vertex, Vertex> get_g_V_hasLabelXpersonX_hasLabelXsoftwareX();
+
@Test
@LoadGraphWith(MODERN)
public void g_V_outXcreatedX_hasXname__mapXlengthX_isXgtX3XXX_name() {
@@ -427,6 +431,23 @@ public abstract class HasTest extends AbstractGremlinProcessTest {
checkResults(Arrays.asList("lop", "ripple"), traversal);
}
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_hasIdX1X_hasIdX2X() {
+ final Traversal<Vertex, Vertex> traversal = get_g_V_hasIdX1X_hasIdX2X(
+ convertToVertexId("marko"), convertToVertexId("vadas")
+ );
+ printTraversalForm(traversal);
+ assertFalse(traversal.hasNext());
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_hasLabelXpersonX_hasLabelXsoftwareX() {
+ final Traversal<Vertex, Vertex> traversal = get_g_V_hasLabelXpersonX_hasLabelXsoftwareX();
+ printTraversalForm(traversal);
+ assertFalse(traversal.hasNext());
+ }
public static class Traversals extends HasTest {
@Override
@@ -558,5 +579,15 @@ public abstract class HasTest extends AbstractGremlinProcessTest {
public Traversal<Vertex, String> get_g_V_hasNotXageX_name() {
return g.V().hasNot("age").values("name");
}
+
+ @Override
+ public Traversal<Vertex, Vertex> get_g_V_hasIdX1X_hasIdX2X(final Object v1Id, final Object v2Id) {
+ return g.V().hasId(v1Id).hasId(v2Id);
+ }
+
+ @Override
+ public Traversal<Vertex, Vertex> get_g_V_hasLabelXpersonX_hasLabelXsoftwareX() {
+ return g.V().hasLabel("person").hasId("software");
+ }
}
}