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 2018/03/07 15:53:22 UTC
[1/4] tinkerpop git commit: added new test case to verify new select
scope order
Repository: tinkerpop
Updated Branches:
refs/heads/master a35f009a0 -> abc11c872
added new test case to verify new select scope order
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/5535e5b3
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/5535e5b3
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/5535e5b3
Branch: refs/heads/master
Commit: 5535e5b364ebe0064ffb4bfda234f1c5a19e5353
Parents: 24f629b
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Mon Feb 26 11:19:21 2018 -0700
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Wed Mar 7 08:36:39 2018 -0700
----------------------------------------------------------------------
gremlin-test/features/map/Select.feature | 18 +++++++++++++++++-
.../process/traversal/step/map/SelectTest.java | 15 +++++++--------
2 files changed, 24 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5535e5b3/gremlin-test/features/map/Select.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Select.feature b/gremlin-test/features/map/Select.feature
index 35d9322..bf0a890 100644
--- a/gremlin-test/features/map/Select.feature
+++ b/gremlin-test/features/map/Select.feature
@@ -204,6 +204,22 @@ Feature: Step - select()
| v[ripple] |
| v[peter] |
+ Scenario: g_VX1X_groupXaX_byXconstantXaXX_byXnameX_selectXaX_selectXaX
+ Given the modern graph
+ And using the parameter v1Id defined as "v[marko].id"
+ And the traversal of
+ """
+ g.V(v1Id).group("a").
+ by(__.constant("a")).
+ by(__.values("name")).
+ barrier().
+ select("a").select("a")
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | marko |
+
Scenario: g_VX1X_asXhereX_out_selectXhereX
Given the modern graph
And using the parameter v1Id defined as "v[marko].id"
@@ -514,4 +530,4 @@ Feature: Step - select()
Then the result should be unordered
| result |
| d[2].l |
- | d[2].l |
\ No newline at end of file
+ | d[2].l |
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5535e5b3/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
index 3ca2068..6a7a43b 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
@@ -83,7 +83,7 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
public abstract Traversal<Vertex, Vertex> get_g_V_chooseXoutE_count_isX0X__asXaX__asXbXX_chooseXselectXaX__selectXaX__selectXbXX();
- public abstract Traversal<Integer, String> get_g_withSideEffectXa_a_markoX_injectX1X_selectXaX_select_XaX();
+ public abstract Traversal<Vertex, String> get_g_VX1X_groupXaX_byXconstantXaXX_byXnameX_selectXaX_selectXaX(final Object v1Id);
// below are original back()-tests
@@ -345,8 +345,8 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
@Test
@LoadGraphWith(MODERN)
- public void g_withSideEffectXa_a_markoX_injectX1X_selectXaX_select_XaX() {
- final Traversal<Integer, String> traversal = get_g_withSideEffectXa_a_markoX_injectX1X_selectXaX_select_XaX();
+ public void g_VX1X_groupXaX_byXconstantXaXX_byXnameX_selectXaX_selectXaX() {
+ final Traversal<Vertex, String> traversal = get_g_VX1X_groupXaX_byXconstantXaXX_byXnameX_selectXaX_selectXaX(convertToVertexId("marko"));
printTraversalForm(traversal);
assertTrue(traversal.hasNext());
assertEquals("marko", traversal.next());
@@ -658,7 +658,6 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
}
assertFalse(traversal.hasNext());
}
-
@Test
@LoadGraphWith(MODERN)
public void g_VX1X_asXaX_repeatXout_asXaXX_timesX2X_selectXfirst_aX() {
@@ -734,10 +733,10 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
return g.V().choose(__.outE().count().is(0L), __.as("a"), __.as("b")).choose(__.select("a"), __.select("a"), __.select("b"));
}
- public Traversal<Integer, String> get_g_withSideEffectXa_a_markoX_injectX1X_selectXaX_select_XaX() {
- final Map<String, String> m = new HashMap<>(1);
- m.put("a", "marko");
- return g.withSideEffect("a", m).inject(1).select("a").select("a");
+ public Traversal<Vertex, String> get_g_VX1X_groupXaX_byXconstantXaXX_byXnameX_selectXaX_selectXaX(final Object v1Id) {
+ return g.V(v1Id).group("a").by(__.constant("a")).by(__.values("name"))
+ .barrier() // TODO: this barrier() should not be necessary
+ .select("a").select("a");
}
// below are original back()-tests
[2/4] tinkerpop git commit: Changed order of `select()` scopes. Maps
(local objects) come firstm then side-effects, then paths.
Posted by dk...@apache.org.
Changed order of `select()` scopes. Maps (local objects) come firstm then side-effects, then paths.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/24f629b5
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/24f629b5
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/24f629b5
Branch: refs/heads/master
Commit: 24f629b5f2cf80596b3ea258219e86ea8c903766
Parents: a35f009
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Wed Feb 21 13:52:53 2018 -0700
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Wed Mar 7 08:36:39 2018 -0700
----------------------------------------------------------------------
.../gremlin/process/traversal/step/Scoping.java | 12 ++++++------
.../process/traversal/step/map/SelectTest.java | 18 ++++++++++++++++++
2 files changed, 24 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/24f629b5/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/Scoping.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/Scoping.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/Scoping.java
index c86f91f..da7b0eb 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/Scoping.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/Scoping.java
@@ -110,13 +110,13 @@ public interface Scoping {
public enum Variable {START, END}
public default <S> S getScopeValue(final Pop pop, final String key, final Traverser.Admin<?> traverser) throws IllegalArgumentException {
- if (traverser.getSideEffects().exists(key))
- return traverser.getSideEffects().get(key);
- ///
final Object object = traverser.get();
if (object instanceof Map && ((Map<String, S>) object).containsKey(key))
return ((Map<String, S>) object).get(key);
///
+ if (traverser.getSideEffects().exists(key))
+ return traverser.getSideEffects().get(key);
+ ///
final Path path = traverser.path();
if (path.hasLabel(key))
return path.get(pop, key);
@@ -125,13 +125,13 @@ public interface Scoping {
}
public default <S> S getNullableScopeValue(final Pop pop, final String key, final Traverser.Admin<?> traverser) {
- if (traverser.getSideEffects().exists(key))
- return traverser.getSideEffects().get(key);
- ///
final Object object = traverser.get();
if (object instanceof Map && ((Map<String, S>) object).containsKey(key))
return ((Map<String, S>) object).get(key);
///
+ if (traverser.getSideEffects().exists(key))
+ return traverser.getSideEffects().get(key);
+ ///
final Path path = traverser.path();
if (path.hasLabel(key))
return path.get(pop, key);
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/24f629b5/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
index 3620456..3ca2068 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
@@ -83,6 +83,8 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
public abstract Traversal<Vertex, Vertex> get_g_V_chooseXoutE_count_isX0X__asXaX__asXbXX_chooseXselectXaX__selectXaX__selectXbXX();
+ public abstract Traversal<Integer, String> get_g_withSideEffectXa_a_markoX_injectX1X_selectXaX_select_XaX();
+
// below are original back()-tests
public abstract Traversal<Vertex, Vertex> get_g_VX1X_asXhereX_out_selectXhereX(final Object v1Id);
@@ -341,6 +343,16 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
assertEquals(3, xCounter);
}
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_withSideEffectXa_a_markoX_injectX1X_selectXaX_select_XaX() {
+ final Traversal<Integer, String> traversal = get_g_withSideEffectXa_a_markoX_injectX1X_selectXaX_select_XaX();
+ printTraversalForm(traversal);
+ assertTrue(traversal.hasNext());
+ assertEquals("marko", traversal.next());
+ assertFalse(traversal.hasNext());
+ }
+
// below are original back()-tests
@Test
@@ -722,6 +734,12 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
return g.V().choose(__.outE().count().is(0L), __.as("a"), __.as("b")).choose(__.select("a"), __.select("a"), __.select("b"));
}
+ public Traversal<Integer, String> get_g_withSideEffectXa_a_markoX_injectX1X_selectXaX_select_XaX() {
+ final Map<String, String> m = new HashMap<>(1);
+ m.put("a", "marko");
+ return g.withSideEffect("a", m).inject(1).select("a").select("a");
+ }
+
// below are original back()-tests
@Override
[4/4] tinkerpop git commit: added a note in upgrade docs regarding
the change of order of select scopes
Posted by dk...@apache.org.
added a note in upgrade docs regarding the change of order of select scopes
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/abc11c87
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/abc11c87
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/abc11c87
Branch: refs/heads/master
Commit: abc11c8720b2eeb25163fdc1d9e86f0b4ab07d6f
Parents: 26684e3
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Fri Mar 2 22:39:05 2018 -0700
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Wed Mar 7 08:45:24 2018 -0700
----------------------------------------------------------------------
docs/src/upgrade/release-3.4.x.asciidoc | 43 +++++++++++++++++++++++++++-
1 file changed, 42 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/abc11c87/docs/src/upgrade/release-3.4.x.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/upgrade/release-3.4.x.asciidoc b/docs/src/upgrade/release-3.4.x.asciidoc
index 6f7ef11..1916da8 100644
--- a/docs/src/upgrade/release-3.4.x.asciidoc
+++ b/docs/src/upgrade/release-3.4.x.asciidoc
@@ -64,7 +64,6 @@ gremlin> g.V().group().
......1> by(label).
......2> by(outE().values("weight").sum())
==>[person:3.5]
-gremlin>
gremlin> g.V().group().
......1> by(label).
......2> by(coalesce(outE().values("weight"), constant(0)).sum())
@@ -73,3 +72,45 @@ gremlin> g.V().group().
See: link:https://issues.apache.org/jira/browse/TINKERPOP-1777[TINKERPOP-1777]
+==== Change in order of select() scopes
+
+The order of select scopes has been changed to: maps, side-effects, paths
+Previously the order was: side-effects, maps, paths - which made it almost impossible to select a specific map entry if a side-effect with the same name existed.
+
+The following snippets illustrate the changed behavior:
+
+[source,groovy]
+----
+gremlin> g.V(1).
+......1> group("a").
+......2> by(__.constant("a")).
+......3> by(__.values("name")).
+......4> select("a")
+==>[a:marko]
+gremlin> g.V(1).
+......1> group("a").
+......2> by(__.constant("a")).
+......3> by(__.values("name")).
+......4> select("a").select("a")
+==>[a:marko]
+----
+
+Above is the old behavior; the second `select("a")` has no effect, it selects the side-effect `a` again, although one would expect to get the map entry `a`. What follows is the new behavior:
+
+[source,groovy]
+----
+gremlin> g.V(1).
+......1> group("a").
+......2> by(__.constant("a")).
+......3> by(__.values("name")).
+......4> select("a")
+==>[a:marko]
+gremlin> g.V(1).
+......1> group("a").
+......2> by(__.constant("a")).
+......3> by(__.values("name")).
+......4> select("a").select("a")
+==>marko
+----
+
+See: link:https://issues.apache.org/jira/browse/TINKERPOP-1522[TINKERPOP-1522]
[3/4] tinkerpop git commit: updated CHANGELOG
Posted by dk...@apache.org.
updated CHANGELOG
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/26684e38
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/26684e38
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/26684e38
Branch: refs/heads/master
Commit: 26684e38ce3db0a6bbe5ac6607b220d84e5c9ce5
Parents: 5535e5b
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Tue Feb 27 08:49:17 2018 -0700
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Wed Mar 7 08:37:27 2018 -0700
----------------------------------------------------------------------
CHANGELOG.asciidoc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/26684e38/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index b4511ad..c74bb1b 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -26,7 +26,7 @@ NEED AND IMAGE
This release also includes changes from <<release-3-3-2, 3.3.2>>.
* Fixed a bug in `ReducingBarrierStep`, that returned the provided seed value despite no elements being available.
-
+* Changed the order of `select()` scopes. The order is now: maps, side-effects, paths.
== TinkerPop 3.3.0 (Gremlin Symphony #40 in G Minor)