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/tp32
Commit: bef6b3fea4303fe8204c4556a9bf1ee0615a6826
Parents: 99554b9 a822ee2
Author: Marko A. Rodriguez <okramma...@gmail.com>
Authored: Tue Sep 5 16:46:14 2017 -0600
Committer: Marko A. Rodriguez <okramma...@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");
+         }
      }
  }

Reply via email to