You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ke...@apache.org on 2025/11/11 23:03:34 UTC

(tinkerpop) branch repeat-range-e created (now 29412fae34)

This is an automated email from the ASF dual-hosted git repository.

kenhuuu pushed a change to branch repeat-range-e
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


      at 29412fae34 Add missing tests for flatMap and repeat

This branch includes the following new commits:

     new 301f1eb466 Add warning in the-traversal about potential change to coalesce/flatMap CTR
     new 29412fae34 Add missing tests for flatMap and repeat

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(tinkerpop) 01/02: Add warning in the-traversal about potential change to coalesce/flatMap CTR

Posted by ke...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kenhuuu pushed a commit to branch repeat-range-e
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 301f1eb466a854d6f42096b36b3b7c84e35276f4
Author: Ken Hu <10...@users.noreply.github.com>
AuthorDate: Tue Nov 11 11:22:11 2025 -0800

    Add warning in the-traversal about potential change to coalesce/flatMap CTR
---
 docs/src/reference/the-traversal.asciidoc | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/docs/src/reference/the-traversal.asciidoc b/docs/src/reference/the-traversal.asciidoc
index 8b8f94dc1c..4ffafdcd37 100644
--- a/docs/src/reference/the-traversal.asciidoc
+++ b/docs/src/reference/the-traversal.asciidoc
@@ -1277,6 +1277,19 @@ g.V(1).property('nickname', 'okram')
 g.V().hasLabel('person').coalesce(values('nickname'), values('name'))
 ----
 
+Be aware that the current traverser behavior where the traverser appears to be unaffected by state modifying steps or
+account as a single bulk to side effects inside the `coalesce()` traversal is subject to change. The following are
+examples of some traversals on the "modern" graph whose output may change:
+
+[source,text]
+----
+gremlin> g.V(1, 1).barrier().coalesce(aggregate("x"), groupCount("x")).cap("x")
+==>[v[1]]
+
+gremlin> g.withSack(1.0f).V(1).barrier().coalesce(sack(mult).by("age"), constant(2)).sack()
+==>1.0
+----
+
 *Additional References*
 
 link:++https://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#coalesce(org.apache.tinkerpop.gremlin.process.traversal.Traversal...)++[`coalesce(Traversal...)`]
@@ -1862,6 +1875,19 @@ link:++https://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gre
 The `flatMap()` step maps the traverser from the current object to an `Iterator` of objects for the next step in the
 process. Please see the <<general-steps, General Steps>> section for more information.
 
+Be aware that the current traverser behavior where the traverser appears to be unaffected by state modifying steps or
+account as a single bulk to side effects inside the `flatMap()` traversal is subject to change. The following are
+examples of some traversals on the "modern" graph whose output may change:
+
+[source,text]
+----
+gremlin> g.V(1, 1).barrier().flatMap(aggregate("x")).cap("x")
+==>[v[1]]
+
+gremlin> g.withSack(1.0f).V(1).barrier().flatMap(sack(mult).by("age")).sack()
+==>1.0
+----
+
 *Additional References*
 
 link:++https://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#flatMap(org.apache.tinkerpop.gremlin.process.traversal.Traversal)++[`map(Traversal)`]


(tinkerpop) 02/02: Add missing tests for flatMap and repeat

Posted by ke...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kenhuuu pushed a commit to branch repeat-range-e
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 29412fae34540ed83c54e536bce521525ff0cd4a
Author: Ken Hu <10...@users.noreply.github.com>
AuthorDate: Tue Nov 11 15:03:19 2025 -0800

    Add missing tests for flatMap and repeat
---
 .../test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs    |  2 ++
 gremlin-go/driver/cucumber/gremlin.go                      |  2 ++
 .../javascript/gremlin-javascript/test/cucumber/gremlin.js |  2 ++
 gremlin-python/src/main/python/radish/gremlin.py           |  2 ++
 .../tinkerpop/gremlin/driver/remote/RemoteWorld.java       |  1 +
 .../tinkerpop/gremlin/test/features/branch/Repeat.feature  | 14 ++++++++++++++
 .../tinkerpop/gremlin/test/features/map/FlatMap.feature    | 14 +++++++++++++-
 .../gremlin/spark/SparkGraphFeatureIntegrateTest.java      |  1 +
 .../apache/tinkerpop/gremlin/tinkergraph/TinkerWorld.java  |  1 +
 9 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
