You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2017/09/11 17:32:03 UTC
[14/18] tinkerpop git commit: Merge branch 'TINKERPOP-1764' into tp32
Merge branch 'TINKERPOP-1764' into tp32
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/bef6b3fe
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/bef6b3fe
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/bef6b3fe
Branch: refs/heads/TINKERPOP-1756
Commit: bef6b3fea4303fe8204c4556a9bf1ee0615a6826
Parents: 99554b9 a822ee2
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Sep 5 16:46:14 2017 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Sep 5 16:46:14 2017 -0600
----------------------------------------------------------------------
CHANGELOG.asciidoc | 1 +
.../upgrade/release-3.2.x-incubating.asciidoc | 39 ++++++++++++++++++++
.../process/traversal/step/map/MatchStep.java | 6 ++-
.../traversal/step/map/GroovyMatchTest.groovy | 10 +++++
.../process/traversal/step/map/MatchTest.java | 22 +++++++++++
5 files changed, 76 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bef6b3fe/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --cc CHANGELOG.asciidoc
index e227a9e,102f74d..3ec3802
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@@ -26,8 -26,7 +26,9 @@@ image::https://raw.githubusercontent.co
TinkerPop 3.2.7 (Release Date: NOT OFFICIALLY RELEASED YET)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* The Console's `plugin.txt` file is only updated if there were manually uninstalled plugins.
+* Fixed a bug in `MatchStep` where mid-traversal `where()` variables were not being considered in start-scope.
+ * Generalized `MatchStep` to locally compute all clauses with barriers (not just reducing barriers).
* Ensured that plugins were applied in the order they were configured.
* Fixed a bug in `Neo4jGremlinPlugin` that prevented it from loading properly in the `GremlinPythonScriptEngine`.
* Fixed a bug in `ComputerVerificationStrategy` where child traversals were being analyzed prior to compilation.
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bef6b3fe/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchStep.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bef6b3fe/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMatchTest.groovy
----------------------------------------------------------------------
diff --cc gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMatchTest.groovy
index 45408ac,a93ae36..4c0fbaa
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMatchTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMatchTest.groovy
@@@ -379,14 -381,12 +379,24 @@@ public abstract class GroovyMatchTest
}
@Override
+ public Traversal<Vertex, String> get_g_V_matchXa_hasXsong_name_sunshineX__a_mapX0followedBy_weight_meanX_b__a_0followedBy_c__c_filterXweight_whereXgteXbXXX_outV_dX_selectXdX_byXnameX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", """
+ g.V().match(
+ __.as("a").has("song", "name", "HERE COMES SUNSHINE"),
+ __.as("a").map(inE("followedBy").weight.mean()).as("b"),
+ __.as("a").inE("followedBy").as("c"),
+ __.as("c").filter(values("weight").where(gte("b"))).outV.as("d")).
+ select("d").by("name");
++ """)
++ }
++
++ @Override
+ public Traversal<Vertex, Map<String, String>> get_g_V_matchXa_outEXcreatedX_order_byXweight_decrX_limitX1X_inV_b__b_hasXlang_javaXX_selectXa_bX_byXnameX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", """
+ g.V.match(
+ __.as("a").outE("created").order.by("weight", decr).limit(1).inV.as("b"),
+ __.as("b").has("lang", "java")).
+ select("a", "b").by("name")
""")
}
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bef6b3fe/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchTest.java
----------------------------------------------------------------------
diff --cc gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchTest.java
index f4bee28,5283637..cab3cbf
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchTest.java
@@@ -161,10 -160,9 +162,13 @@@ public abstract class MatchTest extend
// test inline counts
public abstract Traversal<Vertex, Long> get_g_V_matchXa_followedBy_count_isXgtX10XX_b__a_0followedBy_count_isXgtX10XX_bX_count();
+ // test mid-clause variables
+ public abstract Traversal<Vertex, String> get_g_V_matchXa_hasXsong_name_sunshineX__a_mapX0followedBy_weight_meanX_b__a_0followedBy_c__c_filterXweight_whereXgteXbXXX_outV_dX_selectXdX_byXnameX();
+
+ // test order barriers
+ public abstract Traversal<Vertex, Map<String, String>> get_g_V_matchXa_outEXcreatedX_order_byXweight_decrX_limitX1X_inV_b__b_hasXlang_javaXX_selectXa_bX_byXnameX();
+
+
@Test
@LoadGraphWith(MODERN)
public void g_V_valueMap_matchXa_selectXnameX_bX() {
@@@ -573,14 -571,15 +577,24 @@@
}
@Test
+ @LoadGraphWith(GRATEFUL)
+ public void g_V_matchXa_hasXsong_name_sunshineX__a_mapX0followedBy_weight_meanX_b__a_0followedBy_c__c_filterXweight_whereXgteXbXXX_outV_dX_selectXdX_byXnameX() {
+ final Traversal<Vertex, String> traversal = get_g_V_matchXa_hasXsong_name_sunshineX__a_mapX0followedBy_weight_meanX_b__a_0followedBy_c__c_filterXweight_whereXgteXbXXX_outV_dX_selectXdX_byXnameX();
+ printTraversalForm(traversal);
+ checkResults(Arrays.asList("THE MUSIC NEVER STOPPED", "PROMISED LAND", "PLAYING IN THE BAND",
+ "CASEY JONES", "BIG RIVER", "EL PASO", "LIBERTY", "LOOKS LIKE RAIN"), traversal);
+ }
+
++ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_matchXa_outEXcreatedX_order_byXweight_decrX_limitX1X_inV_b__b_hasXlang_javaXX_selectXa_bX_byXnameX() {
+ final Traversal<Vertex, Map<String, String>> traversal = get_g_V_matchXa_outEXcreatedX_order_byXweight_decrX_limitX1X_inV_b__b_hasXlang_javaXX_selectXa_bX_byXnameX();
+ printTraversalForm(traversal);
+ checkResults(makeMapList(2,
+ "a", "marko", "b", "lop",
+ "a", "peter", "b", "lop",
+ "a", "josh", "b", "ripple"), traversal);
+ }
public static class GreedyMatchTraversals extends Traversals {
@Before
@@@ -868,13 -867,11 +882,21 @@@
}
@Override
+ public Traversal<Vertex, String> get_g_V_matchXa_hasXsong_name_sunshineX__a_mapX0followedBy_weight_meanX_b__a_0followedBy_c__c_filterXweight_whereXgteXbXXX_outV_dX_selectXdX_byXnameX() {
+ return g.V().match(
+ as("a").has("song", "name", "HERE COMES SUNSHINE"),
+ as("a").map(inE("followedBy").values("weight").mean()).as("b"),
+ as("a").inE("followedBy").as("c"),
+ as("c").filter(values("weight").where(P.gte("b"))).outV().as("d")).
+ <String>select("d").by("name");
+ }
++
++ @Override
+ public Traversal<Vertex, Map<String, String>> get_g_V_matchXa_outEXcreatedX_order_byXweight_decrX_limitX1X_inV_b__b_hasXlang_javaXX_selectXa_bX_byXnameX() {
+ return g.V().match(
+ as("a").outE("created").order().by("weight", decr).limit(1).inV().as("b"),
+ as("b").has("lang", "java")).
+ <String>select("a", "b").by("name");
+ }
}
}