This is an automated email from the ASF dual-hosted git repository. colegreer pushed a commit to branch 3.8-dev in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit fae1dcc3629904f770897616023f9397df568341 Merge: cdab3784c0 7e9615ef3b Author: Cole Greer <[email protected]> AuthorDate: Wed Apr 15 11:50:18 2026 -0700 Merge branch '3.7-dev' into 3.8-dev CHANGELOG.asciidoc | 2 ++ docs/src/upgrade/release-3.7.x.asciidoc | 29 ++++++++++++++++++++++ .../process/traversal/step/map/ConjoinStep.java | 2 +- .../traversal/step/map/ConjoinStepTest.java | 3 ++- .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs | 18 ++++++++++++++ gremlin-go/driver/cucumber/gremlin.go | 2 ++ .../gremlin-javascript/test/cucumber/gremlin.js | 2 ++ .../src/main/python/tests/feature/gremlin.py | 2 ++ .../scripts/generate-modern-readonly.groovy | 2 +- .../gremlin/test/features/map/Conjoin.feature | 24 ++++++++++++++++++ 10 files changed, 83 insertions(+), 3 deletions(-) diff --cc gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs index 727b83511b,0a8e187dc2..d3f12b3e83 --- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs +++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs @@@ -1059,26 -620,28 +1059,44 @@@ namespace Gremlin.Net.IntegrationTest.G {"g_hasLabelXpersonX_valuesXnameX_asXaX_constantXMrX_concatXselectXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values<object>("name").As("a").Constant<object>("Mr.").Concat(__.Select<object>("a"))}}, {"g_hasLabelXsoftwareX_asXaX_valuesXnameX_concatXunsesX_concatXselectXaXvaluesXlangX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasLabel("software").As("a").Values<object>("name").Concat(" uses ").Concat(__.Select<object>("a").Values<object>("lang"))}}, {"g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_labelX_concatXselectXaX_inV_valuesXnameXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE().As("a").V(p["vid1"]).Values<object>("name").Concat(__.Select<object>("a").Label()).Concat(__.Select<object>("a").InV().Values<object>("name"))}}, ++<<<<<<< HEAD + {"g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_label_selectXaX_inV_valuesXnameXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE().As("a").V(p["vid1"]).Values<object>("name").Concat(__.Select<object>("a").Label(), __.Select<object>("a").InV().Values<object>("name"))}}, + {"g_addVXconstantXprefix_X_concatXVX1X_labelX_label", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("person").Property("name", "marko").Property("age", 29).As("marko").AddV("person").Property("name", "vadas").Property("age", 27).As("vadas").AddV("software").Property("name", "lop").Property("lang", "java").As("lop").AddV("person").Property("name", "josh").Property("age", 32).As("josh").AddV("software").Property("name", "rippl [...] + {"g_injectXnullX_conjoinX1X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(null).Conjoin((string) "1")}}, + {"g_V_valuesXnameX_conjoinX1X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("name").Conjoin((string) "1")}}, + {"g_V_valuesXnonexistantX_fold_conjoinX_X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("nonexistant").Fold().Conjoin((string) ";")}}, + {"g_V_valuesXnameX_order_fold_conjoinX_X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("name").Order().Fold().Conjoin((string) "_")}}, + {"g_V_valuesXageX_order_fold_conjoinX_X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Order().Fold().Conjoin((string) ";")}}, + {"g_V_out_path_byXvaluesXnameX_toUpperX_conjoinXMARKOX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out().Path().By(__.Values<object>("name").ToUpper()).Conjoin((string) "MARKO")}}, + {"g_injectXmarkoX_conjoinX_X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(new List<object> { "marko" }).Conjoin((string) "-")}}, + {"g_V_valueMapXlocationX_selectXvaluesX_unfold_orderXlocalX_conjoinX1X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().ValueMap<object, object>("location").Select<object>(Column.Values).Unfold<object>().Order(Scope.Local).Conjoin((string) "1")}}, + {"g_V_out_out_path_byXnameX_conjoinXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out().Out().Path().By("name").Conjoin((string) "")}}, + {"g_injectXa_null_bX_conjoinXxyzX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(new List<object> { "a", null, "b" }).Conjoin((string) "xyz")}}, + {"g_injectX3_threeX_conjoinX_X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(new List<object> { 3, "three" }).Conjoin((string) ";")}}, ++======= + {"g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_label_selectXaX_inV_valuesXnameXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE().As("a").V(p["vid1"]).Values<object>("name").Concat(__.Select<object>("a").Label(),__.Select<object>("a").InV().Values<object>("name"))}}, + {"g_addVXconstantXprefix_X_concatXVX1X_labelX_label", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("person").Property("name","marko").Property("age",29).As("marko").AddV("person").Property("name","vadas").Property("age",27).As("vadas").AddV("software").Property("name","lop").Property("lang","java").As("lop").AddV("person").Property("name","josh").Property("age",32).As("josh").AddV("software").Property("name","ripple").Prope [...] + {"g_injectXnullX_conjoinX1X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(null).Conjoin("1")}}, + {"g_V_valuesXnameX_conjoinX1X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("name").Conjoin("1")}}, + {"g_V_valuesXnonexistantX_fold_conjoinX_X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("nonexistant").Fold().Conjoin(";")}}, + {"g_V_valuesXnameX_order_fold_conjoinX_X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("name").Order().Fold().Conjoin("_")}}, + {"g_V_valuesXageX_order_fold_conjoinX_X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Order().Fold().Conjoin(";")}}, + {"g_V_out_path_byXvaluesXnameX_toUpperX_conjoinXMARKOX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out().Path().By(__.Values<object>("name").ToUpper()).Conjoin("MARKO")}}, + {"g_injectXmarkoX_conjoinX_X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject(p["xx1"]).Conjoin("-")}}, + {"g_V_valueMapXlocationX_selectXvaluesX_unfold_orderXlocalX_conjoinX1X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().ValueMap<object,object>("location").Select<object>(Column.Values).Unfold<object>().Order(Scope.Local).Conjoin("1")}}, + {"g_V_out_out_path_byXnameX_conjoinXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out().Out().Path().By("name").Conjoin("")}}, + {"g_injectXa_null_bX_conjoinXxyzX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject(p["xx1"]).Conjoin("xyz")}}, + {"g_injectX3_threeX_conjoinX_X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject(p["xx1"]).Conjoin(";")}}, + {"g_injectXnull_a_null_bX_conjoinXplusX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject(p["xx1"]).Conjoin("+")}}, + {"g_injectXnull_nullX_conjoinXplusX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject(p["xx1"]).Conjoin("+")}}, ++>>>>>>> 3.7-dev {"g_V_connectedComponent_hasXcomponentX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().ConnectedComponent().Has("gremlin.connectedComponentVertexProgram.component")}}, {"g_V_dedup_connectedComponent_hasXcomponentX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Dedup().ConnectedComponent().Has("gremlin.connectedComponentVertexProgram.component")}}, - {"g_V_hasLabelXsoftwareX_connectedComponent_project_byXnameX_byXcomponentX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasLabel("software").ConnectedComponent().Project<object>("name","component").By("name").By("gremlin.connectedComponentVertexProgram.component")}}, - {"g_V_connectedComponent_withXEDGES_bothEXknowsXX_withXPROPERTY_NAME_clusterX_project_byXnameX_byXclusterX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasLabel("person").ConnectedComponent().With("~tinkerpop.connectedComponent.edges",__.BothE("knows")).With("~tinkerpop.connectedComponent.propertyName","cluster").Project<object>("name","cluster").By("name").By("cluster")}}, + {"g_V_hasLabelXsoftwareX_connectedComponent_project_byXnameX_byXcomponentX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasLabel("software").ConnectedComponent().Project<object>("name", "component").By("name").By("gremlin.connectedComponentVertexProgram.component")}}, + {"g_V_connectedComponent_withXEDGES_bothEXknowsXX_withXPROPERTY_NAME_clusterX_project_byXnameX_byXclusterX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasLabel("person").ConnectedComponent().With("~tinkerpop.connectedComponent.edges", __.BothE("knows")).With("~tinkerpop.connectedComponent.propertyName", "cluster").Project<object>("name", "cluster").By("name").By("cluster")}}, {"g_V_constantX123X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Constant<object>(123)}}, {"g_V_constantXnullX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Constant<object>(null)}}, - {"g_V_chooseXhasLabelXpersonX_valuesXnameX_constantXinhumanXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Choose<object>(__.HasLabel("person"),__.Values<object>("name"),__.Constant<object>("inhuman"))}}, + {"g_V_chooseXhasLabelXpersonX_valuesXnameX_constantXinhumanXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Choose<object>(__.HasLabel("person"), __.Values<object>("name"), __.Constant<object>("inhuman"))}}, {"g_V_count", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Count()}}, {"g_V_out_count", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out().Count()}}, {"g_V_both_both_count", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Both().Both().Count()}}, diff --cc gremlin-go/driver/cucumber/gremlin.go index 774c771562,ba1a6b1ae0..43d5632dff --- a/gremlin-go/driver/cucumber/gremlin.go +++ b/gremlin-go/driver/cucumber/gremlin.go @@@ -1037,11 -599,13 +1037,13 @@@ var translationMap = map[string][]func( "g_V_valuesXnameX_order_fold_conjoinX_X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Values("name").Order().Fold().Conjoin("_")}}, "g_V_valuesXageX_order_fold_conjoinX_X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Values("age").Order().Fold().Conjoin(";")}}, "g_V_out_path_byXvaluesXnameX_toUpperX_conjoinXMARKOX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Out().Path().By(gremlingo.T__.Values("name").ToUpper()).Conjoin("MARKO")}}, - "g_injectXmarkoX_conjoinX_X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(p["xx1"]).Conjoin("-")}}, + "g_injectXmarkoX_conjoinX_X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject([]interface{}{"marko"}).Conjoin("-")}}, "g_V_valueMapXlocationX_selectXvaluesX_unfold_orderXlocalX_conjoinX1X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().ValueMap("location").Select(gremlingo.Column.Values).Unfold().Order(gremlingo.Scope.Local).Conjoin("1")}}, "g_V_out_out_path_byXnameX_conjoinXX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Out().Out().Path().By("name").Conjoin("")}}, - "g_injectXa_null_bX_conjoinXxyzX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(p["xx1"]).Conjoin("xyz")}}, - "g_injectX3_threeX_conjoinX_X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(p["xx1"]).Conjoin(";")}}, - "g_injectXnull_a_null_bX_conjoinXplusX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(p["xx1"]).Conjoin("+")}}, - "g_injectXnull_nullX_conjoinXplusX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(p["xx1"]).Conjoin("+")}}, + "g_injectXa_null_bX_conjoinXxyzX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject([]interface{}{"a", nil, "b"}).Conjoin("xyz")}}, + "g_injectX3_threeX_conjoinX_X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject([]interface{}{int32(3), "three"}).Conjoin(";")}}, ++ "g_injectXnull_a_null_bX_conjoinXplusX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject([]interface{}{nil, "a", nil, "b"}).Conjoin("+")}}, ++ "g_injectXnull_nullX_conjoinXplusX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject([]interface{}{nil, nil}).Conjoin("+")}}, "g_V_connectedComponent_hasXcomponentX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().ConnectedComponent().Has("gremlin.connectedComponentVertexProgram.component")}}, "g_V_dedup_connectedComponent_hasXcomponentX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Dedup().ConnectedComponent().Has("gremlin.connectedComponentVertexProgram.component")}}, "g_V_hasLabelXsoftwareX_connectedComponent_project_byXnameX_byXcomponentX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().HasLabel("software").ConnectedComponent().Project("name", "component").By("name").By("gremlin.connectedComponentVertexProgram.component")}}, diff --cc gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js index cf75e374a6,b6de78479b..8fb749b903 --- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js +++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js @@@ -1068,18 -619,20 +1068,20 @@@ const gremlins = g_V_valuesXnameX_order_fold_conjoinX_X: [function({g}) { return g.V().values("name").order().fold().conjoin("_") }], g_V_valuesXageX_order_fold_conjoinX_X: [function({g}) { return g.V().values("age").order().fold().conjoin(";") }], g_V_out_path_byXvaluesXnameX_toUpperX_conjoinXMARKOX: [function({g}) { return g.V().out().path().by(__.values("name").toUpper()).conjoin("MARKO") }], - g_injectXmarkoX_conjoinX_X: [function({g, xx1}) { return g.inject(xx1).conjoin("-") }], + g_injectXmarkoX_conjoinX_X: [function({g}) { return g.inject(["marko"]).conjoin("-") }], g_V_valueMapXlocationX_selectXvaluesX_unfold_orderXlocalX_conjoinX1X: [function({g}) { return g.V().valueMap("location").select(Column.values).unfold().order(Scope.local).conjoin("1") }], g_V_out_out_path_byXnameX_conjoinXX: [function({g}) { return g.V().out().out().path().by("name").conjoin("") }], - g_injectXa_null_bX_conjoinXxyzX: [function({g, xx1}) { return g.inject(xx1).conjoin("xyz") }], - g_injectX3_threeX_conjoinX_X: [function({g, xx1}) { return g.inject(xx1).conjoin(";") }], - g_injectXnull_a_null_bX_conjoinXplusX: [function({g, xx1}) { return g.inject(xx1).conjoin("+") }], - g_injectXnull_nullX_conjoinXplusX: [function({g, xx1}) { return g.inject(xx1).conjoin("+") }], + g_injectXa_null_bX_conjoinXxyzX: [function({g}) { return g.inject(["a", null, "b"]).conjoin("xyz") }], + g_injectX3_threeX_conjoinX_X: [function({g}) { return g.inject([3, "three"]).conjoin(";") }], ++ g_injectXnull_a_null_bX_conjoinXplusX: [function({g}) { return g.inject([null, "a", null, "b"]).conjoin("+") }], ++ g_injectXnull_nullX_conjoinXplusX: [function({g}) { return g.inject([null, null]).conjoin("+") }], g_V_connectedComponent_hasXcomponentX: [function({g}) { return g.V().connectedComponent().has("gremlin.connectedComponentVertexProgram.component") }], g_V_dedup_connectedComponent_hasXcomponentX: [function({g}) { return g.V().dedup().connectedComponent().has("gremlin.connectedComponentVertexProgram.component") }], - g_V_hasLabelXsoftwareX_connectedComponent_project_byXnameX_byXcomponentX: [function({g}) { return g.V().hasLabel("software").connectedComponent().project("name","component").by("name").by("gremlin.connectedComponentVertexProgram.component") }], - g_V_connectedComponent_withXEDGES_bothEXknowsXX_withXPROPERTY_NAME_clusterX_project_byXnameX_byXclusterX: [function({g}) { return g.V().hasLabel("person").connectedComponent().with_("~tinkerpop.connectedComponent.edges",__.bothE("knows")).with_("~tinkerpop.connectedComponent.propertyName","cluster").project("name","cluster").by("name").by("cluster") }], + g_V_hasLabelXsoftwareX_connectedComponent_project_byXnameX_byXcomponentX: [function({g}) { return g.V().hasLabel("software").connectedComponent().project("name", "component").by("name").by("gremlin.connectedComponentVertexProgram.component") }], + g_V_connectedComponent_withXEDGES_bothEXknowsXX_withXPROPERTY_NAME_clusterX_project_byXnameX_byXclusterX: [function({g}) { return g.V().hasLabel("person").connectedComponent().with_("~tinkerpop.connectedComponent.edges", __.bothE("knows")).with_("~tinkerpop.connectedComponent.propertyName", "cluster").project("name", "cluster").by("name").by("cluster") }], g_V_constantX123X: [function({g}) { return g.V().constant(123) }], g_V_constantXnullX: [function({g}) { return g.V().constant(null) }], - g_V_chooseXhasLabelXpersonX_valuesXnameX_constantXinhumanXX: [function({g}) { return g.V().choose(__.hasLabel("person"),__.values("name"),__.constant("inhuman")) }], + g_V_chooseXhasLabelXpersonX_valuesXnameX_constantXinhumanXX: [function({g}) { return g.V().choose(__.hasLabel("person"), __.values("name"), __.constant("inhuman")) }], g_V_count: [function({g}) { return g.V().count() }], g_V_out_count: [function({g}) { return g.V().out().count() }], g_V_both_both_count: [function({g}) { return g.V().both().both().count() }], diff --cc gremlin-python/src/main/python/tests/feature/gremlin.py index 38d68ae9e4,3d14a7224d..ccdc643e1b --- a/gremlin-python/src/main/python/tests/feature/gremlin.py +++ b/gremlin-python/src/main/python/tests/feature/gremlin.py @@@ -972,86 -533,88 +972,88 @@@ world.gremlins = 'g_V_fold_asStringXlocalX_orderXlocalX': [(lambda g:g.V().fold().as_string(Scope.local).order(Scope.local))], 'g_E_asString': [(lambda g:g.E().as_string())], 'g_V_properties': [(lambda g:g.V().properties().as_string())], - 'g_V_hasLabelXpersonX_valuesXageX_asString': [(lambda g:g.V().has_label('person').age.as_string())], - 'g_V_hasLabelXpersonX_valuesXageX_order_fold_asStringXlocalX': [(lambda g:g.V().has_label('person').age.order().fold().as_string(Scope.local))], - 'g_V_hasLabelXpersonX_valuesXageX_asString_concatX_years_oldX': [(lambda g:g.V().has_label('person').age.as_string().concat(' years old'))], + 'g_V_hasLabelXpersonX_valuesXageX_asString': [(lambda g:g.V().has_label('person').values('age').as_string())], + 'g_V_hasLabelXpersonX_valuesXageX_order_fold_asStringXlocalX': [(lambda g:g.V().has_label('person').values('age').order().fold().as_string(Scope.local))], + 'g_V_hasLabelXpersonX_valuesXageX_asString_concatX_years_oldX': [(lambda g:g.V().has_label('person').values('age').as_string().concat(' years old'))], 'g_call': [(lambda g:g.call())], 'g_callXlistX': [(lambda g:g.call('--list'))], - 'g_callXlistX_withXstring_stringX': [(lambda g:g.call('--list').with_('service','tinker.search'))], - 'g_callXlistX_withXstring_traversalX': [(lambda g:g.call('--list').with_('service',__.constant('tinker.search')))], - 'g_callXlist_mapX': [(lambda g, xx1=None:g.call('--list',xx1))], - 'g_callXlist_traversalX': [(lambda g:g.call('--list',__.project('service').by(__.constant('tinker.search'))))], - 'g_callXlist_map_traversalX': [(lambda g, xx1=None:g.call('--list',xx1,__.project('service').by(__.constant('tinker.search'))))], - 'g_callXsearch_mapX': [(lambda g, xx1=None:g.call('tinker.search',xx1).element())], - 'g_callXsearch_traversalX': [(lambda g:g.call('tinker.search',__.project('search').by(__.constant('vada'))).element())], - 'g_callXsearchX_withXstring_stringX': [(lambda g:g.call('tinker.search').with_('search','vada').element())], - 'g_callXsearchX_withXstring_traversalX': [(lambda g:g.call('tinker.search').with_('search',__.constant('vada')).element())], - 'g_callXsearch_mapX_withXstring_VertexX': [(lambda g, xx1=None:g.call('tinker.search',xx1).with_('type','Vertex').element())], - 'g_callXsearch_mapX_withXstring_EdgeX': [(lambda g, xx1=None:g.call('tinker.search',xx1).with_('type','Edge').element())], - 'g_callXsearch_mapX_withXstring_VertexPropertyX': [(lambda g, xx1=None:g.call('tinker.search',xx1).with_('type','VertexProperty').element())], - 'g_V_callXdcX': [(lambda g:g.V().as_('v').call('tinker.degree.centrality').project('vertex','degree').by(__.select('v')).by())], + 'g_callXlistX_withXstring_stringX': [(lambda g:g.call('--list').with_('service', 'tinker.search'))], + 'g_callXlistX_withXstring_traversalX': [(lambda g:g.call('--list').with_('service', __.constant('tinker.search')))], + 'g_callXlist_mapX': [(lambda g, xx1=None:g.call('--list', xx1))], + 'g_callXlist_traversalX': [(lambda g:g.call('--list', __.project('service').by(__.constant('tinker.search'))))], + 'g_callXlist_map_traversalX': [(lambda g, xx1=None:g.call('--list', xx1, __.project('service').by(__.constant('tinker.search'))))], + 'g_callXsearch_mapX': [(lambda g, xx1=None:g.call('tinker.search', xx1).element())], + 'g_callXsearch_traversalX': [(lambda g:g.call('tinker.search', __.project('search').by(__.constant('vada'))).element())], + 'g_callXsearchX_withXstring_stringX': [(lambda g:g.call('tinker.search').with_('search', 'vada').element())], + 'g_callXsearchX_withXstring_traversalX': [(lambda g:g.call('tinker.search').with_('search', __.constant('vada')).element())], + 'g_callXsearch_mapX_withXstring_VertexX': [(lambda g, xx1=None:g.call('tinker.search', xx1).with_('type', 'Vertex').element())], + 'g_callXsearch_mapX_withXstring_EdgeX': [(lambda g, xx1=None:g.call('tinker.search', xx1).with_('type', 'Edge').element())], + 'g_callXsearch_mapX_withXstring_VertexPropertyX': [(lambda g, xx1=None:g.call('tinker.search', xx1).with_('type', 'VertexProperty').element())], + 'g_V_callXdcX': [(lambda g:g.V().as_('v').call('tinker.degree.centrality').project('vertex', 'degree').by(__.select('v')).by())], 'g_V_whereXcallXdcXX': [(lambda g:g.V().where(__.call('tinker.degree.centrality').is_(3)))], - 'g_V_callXdcX_withXdirection_OUTX': [(lambda g:g.V().as_('v').call('tinker.degree.centrality').with_('direction',Direction.OUT).project('vertex','degree').by(__.select('v')).by())], - 'g_V_callXdc_mapX_withXdirection_OUTX': [(lambda g, xx1=None:g.V().as_('v').call('tinker.degree.centrality',xx1).with_('direction',Direction.OUT).project('vertex','degree').by(__.select('v')).by())], - 'g_V_callXdc_traversalX': [(lambda g:g.V().as_('v').call('tinker.degree.centrality',__.project('direction').by(__.constant(Direction.OUT))).project('vertex','degree').by(__.select('v')).by())], - 'g_V_callXdc_map_traversalX': [(lambda g, xx1=None:g.V().as_('v').call('tinker.degree.centrality',xx1,__.project('direction').by(__.constant(Direction.OUT))).project('vertex','degree').by(__.select('v')).by())], - 'g_V_coalesceXoutXfooX_outXbarXX': [(lambda g:g.V().coalesce(__.out('foo'),__.out('bar')))], - 'g_VX1X_coalesceXoutXknowsX_outXcreatedXX_valuesXnameX': [(lambda g, vid1=None:g.V(vid1).coalesce(__.out('knows'),__.out('created')).name)], - 'g_VX1X_coalesceXoutXcreatedX_outXknowsXX_valuesXnameX': [(lambda g, vid1=None:g.V(vid1).coalesce(__.out('created'),__.out('knows')).name)], - 'g_V_coalesceXoutXlikesX_outXknowsX_inXcreatedXX_groupCount_byXnameX': [(lambda g:g.V().coalesce(__.out('likes'),__.out('knows'),__.out('created')).group_count().by('name'))], - 'g_V_coalesceXoutEXknowsX_outEXcreatedXX_otherV_path_byXnameX_byXlabelX': [(lambda g:g.V().coalesce(__.out_e('knows'),__.out_e('created')).other_v().path().by('name').by(T.label))], - 'g_V_outXcreatedX_order_byXnameX_coalesceXname_constantXxXX': [(lambda g:g.V().out('created').order().by('name').coalesce(__.name,__.constant('x')))], + 'g_V_callXdcX_withXdirection_OUTX': [(lambda g:g.V().as_('v').call('tinker.degree.centrality').with_('direction', Direction.OUT).project('vertex', 'degree').by(__.select('v')).by())], + 'g_V_callXdc_mapX_withXdirection_OUTX': [(lambda g, xx1=None:g.V().as_('v').call('tinker.degree.centrality', xx1).with_('direction', Direction.OUT).project('vertex', 'degree').by(__.select('v')).by())], + 'g_V_callXdc_traversalX': [(lambda g:g.V().as_('v').call('tinker.degree.centrality', __.project('direction').by(__.constant(Direction.OUT))).project('vertex', 'degree').by(__.select('v')).by())], + 'g_V_callXdc_map_traversalX': [(lambda g, xx1=None:g.V().as_('v').call('tinker.degree.centrality', xx1, __.project('direction').by(__.constant(Direction.OUT))).project('vertex', 'degree').by(__.select('v')).by())], + 'g_V_coalesceXoutXfooX_outXbarXX': [(lambda g:g.V().coalesce(__.out('foo'), __.out('bar')))], + 'g_VX1X_coalesceXoutXknowsX_outXcreatedXX_valuesXnameX': [(lambda g, vid1=None:g.V(vid1).coalesce(__.out('knows'), __.out('created')).values('name'))], + 'g_VX1X_coalesceXoutXcreatedX_outXknowsXX_valuesXnameX': [(lambda g, vid1=None:g.V(vid1).coalesce(__.out('created'), __.out('knows')).values('name'))], + 'g_V_coalesceXoutXlikesX_outXknowsX_inXcreatedXX_groupCount_byXnameX': [(lambda g:g.V().coalesce(__.out('likes'), __.out('knows'), __.out('created')).group_count().by('name'))], + 'g_V_coalesceXoutEXknowsX_outEXcreatedXX_otherV_path_byXnameX_byXlabelX': [(lambda g:g.V().coalesce(__.out_e('knows'), __.out_e('created')).other_v().path().by('name').by(T.label))], + 'g_V_outXcreatedX_order_byXnameX_coalesceXname_constantXxXX': [(lambda g:g.V().out('created').order().by('name').coalesce(__.values('name'), __.constant('x')))], 'g_injectXnullX_combineXinjectX1XX': [(lambda g:g.inject(None).combine(__.inject(1)))], - 'g_V_valuesXnameX_combineXV_foldX': [(lambda g:g.V().name.combine(__.V().fold()))], + 'g_V_valuesXnameX_combineXV_foldX': [(lambda g:g.V().values('name').combine(__.V().fold()))], 'g_V_fold_combineXconstantXnullXX': [(lambda g:g.V().fold().combine(__.constant(None)))], 'g_V_fold_combineXVX': [(lambda g:g.V().fold().combine(__.V()))], - 'g_V_valuesXnameX_fold_combineX2X': [(lambda g:g.V().name.fold().combine(2))], - 'g_V_valuesXnameX_fold_combineXnullX': [(lambda g:g.V().name.fold().combine(None))], - 'g_V_valuesXnonexistantX_fold_combineXV_valuesXnameX_foldX_unfold': [(lambda g:g.V().nonexistant.fold().combine(__.V().name.fold()).unfold())], - 'g_V_valuesXnameX_fold_combineXV_valuesXnonexistantX_foldX_unfold': [(lambda g:g.V().name.fold().combine(__.V().nonexistant.fold()).unfold())], - 'g_V_valuesXageX_order_byXdescX_fold_combineXV_valuesXageX_order_byXdescX_foldX': [(lambda g:g.V().age.order().by(Order.desc).fold().combine(__.V().age.order().by(Order.desc).fold()))], - 'g_V_out_path_byXvaluesXnameX_toUpperX_combineXMARKOX': [(lambda g, xx1=None:g.V().out().path().by(__.name.to_upper()).combine(xx1))], - 'g_injectXxx1X_combineXV_valuesXnameX_foldX_unfold': [(lambda g, xx1=None:g.inject(xx1).combine(__.V().name.fold()).unfold())], - 'g_V_valueMapXlocationX_selectXvaluesX_unfold_combineXseattle_vancouverX_orderXlocalX': [(lambda g, xx1=None:g.V().value_map('location').select(Column.values).unfold().combine(xx1).order(Scope.local))], - 'g_V_out_out_path_byXnameX_combineXempty_listX': [(lambda g, xx1=None:g.V().out().out().path().by('name').combine(xx1))], - 'g_V_valuesXageX_order_fold_combineXconstantX27X_foldX': [(lambda g:g.V().age.order().fold().combine(__.constant(27).fold()))], - 'g_V_out_out_path_byXnameX_combineXdave_kelvinX': [(lambda g, xx1=None:g.V().out().out().path().by('name').combine(xx1))], - 'g_injectXa_null_bX_combineXa_cX': [(lambda g, xx1=None,xx2=None:g.inject(xx1).combine(xx2))], - 'g_injectXa_null_bX_combineXa_null_cX': [(lambda g, xx1=None,xx2=None:g.inject(xx1).combine(xx2))], - 'g_injectX3_threeX_combineXfive_three_7X': [(lambda g, xx1=None,xx2=None:g.inject(xx1).combine(xx2))], - 'g_injectXa_bX_concat': [(lambda g:g.inject('a','b').concat())], - 'g_injectXa_bX_concat_XcX': [(lambda g:g.inject('a','b').concat('c'))], - 'g_injectXa_bX_concat_Xc_dX': [(lambda g:g.inject('a','b').concat('c','d'))], - 'g_injectXa_bX_concat_Xinject_c_dX': [(lambda g:g.inject('a','b').concat(__.inject('c')))], - 'g_injectXaX_concat_Xinject_List_b_cX': [(lambda g, xx1=None:g.inject('a').concat(__.inject(xx1)))], - 'g_injectXListXa_bXcX_concat_XdX': [(lambda g, xx1=None:g.inject(xx1,'c').concat('d'))], + 'g_V_valuesXnameX_fold_combineX2X': [(lambda g:g.V().values('name').fold().combine(2))], + 'g_V_valuesXnameX_fold_combineXnullX': [(lambda g:g.V().values('name').fold().combine(None))], + 'g_V_valuesXnonexistantX_fold_combineXV_valuesXnameX_foldX_unfold': [(lambda g:g.V().values('nonexistant').fold().combine(__.V().values('name').fold()).unfold())], + 'g_V_valuesXnameX_fold_combineXV_valuesXnonexistantX_foldX_unfold': [(lambda g:g.V().values('name').fold().combine(__.V().values('nonexistant').fold()).unfold())], + 'g_V_valuesXageX_order_byXdescX_fold_combineXV_valuesXageX_order_byXdescX_foldX': [(lambda g:g.V().values('age').order().by(Order.desc).fold().combine(__.V().values('age').order().by(Order.desc).fold()))], + 'g_V_out_path_byXvaluesXnameX_toUpperX_combineXMARKOX': [(lambda g:g.V().out().path().by(__.values('name').to_upper()).combine(['MARKO']))], + 'g_injectXxx1X_combineXV_valuesXnameX_foldX_unfold': [(lambda g:g.inject(['marko']).combine(__.V().values('name').fold()).unfold())], + 'g_V_valueMapXlocationX_selectXvaluesX_unfold_combineXseattle_vancouverX_orderXlocalX': [(lambda g:g.V().value_map('location').select(Column.values).unfold().combine(['seattle', 'vancouver']).order(Scope.local))], + 'g_V_out_out_path_byXnameX_combineXempty_listX': [(lambda g:g.V().out().out().path().by('name').combine([]))], + 'g_V_valuesXageX_order_fold_combineXconstantX27X_foldX': [(lambda g:g.V().values('age').order().fold().combine(__.constant(27).fold()))], + 'g_V_out_out_path_byXnameX_combineXdave_kelvinX': [(lambda g:g.V().out().out().path().by('name').combine(['dave', 'kelvin']))], + 'g_injectXa_null_bX_combineXa_cX': [(lambda g:g.inject(['a', None, 'b']).combine(['a', 'c']))], + 'g_injectXa_null_bX_combineXa_null_cX': [(lambda g:g.inject(['a', None, 'b']).combine(['a', None, 'c']))], + 'g_injectX3_threeX_combineXfive_three_7X': [(lambda g:g.inject([3, 'three']).combine(['five', 'three', 7]))], + 'g_injectXa_bX_concat': [(lambda g:g.inject('a', 'b').concat())], + 'g_injectXa_bX_concat_XcX': [(lambda g:g.inject('a', 'b').concat('c'))], + 'g_injectXa_bX_concat_Xc_dX': [(lambda g:g.inject('a', 'b').concat('c', 'd'))], + 'g_injectXa_bX_concat_Xinject_c_dX': [(lambda g:g.inject('a', 'b').concat(__.inject('c')))], + 'g_injectXaX_concat_Xinject_List_b_cX': [(lambda g:g.inject('a').concat(__.inject(['b', 'c'])))], + 'g_injectXListXa_bXcX_concat_XdX': [(lambda g:g.inject(['a', 'b'], 'c').concat('d'))], 'g_injectXnullX_concat_XinjectX': [(lambda g:g.inject(None).concat())], - 'g_injectXnull_aX_concat_Xnull_bX': [(lambda g:g.inject(None,'a').concat(None,'b'))], - 'g_injectXhello_hiX_concat_XV_valuesXnameXX': [(lambda g:g.inject('hello','hi').concat(__.V().order().by(T.id_).name))], - 'g_V_hasLabel_value_concat_X_X_concat_XpersonX': [(lambda g:g.V().has_label('person').name.concat(' ').concat('person'))], - 'g_hasLabelXpersonX_valuesXnameX_asXaX_constantXMrX_concatXselectXaX': [(lambda g:g.V().has_label('person').name.as_('a').constant('Mr.').concat(__.select('a')))], - 'g_hasLabelXsoftwareX_asXaX_valuesXnameX_concatXunsesX_concatXselectXaXvaluesXlangX': [(lambda g:g.V().has_label('software').as_('a').name.concat(' uses ').concat(__.select('a').lang))], - 'g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_labelX_concatXselectXaX_inV_valuesXnameXX': [(lambda g, vid1=None:g.V(vid1).out_e().as_('a').V(vid1).name.concat(__.select('a').label()).concat(__.select('a').in_v().name))], - 'g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_label_selectXaX_inV_valuesXnameXX': [(lambda g, vid1=None:g.V(vid1).out_e().as_('a').V(vid1).name.concat(__.select('a').label(),__.select('a').in_v().name))], - 'g_addVXconstantXprefix_X_concatXVX1X_labelX_label': [(lambda g, vid1=None:g.add_v('person').property('name','marko').property('age',29).as_('marko').add_v('person').property('name','vadas').property('age',27).as_('vadas').add_v('software').property('name','lop').property('lang','java').as_('lop').add_v('person').property('name','josh').property('age',32).as_('josh').add_v('software').property('name','ripple').property('lang','java').as_('ripple').add_v('person').property('name','pe [...] + 'g_injectXnull_aX_concat_Xnull_bX': [(lambda g:g.inject(None, 'a').concat(None, 'b'))], + 'g_injectXhello_hiX_concatXV_values_order_byXnameX_valuesXnameXX': [(lambda g:g.inject('hello', 'hi').concat(__.V().order().by('name').values('name')))], + 'g_V_hasLabel_value_concat_X_X_concat_XpersonX': [(lambda g:g.V().has_label('person').values('name').concat(' ').concat('person'))], + 'g_hasLabelXpersonX_valuesXnameX_asXaX_constantXMrX_concatXselectXaX': [(lambda g:g.V().has_label('person').values('name').as_('a').constant('Mr.').concat(__.select('a')))], + 'g_hasLabelXsoftwareX_asXaX_valuesXnameX_concatXunsesX_concatXselectXaXvaluesXlangX': [(lambda g:g.V().has_label('software').as_('a').values('name').concat(' uses ').concat(__.select('a').values('lang')))], + 'g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_labelX_concatXselectXaX_inV_valuesXnameXX': [(lambda g, vid1=None:g.V(vid1).out_e().as_('a').V(vid1).values('name').concat(__.select('a').label()).concat(__.select('a').in_v().values('name')))], + 'g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_label_selectXaX_inV_valuesXnameXX': [(lambda g, vid1=None:g.V(vid1).out_e().as_('a').V(vid1).values('name').concat(__.select('a').label(), __.select('a').in_v().values('name')))], + 'g_addVXconstantXprefix_X_concatXVX1X_labelX_label': [(lambda g, vid1=None:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_v('person').property( [...] 'g_injectXnullX_conjoinX1X': [(lambda g:g.inject(None).conjoin('1'))], - 'g_V_valuesXnameX_conjoinX1X': [(lambda g:g.V().name.conjoin('1'))], - 'g_V_valuesXnonexistantX_fold_conjoinX_X': [(lambda g:g.V().nonexistant.fold().conjoin(';'))], - 'g_V_valuesXnameX_order_fold_conjoinX_X': [(lambda g:g.V().name.order().fold().conjoin('_'))], - 'g_V_valuesXageX_order_fold_conjoinX_X': [(lambda g:g.V().age.order().fold().conjoin(';'))], - 'g_V_out_path_byXvaluesXnameX_toUpperX_conjoinXMARKOX': [(lambda g:g.V().out().path().by(__.name.to_upper()).conjoin('MARKO'))], - 'g_injectXmarkoX_conjoinX_X': [(lambda g, xx1=None:g.inject(xx1).conjoin('-'))], + 'g_V_valuesXnameX_conjoinX1X': [(lambda g:g.V().values('name').conjoin('1'))], + 'g_V_valuesXnonexistantX_fold_conjoinX_X': [(lambda g:g.V().values('nonexistant').fold().conjoin(';'))], + 'g_V_valuesXnameX_order_fold_conjoinX_X': [(lambda g:g.V().values('name').order().fold().conjoin('_'))], + 'g_V_valuesXageX_order_fold_conjoinX_X': [(lambda g:g.V().values('age').order().fold().conjoin(';'))], + 'g_V_out_path_byXvaluesXnameX_toUpperX_conjoinXMARKOX': [(lambda g:g.V().out().path().by(__.values('name').to_upper()).conjoin('MARKO'))], + 'g_injectXmarkoX_conjoinX_X': [(lambda g:g.inject(['marko']).conjoin('-'))], 'g_V_valueMapXlocationX_selectXvaluesX_unfold_orderXlocalX_conjoinX1X': [(lambda g:g.V().value_map('location').select(Column.values).unfold().order(Scope.local).conjoin('1'))], 'g_V_out_out_path_byXnameX_conjoinXX': [(lambda g:g.V().out().out().path().by('name').conjoin(''))], - 'g_injectXa_null_bX_conjoinXxyzX': [(lambda g, xx1=None:g.inject(xx1).conjoin('xyz'))], - 'g_injectX3_threeX_conjoinX_X': [(lambda g, xx1=None:g.inject(xx1).conjoin(';'))], - 'g_injectXnull_a_null_bX_conjoinXplusX': [(lambda g, xx1=None:g.inject(xx1).conjoin('+'))], - 'g_injectXnull_nullX_conjoinXplusX': [(lambda g, xx1=None:g.inject(xx1).conjoin('+'))], + 'g_injectXa_null_bX_conjoinXxyzX': [(lambda g:g.inject(['a', None, 'b']).conjoin('xyz'))], + 'g_injectX3_threeX_conjoinX_X': [(lambda g:g.inject([3, 'three']).conjoin(';'))], ++ 'g_injectXnull_a_null_bX_conjoinXplusX': [(lambda g:g.inject([None, 'a', None, 'b']).conjoin('+'))], ++ 'g_injectXnull_nullX_conjoinXplusX': [(lambda g:g.inject([None, None]).conjoin('+'))], 'g_V_connectedComponent_hasXcomponentX': [(lambda g:g.V().connected_component().has('gremlin.connectedComponentVertexProgram.component'))], 'g_V_dedup_connectedComponent_hasXcomponentX': [(lambda g:g.V().dedup().connected_component().has('gremlin.connectedComponentVertexProgram.component'))], - 'g_V_hasLabelXsoftwareX_connectedComponent_project_byXnameX_byXcomponentX': [(lambda g:g.V().has_label('software').connected_component().project('name','component').by('name').by('gremlin.connectedComponentVertexProgram.component'))], - 'g_V_connectedComponent_withXEDGES_bothEXknowsXX_withXPROPERTY_NAME_clusterX_project_byXnameX_byXclusterX': [(lambda g:g.V().has_label('person').connected_component().with_('~tinkerpop.connectedComponent.edges',__.both_e('knows')).with_('~tinkerpop.connectedComponent.propertyName','cluster').project('name','cluster').by('name').by('cluster'))], + 'g_V_hasLabelXsoftwareX_connectedComponent_project_byXnameX_byXcomponentX': [(lambda g:g.V().has_label('software').connected_component().project('name', 'component').by('name').by('gremlin.connectedComponentVertexProgram.component'))], + 'g_V_connectedComponent_withXEDGES_bothEXknowsXX_withXPROPERTY_NAME_clusterX_project_byXnameX_byXclusterX': [(lambda g:g.V().has_label('person').connected_component().with_('~tinkerpop.connectedComponent.edges', __.both_e('knows')).with_('~tinkerpop.connectedComponent.propertyName', 'cluster').project('name', 'cluster').by('name').by('cluster'))], 'g_V_constantX123X': [(lambda g:g.V().constant(123))], 'g_V_constantXnullX': [(lambda g:g.V().constant(None))], - 'g_V_chooseXhasLabelXpersonX_valuesXnameX_constantXinhumanXX': [(lambda g:g.V().choose(__.has_label('person'),__.name,__.constant('inhuman')))], + 'g_V_chooseXhasLabelXpersonX_valuesXnameX_constantXinhumanXX': [(lambda g:g.V().choose(__.has_label('person'), __.values('name'), __.constant('inhuman')))], 'g_V_count': [(lambda g:g.V().count())], 'g_V_out_count': [(lambda g:g.V().out().count())], 'g_V_both_both_count': [(lambda g:g.V().both().both().count())], diff --cc gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/map/Conjoin.feature index dd47ed044c,949dcc102d..376129b726 --- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/map/Conjoin.feature +++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/map/Conjoin.feature @@@ -150,3 -153,29 +150,27 @@@ Feature: Step - conjoin( Then the result should be unordered | result | | 3;three | + + @GraphComputerVerificationInjectionNotSupported + Scenario: g_injectXnull_a_null_bX_conjoinXplusX + Given the empty graph - And using the parameter xx1 defined as "l[null,a,null,b]" + And the traversal of + """ - g.inject(xx1).conjoin("+") ++ g.inject([null,"a",null,"b"]).conjoin("+") + """ + When iterated to list + Then the result should be unordered + | result | + | str[a+b] | + + @GraphComputerVerificationInjectionNotSupported + Scenario: g_injectXnull_nullX_conjoinXplusX + Given the empty graph - And using the parameter xx1 defined as "l[null,null]" + And the traversal of + """ - g.inject(xx1).conjoin("+") ++ g.inject([null,null]).conjoin("+") + """ + When iterated to list + Then the result should be unordered + | result | + | str[] |
