You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by va...@apache.org on 2022/12/02 22:43:02 UTC
[tinkerpop] branch TINKERPOP-2816 updated: fix for g_V_both_both_dedup_byXoutE_countX_name
This is an automated email from the ASF dual-hosted git repository.
valentyn pushed a commit to branch TINKERPOP-2816
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
The following commit(s) were added to refs/heads/TINKERPOP-2816 by this push:
new 2f87bc3bb2 fix for g_V_both_both_dedup_byXoutE_countX_name
2f87bc3bb2 is described below
commit 2f87bc3bb22a18d2b4a1e2903cc896bd95d6e76e
Author: Valentyn Kahamlyk <va...@bitquilltech.com>
AuthorDate: Fri Dec 2 14:42:55 2022 -0800
fix for g_V_both_both_dedup_byXoutE_countX_name
---
.../test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs | 10 +++++-----
gremlin-go/driver/cucumber/gremlin.go | 2 +-
.../gremlin-javascript/test/cucumber/gremlin.js | 2 +-
gremlin-test/features/filter/Dedup.feature | 6 +++---
.../gremlin/process/traversal/step/filter/DedupTest.java | 15 ++++++++++-----
.../gremlin/spark/SparkGraphFeatureIntegrateTest.java | 2 +-
.../tinkerpop/gremlin/tinkergraph/TinkerGraphWorld.java | 2 +-
7 files changed, 22 insertions(+), 17 deletions(-)
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
index 20f298d7e9..431687ef4c 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
@@ -106,7 +106,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
{"g_V_repeatXbothX_untilXname_eq_marko_or_loops_gt_1X_groupCount_byXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Repeat(__.Both()).Until((IPredicate) p["pred1"]).GroupCount<object>().By("name")}},
{"g_V_hasXname_markoX_repeatXoutE_inV_simplePathX_untilXhasXname_rippleXX_path_byXnameX_byXlabelX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("name","marko").Repeat(__.OutE().InV().SimplePath()).Until(__.Has("name","ripple")).Path().By("name").By(T.Label)}},
{"g_V_hasXloop_name_loopX_repeatXinX_timesX5X_path_by_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("loops","name","loop").Repeat(__.In()).Times(5).Path().By("name")}},
- {"g_V_repeatXout_repeatXoutX_timesX1XX_timesX1X_limitX1X_path_by_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Repeat(__.Out().Repeat(__.Out()).Times(1)).Times(1).Limit<object>(1).Path().By("name")}},
+ {"g_V_repeatXout_repeatXout_order_byXname_descXX_timesX1XX_timesX1X_limitX1X_path_byXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Repeat(__.Out().Repeat(__.Out().Order().By("name",Order.Desc)).Times(1)).Times(1).Limit<object>(1).Path().By("name")}},
{"g_V_repeatXoutXknowsXX_untilXrepeatXoutXcreatedXX_emitXhasXname_lopXXX_path_byXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Repeat(__.Out("knows")).Until(__.Repeat(__.Out("created")).Emit(__.Has("name","lop"))).Path().By("name")}},
{"g_V_repeatXrepeatXout_createdXX_untilXhasXname_rippleXXXemit_lang", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Repeat(__.Repeat(__.Out("created")).Until(__.Has("name","ripple"))).Emit().Values<object>("lang")}},
{"g_V_untilXconstantXtrueXX_repeatXrepeatXout_createdXX_untilXhasXname_rippleXXXemit_lang", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Until(__.Constant<object>(true)).Repeat(__.Repeat(__.Out("created")).Until(__.Has("name","ripple"))).Emit().Values<object>("lang")}},
@@ -148,7 +148,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
{"g_V_asXaX_both_asXbX_dedupXa_bX_byXlabelX_selectXa_bX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().As("a").Both().As("b").Dedup("a","b").By(T.Label).Select<object>("a","b")}},
{"g_V_asXaX_outXcreatedX_asXbX_inXcreatedX_asXcX_dedupXa_bX_path", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().As("a").Out("created").As("b").In("created").As("c").Dedup("a","b").Path()}},
{"g_V_outE_asXeX_inV_asXvX_selectXeX_order_byXweight_ascX_selectXvX_valuesXnameX_dedup", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().OutE().As("e").InV().As("v").Select<object>("e").Order().By("weight",Order.Asc).Select<object>("v").Values<object>("name").Dedup()}},
- {"g_V_both_both_dedup_byXoutE_countX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Both().Both().Dedup().By(__.OutE().Count()).Values<object>("name")}},
+ {"g_V_both_both_order_byXnameX_barrier_dedup_byXoutE_countX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Both().Both().Order().By("name").Barrier().Dedup().By(__.OutE().Count()).Values<object>("name")}},
{"g_V_groupCount_selectXvaluesX_unfold_dedup", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().GroupCount<object>().Select<object>(Column.Values).Unfold<object>().Dedup()}},
{"g_V_asXaX_repeatXbothX_timesX3X_emit_name_asXbX_group_byXselectXaXX_byXselectXbX_dedup_order_foldX_selectXvaluesX_unfold_dedup", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().As("a").Repeat(__.Both()).Times(3).Emit().Values<object>("name").As("b").Group<object,object>().By(__.Select<object>("a")).By(__.Select<object>("b").Dedup().Order().Fold()).Select<object>(Column.Values).Unfold<object>().Dedup()}},
{"g_V_repeatXdedupX_timesX2X_count", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Repeat(__.Dedup()).Times(2).Count()}},
@@ -351,8 +351,8 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
{"g_withStrategiesXReadOnlyStrategyX_V", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ReadOnlyStrategy()).V()}},
{"g_withStrategiesXReadOnlyStrategyX_V_outXknowsX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ReadOnlyStrategy()).V().Out("knows").Values<object>("name")}},
{"g_withStrategiesXReadOnlyStrategyX_addVXpersonX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ReadOnlyStrategy()).AddV("person")}},
- {"g_withStrategiesXReadOnlyStrategyX_addVXpersonX_fromXVX1XX_toXVX2XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ReadOnlyStrategy()).AddE("link").From(__.V(1)).To(__.V(2))}},
- {"g_withStrategiesXReadOnlyStrategyX_V_addVXpersonX_fromXVX1XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ReadOnlyStrategy()).V().AddE("link").From(__.V(1))}},
+ {"g_withStrategiesXReadOnlyStrategyX_addVXpersonX_fromXVX1XX_toXVX2XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ReadOnlyStrategy()).AddE("link").From(__.V(p["vid1"])).To(__.V(p["vid2"]))}},
+ {"g_withStrategiesXReadOnlyStrategyX_V_addVXpersonX_fromXVX1XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ReadOnlyStrategy()).V().AddE("link").From(__.V(p["vid1"]))}},
{"g_withStrategiesXReadOnlyStrategyX_V_propertyXname_joshX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ReadOnlyStrategy()).V().Property("name","josh")}},
{"g_withStrategiesXReadOnlyStrategyX_E_propertyXweight_0X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ReadOnlyStrategy()).E().Property("weight",0)}},
{"g_V_classic_recommendation", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("name","DARK STAR").As("a").Out("followedBy").Aggregate("stash").In("followedBy").Where(P.Neq("a").And(P.Without(new List<object> {"stash"}))).GroupCount<object>().Unfold<object>().Project<object>("x","y","z").By(__.Select<object>(Column.Keys).Values<object>("name")).By(__.Select<object>(Column.Keys).Values<object>("performances")).By(__.Select<ob [...]
@@ -713,7 +713,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
{"g_V_asXvX_mapXbothE_weight_foldX_sumXlocalX_asXsX_selectXv_sX_order_byXselectXsX_descX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().As("v").Map<object>(__.BothE().Values<object>("weight").Fold()).Sum<object>(Scope.Local).As("s").Select<object>("v","s").Order().By(__.Select<object>("s"),Order.Desc)}},
{"g_V_hasLabelXpersonX_fold_orderXlocalX_byXageX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasLabel("person").Fold().Order(Scope.Local).By("age")}},
{"g_V_both_hasLabelXpersonX_order_byXage_descX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Both().HasLabel("person").Order().By("age",Order.Desc).Values<object>("name")}},
- {"g_V_order_byXoutE_count_descX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Order().By(__.OutE().Count(),Order.Desc)}},
+ {"g_V_order_byXoutE_count_descX_byXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Order().By(__.OutE().Count(),Order.Desc).By("name")}},
{"g_V_hasLabelXpersonX_order_byXageX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasLabel("person").Order().By("age")}},
{"g_V_order_byXageX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Order().By("age")}},
{"g_V_fold_orderXlocalX_byXageX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Fold().Order(Scope.Local).By("age")}},
diff --git a/gremlin-go/driver/cucumber/gremlin.go b/gremlin-go/driver/cucumber/gremlin.go
index 21feccef6a..c235e6074d 100644
--- a/gremlin-go/driver/cucumber/gremlin.go
+++ b/gremlin-go/driver/cucumber/gremlin.go
@@ -119,7 +119,7 @@ var translationMap = map[string][]func(g *gremlingo.GraphTraversalSource, p map[
"g_V_asXaX_both_asXbX_dedupXa_bX_byXlabelX_selectXa_bX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().As("a").Both().As("b").Dedup("a", "b").By(gremlingo.T.Label).Select("a", "b")}},
"g_V_asXaX_outXcreatedX_asXbX_inXcreatedX_asXcX_dedupXa_bX_path": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().As("a").Out("created").As("b").In("created").As("c").Dedup("a", "b").Path()}},
"g_V_outE_asXeX_inV_asXvX_selectXeX_order_byXweight_ascX_selectXvX_valuesXnameX_dedup": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().OutE().As("e").InV().As("v").Select("e").Order().By("weight", gremlingo.Order.Asc).Select("v").Values("name").Dedup()}},
- "g_V_both_both_dedup_byXoutE_countX_name": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Both().Both().Dedup().By(gremlingo.T__.OutE().Count()).Values("name")}},
+ "g_V_both_both_order_byXnameX_barrier_dedup_byXoutE_countX_name": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Both().Both().Order().By("name").Barrier().Dedup().By(gremlingo.T__.OutE().Count()).Values("name")}},
"g_V_groupCount_selectXvaluesX_unfold_dedup": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().GroupCount().Select(gremlingo.Column.Values).Unfold().Dedup()}},
"g_V_asXaX_repeatXbothX_timesX3X_emit_name_asXbX_group_byXselectXaXX_byXselectXbX_dedup_order_foldX_selectXvaluesX_unfold_dedup": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().As("a").Repeat(gremlingo.T__.Both()).Times(3).Emit().Values("name").As("b").Group().By(gremlingo.T__.Select("a")).By(gremlingo.T__.Select("b").Dedup().Order().Fold()).Select(gremlingo.Column.Values).Unfold().Dedup()}},
"g_V_repeatXdedupX_timesX2X_count": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Repeat(gremlingo.T__.Dedup()).Times(2).Count()}},
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 49a6d910fd..8bd0b1234b 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
@@ -138,7 +138,7 @@ const gremlins = {
g_V_asXaX_both_asXbX_dedupXa_bX_byXlabelX_selectXa_bX: [function({g}) { return g.V().as("a").both().as("b").dedup("a","b").by(T.label).select("a","b") }],
g_V_asXaX_outXcreatedX_asXbX_inXcreatedX_asXcX_dedupXa_bX_path: [function({g}) { return g.V().as("a").out("created").as("b").in_("created").as("c").dedup("a","b").path() }],
g_V_outE_asXeX_inV_asXvX_selectXeX_order_byXweight_ascX_selectXvX_valuesXnameX_dedup: [function({g}) { return g.V().outE().as("e").inV().as("v").select("e").order().by("weight",Order.asc).select("v").values("name").dedup() }],
- g_V_both_both_dedup_byXoutE_countX_name: [function({g}) { return g.V().both().both().dedup().by(__.outE().count()).values("name") }],
+ g_V_both_both_order_byXnameX_barrier_dedup_byXoutE_countX_name: [function({g}) { return g.V().both().both().order().by("name").barrier().dedup().by(__.outE().count()).values("name") }],
g_V_groupCount_selectXvaluesX_unfold_dedup: [function({g}) { return g.V().groupCount().select(Column.values).unfold().dedup() }],
g_V_asXaX_repeatXbothX_timesX3X_emit_name_asXbX_group_byXselectXaXX_byXselectXbX_dedup_order_foldX_selectXvaluesX_unfold_dedup: [function({g}) { return g.V().as("a").repeat(__.both()).times(3).emit().values("name").as("b").group().by(__.select("a")).by(__.select("b").dedup().order().fold()).select(Column.values).unfold().dedup() }],
g_V_repeatXdedupX_timesX2X_count: [function({g}) { return g.V().repeat(__.dedup()).times(2).count() }],
diff --git a/gremlin-test/features/filter/Dedup.feature b/gremlin-test/features/filter/Dedup.feature
index e93d1d781c..18b15b07b6 100644
--- a/gremlin-test/features/filter/Dedup.feature
+++ b/gremlin-test/features/filter/Dedup.feature
@@ -195,11 +195,11 @@ Feature: Step - dedup()
| josh |
| ripple |
- Scenario: g_V_both_both_dedup_byXoutE_countX_name
+ Scenario: g_V_both_both_order_byXnameX_barrier_dedup_byXoutE_countX_name
Given the modern graph
And the traversal of
"""
- g.V().both().both().dedup().by(__.outE().count()).values("name")
+ g.V().both().both().order().by("name").barrier().dedup().by(__.outE().count()).values("name")
"""
When iterated to list
Then the result should be unordered
@@ -207,7 +207,7 @@ Feature: Step - dedup()
| marko |
| josh |
| peter |
- | ripple |
+ | lop |
Scenario: g_V_groupCount_selectXvaluesX_unfold_dedup
Given the modern graph
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupTest.java
index 161f787830..19f3aaf45f 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupTest.java
@@ -85,7 +85,7 @@ public abstract class DedupTest extends AbstractGremlinProcessTest {
public abstract Traversal<Vertex, String> get_g_V_outE_asXeX_inV_asXvX_selectXeX_order_byXweight_ascX_selectXvX_valuesXnameX_dedup();
- public abstract Traversal<Vertex, String> get_g_V_both_both_dedup_byXoutE_countX_name();
+ public abstract Traversal<Vertex, String> get_g_V_both_both_order_byXnameX_barrier_dedup_byXoutE_countX_name();
public abstract Traversal<Vertex, String> get_g_V_out_in_valuesXnameX_fold_dedupXlocalX_unfold();
@@ -311,11 +311,16 @@ public abstract class DedupTest extends AbstractGremlinProcessTest {
@Test
@LoadGraphWith(MODERN)
- public void g_V_both_both_dedup_byXoutE_countX_name() {
- final Traversal<Vertex, String> traversal = get_g_V_both_both_dedup_byXoutE_countX_name();
+ public void g_V_both_both_order_byXnameX_barrier_dedup_byXoutE_countX_name() {
+ final Traversal<Vertex, String> traversal = get_g_V_both_both_order_byXnameX_barrier_dedup_byXoutE_countX_name();
printTraversalForm(traversal);
final List<String> names = traversal.toList();
assertEquals(4, names.size());
+
+ System.out.println("----dedup");
+ names.forEach(System.out::println);
+ System.out.println("----");
+
assertTrue(names.contains("josh"));
assertTrue(names.contains("peter"));
assertTrue(names.contains("marko"));
@@ -451,8 +456,8 @@ public abstract class DedupTest extends AbstractGremlinProcessTest {
}
@Override
- public Traversal<Vertex, String> get_g_V_both_both_dedup_byXoutE_countX_name() {
- return g.V().both().both().dedup().by(__.outE().count()).values("name");
+ public Traversal<Vertex, String> get_g_V_both_both_order_byXnameX_barrier_dedup_byXoutE_countX_name() {
+ return g.V().both().both().order().by("name").barrier().dedup().by(__.outE().count()).values("name");
}
@Override
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 1e034690e8..71d84adf11 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
@@ -99,7 +99,7 @@ public class SparkGraphFeatureIntegrateTest {
add(Pair.with("g_V_hasXlangX_groupXaX_byXlangX_byXnameX_out_capXaX", skipReasonOrdering));
add(Pair.with("g_withStrategiesXProductiveByStrategyX_V_group_byXageX", skipReasonOrdering));
add(Pair.with("g_V_order_byXoutE_count_descX_byXnameX", skipReasonOrdering));
- add(Pair.with("g_V_both_both_dedup_byXoutE_countX_name", skipReasonOrdering));
+ add(Pair.with("g_V_both_both_order_byXnameX_barrier_dedup_byXoutE_countX_name", skipReasonOrdering));
add(Pair.with("g_V_mapXbothE_weight_foldX_order_byXsumXlocalX_descX", skipReasonOrdering));
add(Pair.with("g_V_hasLabelXsoftwareX_order_byXnameX_index_withXmapX", skipReasonOrdering));
}};
diff --git a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerGraphWorld.java b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerGraphWorld.java
index 1408fd2563..b233f277c9 100644
--- a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerGraphWorld.java
+++ b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerGraphWorld.java
@@ -131,7 +131,7 @@ public class TinkerGraphWorld implements World {
"g_V_hasXlangX_groupXaX_byXlangX_byXnameX_out_capXaX",
"g_withStrategiesXProductiveByStrategyX_V_group_byXageX",
"g_V_order_byXoutE_count_descX_byXnameX",
- "g_V_both_both_dedup_byXoutE_countX_name",
+ "g_V_both_both_order_byXnameX_barrier_dedup_byXoutE_countX_name",
"g_V_mapXbothE_weight_foldX_order_byXsumXlocalX_descX",
"g_V_hasLabelXsoftwareX_order_byXnameX_index_withXmapX",
"g_V_order_byXname_descX_barrier_dedup_age_name");