index d575eb7c64..0807c925d8 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
@@ -180,6 +180,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
                {"g_VX3X_repeatXout_order_byXperformancesX_tailX3X_limitX1XX_timesX2X_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid3"]).Repeat(__.Out().Order().By("performances").Tail<object>(3).Limit<object>(1)).Times(2).Values<object>("name")}}, 
                {"g_VX3X_repeatXout_order_byXperformances_descX_limitX5X_tailX1XX_timesX2X_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid3"]).Repeat(__.Out().Order().By("performances", Order.Desc).Limit<object>(5).Tail<object>(1)).Times(2).Values<object>("name")}}, 
                {"g_VX3X_repeatXoutE_order_byXweightX_tailX2X_inVX_timesX2X_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid3"]).Repeat(__.OutE().Order().By("weight").Tail<object>(2).InV()).Times(2).Values<object>("name")}}, 
+               {"g_VX3X_repeatXoutE_order_byXweight_descX_limitX2X_inVX_timesX2X_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid3"]).Repeat(__.OutE().Order().By("weight", Order.Desc).Limit<object>(2).InV()).Times(2).Values<object>("name")}}, 
                {"g_unionXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>()}}, 
                {"g_unionXV_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>(__.V().Values<object>("name"))}}, 
                {"g_unionXVXv1X_VX4XX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>(__.V(p["vid1"]), __.V(p["vid4"])).Values<object>("name")}}, 
@@ -1168,6 +1169,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
                {"g_V_elementMapXname_age_nullX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().ElementMap<object>("name", "age", null)}}, 
                {"g_V_asXaX_flatMapXselectXaXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().As("a").FlatMap<object>(__.Select<object>("a"))}}, 
                {"g_V_valuesXnameX_flatMapXsplitXaX_unfoldX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("name").FlatMap<object>(__.Split("a").Unfold<object>())}}, 
+               {"g_V_flatMapXout_outX_path", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().FlatMap<object>(__.Out().Out()).Path()}}, 
                {"g_V_fold", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Fold()}}, 
                {"g_V_fold_unfold", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Fold().Unfold<object>()}}, 
                {"g_V_age_foldX0_plusX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Fold<object>(0, Operator.Sum)}}, 
diff --git a/gremlin-go/driver/cucumber/gremlin.go b/gremlin-go/driver/cucumber/gremlin.go
index 19fa18dbe8..a2c078be36 100644
--- a/gremlin-go/driver/cucumber/gremlin.go
+++ b/gremlin-go/driver/cucumber/gremlin.go
@@ -150,6 +150,7 @@ var translationMap = map[string][]func(g *gremlingo.GraphTraversalSource, p map[
     "g_VX3X_repeatXout_order_byXperformancesX_tailX3X_limitX1XX_timesX2X_valuesXnameX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V(p["vid3"]).Repeat(gremlingo.T__.Out().Order().By("performances").Tail(3).Limit(1)).Times(2).Values("name")}}, 
     "g_VX3X_repeatXout_order_byXperformances_descX_limitX5X_tailX1XX_timesX2X_valuesXnameX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V(p["vid3"]).Repeat(gremlingo.T__.Out().Order().By("performances", gremlingo.Order.Desc).Limit(5).Tail(1)).Times(2).Values("name")}}, 
     "g_VX3X_repeatXoutE_order_byXweightX_tailX2X_inVX_timesX2X_valuesXnameX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V(p["vid3"]).Repeat(gremlingo.T__.OutE().Order().By("weight").Tail(2).InV()).Times(2).Values("name")}}, 
+    "g_VX3X_repeatXoutE_order_byXweight_descX_limitX2X_inVX_timesX2X_valuesXnameX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V(p["vid3"]).Repeat(gremlingo.T__.OutE().Order().By("weight", gremlingo.Order.Desc).Limit(2).InV()).Times(2).Values("name")}}, 
     "g_unionXX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Union()}}, 
     "g_unionXV_name": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Union(gremlingo.T__.V().Values("name"))}}, 
     "g_unionXVXv1X_VX4XX_name": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Union(gremlingo.T__.V(p["vid1"]), gremlingo.T__.V(p["vid4"])).Values("name")}}, 
@@ -1138,6 +1139,7 @@ var translationMap = map[string][]func(g *gremlingo.GraphTraversalSource, p map[
     "g_V_elementMapXname_age_nullX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().ElementMap("name", "age", nil)}}, 
     "g_V_asXaX_flatMapXselectXaXX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().As("a").FlatMap(gremlingo.T__.Select("a"))}}, 
     "g_V_valuesXnameX_flatMapXsplitXaX_unfoldX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Values("name").FlatMap(gremlingo.T__.Split("a").Unfold())}}, 
+    "g_V_flatMapXout_outX_path": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().FlatMap(gremlingo.T__.Out().Out()).Path()}}, 
     "g_V_fold": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Fold()}}, 
     "g_V_fold_unfold": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Fold().Unfold()}}, 
     "g_V_age_foldX0_plusX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Values("age").Fold(0, gremlingo.Operator.Sum)}}, 
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js
index e022c7e336..52748b154e 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js
@@ -181,6 +181,7 @@ const gremlins = {
     g_VX3X_repeatXout_order_byXperformancesX_tailX3X_limitX1XX_timesX2X_valuesXnameX: [function({g, vid3}) { return g.V(vid3).repeat(__.out().order().by("performances").tail(3).limit(1)).times(2).values("name") }], 
     g_VX3X_repeatXout_order_byXperformances_descX_limitX5X_tailX1XX_timesX2X_valuesXnameX: [function({g, vid3}) { return g.V(vid3).repeat(__.out().order().by("performances", Order.desc).limit(5).tail(1)).times(2).values("name") }], 
     g_VX3X_repeatXoutE_order_byXweightX_tailX2X_inVX_timesX2X_valuesXnameX: [function({g, vid3}) { return g.V(vid3).repeat(__.outE().order().by("weight").tail(2).inV()).times(2).values("name") }], 
+    g_VX3X_repeatXoutE_order_byXweight_descX_limitX2X_inVX_timesX2X_valuesXnameX: [function({g, vid3}) { return g.V(vid3).repeat(__.outE().order().by("weight", Order.desc).limit(2).inV()).times(2).values("name") }], 
     g_unionXX: [function({g}) { return g.union() }], 
     g_unionXV_name: [function({g}) { return g.union(__.V().values("name")) }], 
     g_unionXVXv1X_VX4XX_name: [function({g, vid4, vid1}) { return g.union(__.V(vid1), __.V(vid4)).values("name") }], 
@@ -1169,6 +1170,7 @@ const gremlins = {
     g_V_elementMapXname_age_nullX: [function({g}) { return g.V().elementMap("name", "age", null) }], 
     g_V_asXaX_flatMapXselectXaXX: [function({g}) { return g.V().as("a").flatMap(__.select("a")) }], 
     g_V_valuesXnameX_flatMapXsplitXaX_unfoldX: [function({g}) { return g.V().values("name").flatMap(__.split("a").unfold()) }], 
+    g_V_flatMapXout_outX_path: [function({g}) { return g.V().flatMap(__.out().out()).path() }], 
     g_V_fold: [function({g}) { return g.V().fold() }], 
     g_V_fold_unfold: [function({g}) { return g.V().fold().unfold() }], 
     g_V_age_foldX0_plusX: [function({g}) { return g.V().values("age").fold(0, Operator.sum) }], 
diff --git a/gremlin-python/src/main/python/radish/gremlin.py b/gremlin-python/src/main/python/radish/gremlin.py
index bd7cf96d74..b33ce1abad 100644
--- a/gremlin-python/src/main/python/radish/gremlin.py
+++ b/gremlin-python/src/main/python/radish/gremlin.py
@@ -153,6 +153,7 @@ world.gremlins = {
     'g_VX3X_repeatXout_order_byXperformancesX_tailX3X_limitX1XX_timesX2X_valuesXnameX': [(lambda g, vid3=None:g.V(vid3).repeat(__.out().order().by('performances').tail(3).limit(1)).times(2).values('name'))], 
     'g_VX3X_repeatXout_order_byXperformances_descX_limitX5X_tailX1XX_timesX2X_valuesXnameX': [(lambda g, vid3=None:g.V(vid3).repeat(__.out().order().by('performances', Order.desc).limit(5).tail(1)).times(2).values('name'))], 
     'g_VX3X_repeatXoutE_order_byXweightX_tailX2X_inVX_timesX2X_valuesXnameX': [(lambda g, vid3=None:g.V(vid3).repeat(__.out_e().order().by('weight').tail(2).in_v()).times(2).values('name'))], 
+    'g_VX3X_repeatXoutE_order_byXweight_descX_limitX2X_inVX_timesX2X_valuesXnameX': [(lambda g, vid3=None:g.V(vid3).repeat(__.out_e().order().by('weight', Order.desc).limit(2).in_v()).times(2).values('name'))], 
     'g_unionXX': [(lambda g:g.union())], 
     'g_unionXV_name': [(lambda g:g.union(__.V().values('name')))], 
     'g_unionXVXv1X_VX4XX_name': [(lambda g, vid4=None,vid1=None:g.union(__.V(vid1), __.V(vid4)).values('name'))], 
@@ -1141,6 +1142,7 @@ world.gremlins = {
     'g_V_elementMapXname_age_nullX': [(lambda g:g.V().element_map('name', 'age', None))], 
     'g_V_asXaX_flatMapXselectXaXX': [(lambda g:g.V().as_('a').flat_map(__.select('a')))], 
     'g_V_valuesXnameX_flatMapXsplitXaX_unfoldX': [(lambda g:g.V().values('name').flat_map(__.split('a').unfold()))], 
+    'g_V_flatMapXout_outX_path': [(lambda g:g.V().flat_map(__.out().out()).path())], 
     'g_V_fold': [(lambda g:g.V().fold())], 
     'g_V_fold_unfold': [(lambda g:g.V().fold().unfold())], 
     'g_V_age_foldX0_plusX': [(lambda g:g.V().values('age').fold(0, Operator.sum_))], 
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/RemoteWorld.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/RemoteWorld.java
index 4c0716fa1f..3774805da5 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/RemoteWorld.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/RemoteWorld.java
@@ -147,6 +147,7 @@ public abstract class RemoteWorld implements World {
                 case "g_V_repeatXboth_repeatXorder_byXnameXX_timesX1XX_timesX1X":
                 case "g_V_order_byXname_descX_repeatXboth_simplePath_order_byXname_descXX_timesX2X_path":
                 case "g_VX3X_repeatXoutE_order_byXweightX_tailX2X_inVX_timesX2X_valuesXnameX":
+                case "g_VX3X_repeatXoutE_order_byXweight_descX_limitX2X_inVX_timesX2X_valuesXnameX":
                 case "g_VX3X_repeatXout_order_byXperformances_descX_limitX5X_tailX1XX_timesX2X_valuesXnameX":
                 case "g_VX3X_repeatXout_order_byXperformancesX_tailX3X_limitX1XX_timesX2X_valuesXnameX":
                 case "g_VX250X_repeatXout_localXorder_byXperformancesX_tailX1XXX_timesX2X_valuesXnameX":
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/branch/Repeat.feature b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/branch/Repeat.feature
index ae44d7e62a..f0bc665737 100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/branch/Repeat.feature
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/branch/Repeat.feature
@@ -817,3 +817,17 @@ Feature: Step - repeat()
       | result |
       | SUGAR MAGNOLIA |
       | AROUND AND AROUND |
+
+  # Test order on edge weight with limit in repeat leads to limited, ordered walk
+  Scenario: g_VX3X_repeatXoutE_order_byXweight_descX_limitX2X_inVX_timesX2X_valuesXnameX
+    Given the grateful graph
+    And using the parameter vid3 defined as "v[NOT FADE AWAY].id"
+    And the traversal of
+      """
+      g.V(vid3).repeat(__.outE().order().by("weight", Order.desc).limit(2).inV()).times(2).values("name")
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | SUGAR MAGNOLIA |
+      | AROUND AND AROUND |
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/map/FlatMap.feature b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/map/FlatMap.feature
index 356499f5fc..e0dd784e99 100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/map/FlatMap.feature
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/map/FlatMap.feature
@@ -53,4 +53,16 @@ Feature: Step - flatMap()
       | ripple |
       | peter |
 
-
+  # Objects from flatMap traversal should be hidden from path()
+  @GraphComputerVerificationStarGraphExceeded
+  Scenario: g_V_flatMapXout_outX_path
+    Given the modern graph
+    And the traversal of
+      """
+      g.V().flatMap(out().out()).path()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | p[v[marko],v[ripple]] |
+      | p[v[marko],v[lop]] |
diff --git a/spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/SparkGraphFeatureIntegrateTest.java b/spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/SparkGraphFeatureIntegrateTest.java
index 68f6f8db90..ace14a800a 100644
--- a/spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/SparkGraphFeatureIntegrateTest.java
+++ b/spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/SparkGraphFeatureIntegrateTest.java
@@ -88,6 +88,7 @@ public class SparkGraphFeatureIntegrateTest {
         add(Pair.with("g_V_repeatXboth_repeatXorder_byXnameXX_timesX1XX_timesX1X", skipReasonOrdering));
         add(Pair.with("g_V_order_byXname_descX_repeatXboth_simplePath_order_byXname_descXX_timesX2X_path", skipReasonOrdering));
         add(Pair.with("g_VX3X_repeatXoutE_order_byXweightX_tailX2X_inVX_timesX2X_valuesXnameX", skipReasonOrdering));
+        add(Pair.with("g_VX3X_repeatXoutE_order_byXweight_descX_limitX2X_inVX_timesX2X_valuesXnameX", skipReasonOrdering));
         add(Pair.with("g_VX3X_repeatXout_order_byXperformances_descX_limitX5X_tailX1XX_timesX2X_valuesXnameX", skipReasonOrdering));
         add(Pair.with("g_VX3X_repeatXout_order_byXperformancesX_tailX3X_limitX1XX_timesX2X_valuesXnameX", skipReasonOrdering));
         add(Pair.with("g_VX250X_repeatXout_localXorder_byXperformancesX_tailX1XXX_timesX2X_valuesXnameX", skipReasonOrdering));
diff --git a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerWorld.java b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerWorld.java
index 851b5375fd..365d211498 100644
--- a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerWorld.java
+++ b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerWorld.java
@@ -314,6 +314,7 @@ public abstract class TinkerWorld implements World {
                 case "g_V_repeatXboth_repeatXorder_byXnameXX_timesX1XX_timesX1X":
                 case "g_V_order_byXname_descX_repeatXboth_simplePath_order_byXname_descXX_timesX2X_path":
                 case "g_VX3X_repeatXoutE_order_byXweightX_tailX2X_inVX_timesX2X_valuesXnameX":
+                case "g_VX3X_repeatXoutE_order_byXweight_descX_limitX2X_inVX_timesX2X_valuesXnameX":
                 case "g_VX3X_repeatXout_order_byXperformances_descX_limitX5X_tailX1XX_timesX2X_valuesXnameX":
                 case "g_VX3X_repeatXout_order_byXperformancesX_tailX3X_limitX1XX_timesX2X_valuesXnameX":
                 case "g_VX250X_repeatXout_localXorder_byXperformancesX_tailX1XXX_timesX2X_valuesXnameX":