This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit 049816a2b37e6bb459fe8fd9f557a7f01222674f Merge: 6787836721 3d7960dd08 Author: Stephen Mallette <[email protected]> AuthorDate: Thu Aug 21 08:40:25 2025 -0400 Merge branch '3.8-dev' .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs | 7 +++++ gremlin-go/driver/cucumber/gremlin.go | 7 +++++ .../gremlin-javascript/test/cucumber/gremlin.js | 4 +-- gremlin-python/src/main/python/radish/gremlin.py | 4 +-- .../process/traversal/step/OrderabilityTest.java | 6 ++-- .../test/features/semantics/Orderability.feature | 36 ++++++++++++++++++++-- 6 files changed, 54 insertions(+), 10 deletions(-) diff --cc gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs index b91dc78840,60db597a0a..3be7181c69 --- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs +++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs @@@ -1629,10 -1615,10 +1629,17 @@@ namespace Gremlin.Net.IntegrationTest.G {"g_V_values_order", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>().Order()}}, {"g_V_properties_order", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Properties<object>().Order()}}, {"g_V_properties_order_id", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Properties<object>().Order().Id()}}, ++<<<<<<< HEAD + {"g_E_properties_order_value", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.E().Properties<object>().Order().Value<object>()}}, + {"g_E_properties_order_byXdescX_value", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.E().Properties<object>().Order().By(Order.Desc).Value<object>()}}, + {"g_inject_order", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(p["xx8"], p["xx7"], p["xx10"], p["xx4"], p["xx9"], p["xx12"], p["xx1"], p["xx5"], p["xx11"], p["xx6"], p["xx3"], p["xx2"], p["xx13"], p["xx14"], p["xx15"]).Order()}}, + {"g_inject_order_byXdescX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(p["xx8"], p["xx7"], p["xx10"], p["xx4"], p["xx9"], p["xx12"], p["xx1"], p["xx5"], p["xx11"], p["xx6"], p["xx3"], p["xx2"], p["xx13"], p["xx14"], p["xx15"]).Order().By(Order.Desc)}}, ++======= + {"g_E_properties_order_value", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("person").Property("name", "alice").As("a").AddE("self").From("a").To("a").Property("weight", 0.5d).Property("a", 10).AddE("self").From("a").To("a").Property("weight", 1.0d).Property("a", 11).AddE("self").From("a").To("a").Property("weight", 0.4d).Property("a", 12).AddE("self").From("a").To("a").Property("weight", 1.0d).Property("a", 13).AddE("self" [...] + {"g_E_properties_order_byXdescX_value", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("person").Property("name", "alice").As("a").AddE("self").From("a").To("a").Property("weight", 0.5d).Property("a", 10).AddE("self").From("a").To("a").Property("weight", 1.0d).Property("a", 11).AddE("self").From("a").To("a").Property("weight", 0.4d).Property("a", 12).AddE("self").From("a").To("a").Property("weight", 1.0d).Property("a", 13).Ad [...] + {"g_inject_order", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>("zzz", "foo", new List<object> { "a", "b", "c", "d" }, 1, new List<object> { "a", "b", "c" }, new Dictionary<object, object> {{ "a", "a" }, { "b", "b" }}, null, 2.0d, new Dictionary<object, object> {{ "a", "a" }, { "b", false }, { "c", "c" }}, "bar", true, false, Double.PositiveInfinity, Double.NaN, Double.NegativeInfinity).Order()}}, + {"g_inject_order_byXdescX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>("zzz", "foo", new List<object> { "a", "b", "c", "d" }, 1, new List<object> { "a", "b", "c" }, new Dictionary<object, object> {{ "a", "a" }, { "b", "b" }}, null, 2.0d, new Dictionary<object, object> {{ "a", "a" }, { "b", false }, { "c", "c" }}, "bar", true, false, Double.PositiveInfinity, Double.NaN, Double.NegativeInfinity).Order().By(Order.D [...] ++>>>>>>> 3.8-dev {"g_V_out_out_order_byXascX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out().Out().Order().By(Order.Asc)}}, {"g_V_out_out_order_byXdescX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out().Out().Order().By(Order.Desc)}}, {"g_V_out_out_asXheadX_path_order_byXascX_selectXheadX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out().Out().As("head").Path().Order().By(Order.Asc).Select<object>("head")}}, diff --cc gremlin-go/driver/cucumber/gremlin.go index 2c4e6e87ab,1a6715271e..7d379d9cdb --- a/gremlin-go/driver/cucumber/gremlin.go +++ b/gremlin-go/driver/cucumber/gremlin.go @@@ -1600,10 -1585,10 +1600,17 @@@ var translationMap = map[string][]func( "g_V_values_order": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Values().Order()}}, "g_V_properties_order": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Properties().Order()}}, "g_V_properties_order_id": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Properties().Order().Id()}}, ++<<<<<<< HEAD + "g_E_properties_order_value": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.E().Properties().Order().Value()}}, + "g_E_properties_order_byXdescX_value": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.E().Properties().Order().By(gremlingo.Order.Desc).Value()}}, + "g_inject_order": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(p["xx8"], p["xx7"], p["xx10"], p["xx4"], p["xx9"], p["xx12"], p["xx1"], p["xx5"], p["xx11"], p["xx6"], p["xx3"], p["xx2"], p["xx13"], p["xx14"], p["xx15"]).Order()}}, + "g_inject_order_byXdescX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(p["xx8"], p["xx7"], p["xx10"], p["xx4"], p["xx9"], p["xx12"], p["xx1"], p["xx5"], p["xx11"], p["xx6"], p["xx3"], p["xx2"], p["xx13"], p["xx14"], p["xx15"]).Order().By(gremlingo.Order.Desc)}}, ++======= + "g_E_properties_order_value": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.AddV("person").Property("name", "alice").As("a").AddE("self").From("a").To("a").Property("weight", 0.5).Property("a", int32(10)).AddE("self").From("a").To("a").Property("weight", 1.0).Property("a", int32(11)).AddE("self").From("a").To("a").Property("weight", 0.4).Property("a", int32(12)).AddE("self").From("a").To("a").Property("weight", 1.0).Property(" [...] + "g_E_properties_order_byXdescX_value": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.AddV("person").Property("name", "alice").As("a").AddE("self").From("a").To("a").Property("weight", 0.5).Property("a", int32(10)).AddE("self").From("a").To("a").Property("weight", 1.0).Property("a", int32(11)).AddE("self").From("a").To("a").Property("weight", 0.4).Property("a", int32(12)).AddE("self").From("a").To("a").Property("weight", 1.0).P [...] + "g_inject_order": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject("zzz", "foo", []interface{}{"a", "b", "c", "d"}, 1, []interface{}{"a", "b", "c"}, map[interface{}]interface{}{"a": "a", "b": "b" }, nil, 2.0, map[interface{}]interface{}{"a": "a", "b": false, "c": "c" }, "bar", true, false, math.Inf(1), math.NaN(), math.Inf(-1)).Order()}}, + "g_inject_order_byXdescX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject("zzz", "foo", []interface{}{"a", "b", "c", "d"}, 1, []interface{}{"a", "b", "c"}, map[interface{}]interface{}{"a": "a", "b": "b" }, nil, 2.0, map[interface{}]interface{}{"a": "a", "b": false, "c": "c" }, "bar", true, false, math.Inf(1), math.NaN(), math.Inf(-1)).Order().By(gremlingo.Order.Desc)}}, ++>>>>>>> 3.8-dev "g_V_out_out_order_byXascX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Out().Out().Order().By(gremlingo.Order.Asc)}}, "g_V_out_out_order_byXdescX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Out().Out().Order().By(gremlingo.Order.Desc)}}, "g_V_out_out_asXheadX_path_order_byXascX_selectXheadX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Out().Out().As("head").Path().Order().By(gremlingo.Order.Asc).Select("head")}}, diff --cc gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js index 82765a1e4a,6de912a9fd..c7fdb5d78b --- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js +++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js @@@ -1630,10 -1615,10 +1630,10 @@@ const gremlins = g_V_values_order: [function({g}) { return g.V().values().order() }], g_V_properties_order: [function({g}) { return g.V().properties().order() }], g_V_properties_order_id: [function({g}) { return g.V().properties().order().id() }], - g_E_properties_order_value: [function({g}) { return g.E().properties().order().value() }], - g_E_properties_order_byXdescX_value: [function({g}) { return g.E().properties().order().by(Order.desc).value() }], + g_E_properties_order_value: [function({g}) { return g.addV("person").property("name", "alice").as("a").addE("self").from_("a").to("a").property("weight", 0.5).property("a", 10).addE("self").from_("a").to("a").property("weight", 1.0).property("a", 11).addE("self").from_("a").to("a").property("weight", 0.4).property("a", 12).addE("self").from_("a").to("a").property("weight", 1.0).property("a", 13).addE("self").from_("a").to("a").property("weight", 0.4).property("a", 14).addE("self").f [...] + g_E_properties_order_byXdescX_value: [function({g}) { return g.addV("person").property("name", "alice").as("a").addE("self").from_("a").to("a").property("weight", 0.5).property("a", 10).addE("self").from_("a").to("a").property("weight", 1.0).property("a", 11).addE("self").from_("a").to("a").property("weight", 0.4).property("a", 12).addE("self").from_("a").to("a").property("weight", 1.0).property("a", 13).addE("self").from_("a").to("a").property("weight", 0.4).property("a", 14).addE( [...] - g_inject_order: [function({g}) { return g.inject("zzz", "foo", ["a", "b", "c", "d"], 1, ["a", "b", "c"], new Map([["a", "a"], ["b", "b"]]), null, 2.0, new Map([["a", "a"], ["b", false], ["c", "c"]]), "bar", true, false, Number.POSITIVE_INFINITY, Number.NaN, Number.NEGATIVE_INFINITY).order() }], - g_inject_order_byXdescX: [function({g}) { return g.inject("zzz", "foo", ["a", "b", "c", "d"], 1, ["a", "b", "c"], new Map([["a", "a"], ["b", "b"]]), null, 2.0, new Map([["a", "a"], ["b", false], ["c", "c"]]), "bar", true, false, Number.POSITIVE_INFINITY, Number.NaN, Number.NEGATIVE_INFINITY).order().by(Order.desc) }], + g_inject_order: [function({g, xx10, xx1, xx3, xx2, xx5, xx4, xx7, xx6, xx9, xx11, xx8, xx12, xx13, xx14, xx15}) { return g.inject(xx8, xx7, xx10, xx4, xx9, xx12, xx1, xx5, xx11, xx6, xx3, xx2, xx13, xx14, xx15).order() }], + g_inject_order_byXdescX: [function({g, xx10, xx1, xx3, xx2, xx5, xx4, xx7, xx6, xx9, xx11, xx8, xx12, xx13, xx14, xx15}) { return g.inject(xx8, xx7, xx10, xx4, xx9, xx12, xx1, xx5, xx11, xx6, xx3, xx2, xx13, xx14, xx15).order().by(Order.desc) }], g_V_out_out_order_byXascX: [function({g}) { return g.V().out().out().order().by(Order.asc) }], g_V_out_out_order_byXdescX: [function({g}) { return g.V().out().out().order().by(Order.desc) }], g_V_out_out_asXheadX_path_order_byXascX_selectXheadX: [function({g}) { return g.V().out().out().as("head").path().order().by(Order.asc).select("head") }], diff --cc gremlin-python/src/main/python/radish/gremlin.py index 14e99df2d8,0707a65b8d..197249f577 --- a/gremlin-python/src/main/python/radish/gremlin.py +++ b/gremlin-python/src/main/python/radish/gremlin.py @@@ -1603,10 -1588,10 +1603,10 @@@ world.gremlins = 'g_V_values_order': [(lambda g:g.V().values().order())], 'g_V_properties_order': [(lambda g:g.V().properties().order())], 'g_V_properties_order_id': [(lambda g:g.V().properties().order().id_())], - 'g_E_properties_order_value': [(lambda g:g.E().properties().order().value())], - 'g_E_properties_order_byXdescX_value': [(lambda g:g.E().properties().order().by(Order.desc).value())], + 'g_E_properties_order_value': [(lambda g:g.add_v('person').property('name', 'alice').as_('a').add_e('self').from_('a').to('a').property('weight', 0.5).property('a', 10).add_e('self').from_('a').to('a').property('weight', 1.0).property('a', 11).add_e('self').from_('a').to('a').property('weight', 0.4).property('a', 12).add_e('self').from_('a').to('a').property('weight', 1.0).property('a', 13).add_e('self').from_('a').to('a').property('weight', 0.4).property('a', 14).add_e('self').from [...] + 'g_E_properties_order_byXdescX_value': [(lambda g:g.add_v('person').property('name', 'alice').as_('a').add_e('self').from_('a').to('a').property('weight', 0.5).property('a', 10).add_e('self').from_('a').to('a').property('weight', 1.0).property('a', 11).add_e('self').from_('a').to('a').property('weight', 0.4).property('a', 12).add_e('self').from_('a').to('a').property('weight', 1.0).property('a', 13).add_e('self').from_('a').to('a').property('weight', 0.4).property('a', 14).add_e('se [...] - 'g_inject_order': [(lambda g:g.inject('zzz', 'foo', ['a', 'b', 'c', 'd'], 1, ['a', 'b', 'c'], { 'a': 'a', 'b': 'b' }, None, 2.0, { 'a': 'a', 'b': False, 'c': 'c' }, 'bar', True, False, float('inf'), float('nan'), float('-inf')).order())], - 'g_inject_order_byXdescX': [(lambda g:g.inject('zzz', 'foo', ['a', 'b', 'c', 'd'], 1, ['a', 'b', 'c'], { 'a': 'a', 'b': 'b' }, None, 2.0, { 'a': 'a', 'b': False, 'c': 'c' }, 'bar', True, False, float('inf'), float('nan'), float('-inf')).order().by(Order.desc))], + 'g_inject_order': [(lambda g, xx10=None,xx1=None,xx3=None,xx2=None,xx5=None,xx4=None,xx7=None,xx6=None,xx9=None,xx11=None,xx8=None,xx12=None,xx13=None,xx14=None,xx15=None:g.inject(xx8, xx7, xx10, xx4, xx9, xx12, xx1, xx5, xx11, xx6, xx3, xx2, xx13, xx14, xx15).order())], + 'g_inject_order_byXdescX': [(lambda g, xx10=None,xx1=None,xx3=None,xx2=None,xx5=None,xx4=None,xx7=None,xx6=None,xx9=None,xx11=None,xx8=None,xx12=None,xx13=None,xx14=None,xx15=None:g.inject(xx8, xx7, xx10, xx4, xx9, xx12, xx1, xx5, xx11, xx6, xx3, xx2, xx13, xx14, xx15).order().by(Order.desc))], 'g_V_out_out_order_byXascX': [(lambda g:g.V().out().out().order().by(Order.asc))], 'g_V_out_out_order_byXdescX': [(lambda g:g.V().out().out().order().by(Order.desc))], 'g_V_out_out_asXheadX_path_order_byXascX_selectXheadX': [(lambda g:g.V().out().out().as_('head').path().order().by(Order.asc).select('head'))],
