You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2018/05/17 20:06:12 UTC
[50/50] [abbrv] tinkerpop git commit: TINKERPOP-1956 Deprecated
Order.incr and Order.decr
TINKERPOP-1956 Deprecated Order.incr and Order.decr
Replaced by Order.asc and Order.desc respectively. Left a number of uses of decr/incr so as to ensure ongoing compatibility during deprecation.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/20a722a3
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/20a722a3
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/20a722a3
Branch: refs/heads/TINKERPOP-1956
Commit: 20a722a35785497e80ae3097b4c47b277eed600a
Parents: ef2cd57
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Apr 27 06:22:13 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu May 17 16:05:04 2018 -0400
----------------------------------------------------------------------
CHANGELOG.asciidoc | 1 +
docs/site/home/gremlin.html | 4 +-
docs/site/home/index.html | 2 +-
docs/site/home/js/prism.js | 2 +-
docs/src/dev/io/graphson.asciidoc | 8 +-
docs/src/dev/io/gryo.asciidoc | 4 +-
docs/src/recipes/centrality.asciidoc | 6 +-
docs/src/recipes/collections.asciidoc | 2 +-
docs/src/recipes/recommendation.asciidoc | 16 +-
docs/src/recipes/style-guide.asciidoc | 4 +-
docs/src/reference/gremlin-variants.asciidoc | 10 +-
docs/src/reference/the-graph.asciidoc | 2 +-
docs/src/reference/the-traversal.asciidoc | 61 ++++----
.../gremlin-language-variants/index.asciidoc | 2 +-
docs/src/upgrade/release-3.3.x.asciidoc | 10 ++
.../gremlin/process/traversal/Order.java | 40 +++++
.../traversal/step/map/OrderGlobalStep.java | 4 +-
.../traversal/step/map/OrderLocalStep.java | 4 +-
.../util/function/ChainedComparator.java | 2 +-
.../gremlin/util/function/MultiComparator.java | 2 +-
.../gremlin/process/traversal/BytecodeTest.java | 6 +-
.../gremlin/process/traversal/OrderTest.java | 15 ++
.../traversal/step/map/OrderGlobalStepTest.java | 8 +-
.../traversal/step/map/OrderLocalStepTest.java | 8 +-
.../PathRetractionStrategyTest.java | 2 +-
.../LambdaRestrictionStrategyTest.java | 4 +-
.../util/function/MultiComparatorTest.java | 6 +-
.../Process/Traversal/NamingConversions.cs | 2 +
.../src/Gremlin.Net/Process/Traversal/Order.cs | 6 +
.../DriverRemoteConnection/EnumTests.cs | 2 +-
.../gremlin-javascript/lib/process/traversal.js | 2 +-
.../test/unit/traversal-test.js | 4 +-
.../jython/gremlin_python/process/traversal.py | 4 +-
gremlin-test/features/branch/Local.feature | 2 +-
gremlin-test/features/filter/Dedup.feature | 4 +-
gremlin-test/features/map/AddEdge.feature | 4 +-
gremlin-test/features/map/Match.feature | 4 +-
gremlin-test/features/map/Order.feature | 72 ++++++---
gremlin-test/features/map/Project.feature | 4 +-
gremlin-test/features/map/Select.feature | 4 +-
.../process/traversal/step/ComplexTest.java | 4 +-
.../traversal/step/branch/LocalTest.java | 2 +-
.../traversal/step/filter/DedupTest.java | 10 +-
.../process/traversal/step/map/AddEdgeTest.java | 12 +-
.../process/traversal/step/map/MatchTest.java | 12 +-
.../process/traversal/step/map/MathTest.java | 12 +-
.../process/traversal/step/map/OrderTest.java | 150 +++++++++++--------
.../traversal/step/map/PageRankTest.java | 20 +--
.../process/traversal/step/map/ProgramTest.java | 10 +-
.../process/traversal/step/map/ProjectTest.java | 10 +-
.../process/traversal/step/map/SelectTest.java | 10 +-
.../decoration/SubgraphStrategyProcessTest.java | 2 +-
.../gremlin/process/FeatureCoverageTest.java | 4 +-
.../tinkerpop/gremlin/structure/io/Model.java | 2 +-
.../io/AbstractTypedCompatibilityTest.java | 2 -
.../io/graphson/_3_2_3/order-v2d0-no-types.json | 2 +-
.../io/graphson/_3_2_3/order-v2d0-partial.json | 2 +-
.../io/graphson/_3_2_4/order-v2d0-no-types.json | 2 +-
.../io/graphson/_3_2_4/order-v2d0-partial.json | 2 +-
.../io/graphson/_3_2_5/order-v2d0-no-types.json | 2 +-
.../io/graphson/_3_2_5/order-v2d0-partial.json | 2 +-
.../io/graphson/_3_2_6/order-v2d0-no-types.json | 2 +-
.../io/graphson/_3_2_6/order-v2d0-partial.json | 2 +-
.../io/graphson/_3_2_7/order-v2d0-no-types.json | 2 +-
.../io/graphson/_3_2_7/order-v2d0-partial.json | 2 +-
.../io/graphson/_3_2_8/order-v2d0-no-types.json | 2 +-
.../io/graphson/_3_2_8/order-v2d0-partial.json | 2 +-
.../io/graphson/_3_2_9/order-v2d0-no-types.json | 2 +-
.../io/graphson/_3_2_9/order-v2d0-partial.json | 2 +-
.../io/graphson/_3_3_0/order-v2d0-no-types.json | 2 +-
.../io/graphson/_3_3_0/order-v2d0-partial.json | 2 +-
.../io/graphson/_3_3_0/order-v3d0.json | 2 +-
.../io/graphson/_3_3_1/order-v2d0-no-types.json | 2 +-
.../io/graphson/_3_3_1/order-v2d0-partial.json | 2 +-
.../io/graphson/_3_3_1/order-v3d0.json | 2 +-
.../io/graphson/_3_3_2/order-v2d0-partial.json | 2 +-
.../io/graphson/_3_3_2/order-v3d0.json | 2 +-
.../io/graphson/_3_3_3/order-v2d0-partial.json | 2 +-
.../io/graphson/_3_3_3/order-v3d0.json | 2 +-
.../structure/io/gryo/_3_2_3/order-v1d0.kryo | 2 +-
.../structure/io/gryo/_3_2_4/order-v1d0.kryo | 2 +-
.../structure/io/gryo/_3_2_5/order-v1d0.kryo | 2 +-
.../structure/io/gryo/_3_2_6/order-v1d0.kryo | 2 +-
.../structure/io/gryo/_3_2_7/order-v1d0.kryo | 2 +-
.../structure/io/gryo/_3_2_8/order-v1d0.kryo | 2 +-
.../structure/io/gryo/_3_2_9/order-v1d0.kryo | 2 +-
.../structure/io/gryo/_3_3_0/order-v1d0.kryo | 2 +-
.../structure/io/gryo/_3_3_0/order-v3d0.kryo | 2 +-
.../structure/io/gryo/_3_3_1/order-v1d0.kryo | 2 +-
.../structure/io/gryo/_3_3_1/order-v3d0.kryo | 2 +-
.../structure/io/gryo/_3_3_2/order-v1d0.kryo | 2 +-
.../structure/io/gryo/_3_3_2/order-v3d0.kryo | 2 +-
.../structure/io/gryo/_3_3_3/order-v1d0.kryo | 2 +-
.../structure/io/gryo/_3_3_3/order-v3d0.kryo | 2 +-
94 files changed, 421 insertions(+), 268 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 718b6a7..81210c4 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -25,6 +25,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
This release also includes changes from <<release-3-2-10, 3.2.10>>.
+* Deprecated `Order` for `incr` and `decr` in favor of `asc` and `desc`.
[[release-3-3-3]]
=== TinkerPop 3.3.3 (Release Date: May 8, 2018)
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/docs/site/home/gremlin.html
----------------------------------------------------------------------
diff --git a/docs/site/home/gremlin.html b/docs/site/home/gremlin.html
index bedddf3..74e7c5e 100644
--- a/docs/site/home/gremlin.html
+++ b/docs/site/home/gremlin.html
@@ -153,7 +153,7 @@ g.V().has("name","gremlin").
out("bought").aggregate("stash").
in("bought").out("bought").
where(not(within("stash"))).
- groupCount().order(local).by(values,decr)
+ groupCount().order(local).by(values,desc)
</code></pre>
</div>
<div class="col-xs-7" style="border-left: thin solid #000000;height:148px">
@@ -177,7 +177,7 @@ g.V().hasLabel("person").
pageRank().
by("friendRank").
by(outE("knows")).
- order().by("friendRank",decr).
+ order().by("friendRank",desc).
limit(10)</code></pre>
</div>
<div class="col-xs-7" style="border-left: thin solid #000000;height:148px">
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/docs/site/home/index.html
----------------------------------------------------------------------
diff --git a/docs/site/home/index.html b/docs/site/home/index.html
index 9ee55c5..19d12ee 100644
--- a/docs/site/home/index.html
+++ b/docs/site/home/index.html
@@ -133,7 +133,7 @@ limitations under the License.
in("bought").out("bought").
where(not(within("stash"))).
groupCount().
- order(local).by(values,decr)
+ order(local).by(values,desc)
</code></pre>
</div>
</div>
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/docs/site/home/js/prism.js
----------------------------------------------------------------------
diff --git a/docs/site/home/js/prism.js b/docs/site/home/js/prism.js
index 53661dd..999a43e 100644
--- a/docs/site/home/js/prism.js
+++ b/docs/site/home/js/prism.js
@@ -233,7 +233,7 @@ Prism.languages.clike = {
punctuation: /[{}[\];(),.:]/
};
Prism.languages.gremlin = Prism.languages.extend("clike", {
- keyword: /\b(values,|decr|incr|local|global|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,
+ keyword: /\b(values,|decr|desc|incr|asc|local|global|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,
number: /\b-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/,
"function": /[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*(?=\()/i
}), Prism.languages.insertBefore("gremlin", "keyword", {
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/docs/src/dev/io/graphson.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/dev/io/graphson.asciidoc b/docs/src/dev/io/graphson.asciidoc
index defebb3..d140a2f 100644
--- a/docs/src/dev/io/graphson.asciidoc
+++ b/docs/src/dev/io/graphson.asciidoc
@@ -143,7 +143,7 @@ file.withWriter { writer ->
writer.write(toJson(Column.keys, "Column", "", "v2d0-partial"))
writer.write(toJson(Direction.OUT, "Direction", "", "v2d0-partial"))
writer.write(toJson(Operator.sum, "Operator", "", "v2d0-partial"))
- writer.write(toJson(Order.incr, "Order", "", "v2d0-partial"))
+ writer.write(toJson(Order.shuffle, "Order", "", "v2d0-partial"))
writer.write(toJson(org.apache.tinkerpop.gremlin.process.traversal.step.TraversalOptionParent.Pick.any, "Pick", "", "v2d0-partial"))
writer.write(toJson(Pop.all, "Pop", "", "v2d0-partial"))
writer.write(toJson(org.apache.tinkerpop.gremlin.util.function.Lambda.function("{ it.get() }"), "Lambda", "", "v2d0-partial"))
@@ -272,7 +272,7 @@ file.withWriter { writer ->
writer.write(toJson(Column.keys, "Column", "", "v2d0-no-types"))
writer.write(toJson(Direction.OUT, "Direction", "", "v2d0-no-types"))
writer.write(toJson(Operator.sum, "Operator", "", "v2d0-no-types"))
- writer.write(toJson(Order.incr, "Order", "", "v2d0-no-types"))
+ writer.write(toJson(Order.shuffle, "Order", "", "v2d0-no-types"))
writer.write(toJson(Pop.all, "Pop", "", "v2d0-no-types"))
writer.write(toJson(org.apache.tinkerpop.gremlin.process.traversal.step.TraversalOptionParent.Pick.any, "Pick", "", "v2d0-no-types"))
writer.write(toJson(org.apache.tinkerpop.gremlin.util.function.Lambda.function("{ it.get() }"), "Lambda", "", "v2d0-no-types"))
@@ -2777,7 +2777,7 @@ The following `Bytecode` example represents the traversal of `g.V().hasLabel('pe
----
{
"@type" : "g:Order",
- "@value" : "incr"
+ "@value" : "shuffle"
}
----
@@ -5138,7 +5138,7 @@ The following `Bytecode` example represents the traversal of `g.V().hasLabel('pe
----
{
"@type" : "g:Order",
- "@value" : "incr"
+ "@value" : "shuffle"
}
----
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/docs/src/dev/io/gryo.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/dev/io/gryo.asciidoc b/docs/src/dev/io/gryo.asciidoc
index c824063..f327222 100644
--- a/docs/src/dev/io/gryo.asciidoc
+++ b/docs/src/dev/io/gryo.asciidoc
@@ -36,7 +36,7 @@ conf.setProperty(TinkerGraph.GREMLIN_TINKERGRAPH_DEFAULT_VERTEX_PROPERTY_CARDINA
graph = TinkerGraph.open(conf)
TinkerFactory.generateTheCrew(graph)
g = graph.traversal()
-
+
toGryo = { o, type, mapper, suffix = "" ->
def fileToWriteTo = new File("io-output/test-case-data/gryo/" + type.toLowerCase().replace(" ","") + "-" + suffix + ".kryo")
if (fileToWriteTo.exists()) fileToWriteTo.delete()
@@ -75,7 +75,7 @@ toGryo(VertexProperty.Cardinality.list, "Cardinality", mapper, "v1d0")
toGryo(Column.keys, "Column", mapper, "v1d0")
toGryo(Direction.OUT, "Direction", mapper, "v1d0")
toGryo(Operator.sum, "Operator", mapper, "v1d0")
-toGryo(Order.incr, "Order", mapper, "v1d0")
+toGryo(Order.shuffle, "Order", mapper, "v1d0")
toGryo(Pop.all, "Pop", mapper, "v1d0")
toGryo(org.apache.tinkerpop.gremlin.process.traversal.step.TraversalOptionParent.Pick.any, "Pick", mapper, "v1d0")
toGryo(org.apache.tinkerpop.gremlin.util.function.Lambda.function("{ it.get() }"), "Lambda", mapper, "v1d0")
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/docs/src/recipes/centrality.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/recipes/centrality.asciidoc b/docs/src/recipes/centrality.asciidoc
index 1a3927e..8504589 100644
--- a/docs/src/recipes/centrality.asciidoc
+++ b/docs/src/recipes/centrality.asciidoc
@@ -34,7 +34,7 @@ g.V().group().by().by(inE().count()) <2>
g.V().group().by().by(outE().count()) <3>
g.V().project("v","degree").by().by(bothE().count()) <4>
g.V().project("v","degree").by().by(bothE().count()). <5>
- order().by(select("degree"), decr).
+ order().by(select("degree"), desc).
limit(4)
----
@@ -158,9 +158,9 @@ give it the highest rank. Consider the following example using the Grateful Dead
----
graph.io(graphml()).readGraph('data/grateful-dead.xml')
g.V().repeat(groupCount('m').by('name').out()).times(5).cap('m'). <1>
- order(local).by(values, decr).limit(local, 10).next() <2>
+ order(local).by(values, desc).limit(local, 10).next() <2>
g.V().repeat(groupCount('m').by('name').out().timeLimit(100)).times(5).cap('m'). <3>
- order(local).by(values, decr).limit(local, 10).next()
+ order(local).by(values, desc).limit(local, 10).next()
----
<1> The traversal iterates through each vertex in the graph and for each one repeatedly group counts each vertex that
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/docs/src/recipes/collections.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/recipes/collections.asciidoc b/docs/src/recipes/collections.asciidoc
index d027376..7ee4b1b 100644
--- a/docs/src/recipes/collections.asciidoc
+++ b/docs/src/recipes/collections.asciidoc
@@ -97,7 +97,7 @@ g.V().union(limit(3).fold(),tail(3).fold()) <1>
g.V().union(limit(3).fold(),tail(3).fold()).
local(unfold(). <2>
order().
- by(bothE().count(),decr).
+ by(bothE().count(),desc).
limit(1).
fold())
g.V().union(limit(3).fold(),tail(3).fold()). <3>
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/docs/src/recipes/recommendation.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/recipes/recommendation.asciidoc b/docs/src/recipes/recommendation.asciidoc
index 9fefce2..aa4feb6 100644
--- a/docs/src/recipes/recommendation.asciidoc
+++ b/docs/src/recipes/recommendation.asciidoc
@@ -134,7 +134,7 @@ g.V().has('person','name','alice').as('her'). <1>
out('bought').where(without('self')). <4>
groupCount().
order(local).
- by(values, decr) <5>
+ by(values, desc) <5>
----
<1> Find "alice" who is the person for whom the product recommendation is being made.
@@ -183,7 +183,7 @@ g.V().has("person","name","alice").as("alice").
where(within("self")).count()).
select(values).
order(local).
- by(decr).limit(local, 1)
+ by(desc).limit(local, 1)
----
With the maximum value available, it can be used to chose those "person" vertices that have the three products in
@@ -199,7 +199,7 @@ g.V().has("person","name","alice").as("alice").
where(within("self")).count()).as("g").
select(values).
order(local).
- by(decr).limit(local, 1).as("m").
+ by(desc).limit(local, 1).as("m").
select("g").unfold().
where(select(values).as("m")).select(keys)
----
@@ -217,7 +217,7 @@ g.V().has("person","name","alice").as("alice").
where(within("self")).count()).as("g").
select(values).
order(local).
- by(decr).limit(local, 1).as("m").
+ by(desc).limit(local, 1).as("m").
select("g").unfold().
where(select(values).as("m")).select(keys).
out("bought").where(without("self"))
@@ -235,13 +235,13 @@ g.V().has("person","name","alice").as("alice").
where(within("self")).count()).as("g").
select(values).
order(local).
- by(decr).limit(local, 1).as("m").
+ by(desc).limit(local, 1).as("m").
select("g").unfold().
where(select(values).as("m")).select(keys).
out("bought").where(without("self")).
groupCount().
order(local).
- by(values, decr).
+ by(values, desc).
by(select(keys).values("name")).
unfold().select(keys).values("name")
----
@@ -257,7 +257,7 @@ g.V().has('person','name','alice').as('her').
out('bought').where(without('self')).
groupCount().
order(local).
- by(values, decr)
+ by(values, desc)
----
The above traversal performs a full ranking of items based on all the connected data. That could be a time consuming
@@ -280,7 +280,7 @@ g.V().has('person','name','alice').as('her').
out('bought').where(without('self')).timeLimit(1000).
groupCount().
order(local).
- by(values, decr)
+ by(values, desc)
----
In using sampling methods, it is important to consider that the natural ordering of edges in the graph may not produce
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/docs/src/recipes/style-guide.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/recipes/style-guide.asciidoc b/docs/src/recipes/style-guide.asciidoc
index 6da682d..de2aa08 100644
--- a/docs/src/recipes/style-guide.asciidoc
+++ b/docs/src/recipes/style-guide.asciidoc
@@ -49,8 +49,8 @@ g.V().out('knows').out('created'). <1>
select('java').unfold(). <3>
in('created').hasLabel('person'). <4>
order(). <5>
- by(inE().count(),decr). <6>
- by('age',incr).
+ by(inE().count(),desc). <6>
+ by('age',asc).
dedup().limit(10).values('name') <7>
----
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/docs/src/reference/gremlin-variants.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/reference/gremlin-variants.asciidoc b/docs/src/reference/gremlin-variants.asciidoc
index cff14e1..8aa2435 100644
--- a/docs/src/reference/gremlin-variants.asciidoc
+++ b/docs/src/reference/gremlin-variants.asciidoc
@@ -214,7 +214,7 @@ These can be used analogously to how they are used in Gremlin-Java.
[gremlin-python,modern]
----
-g.V().hasLabel('person').has('age',P.gt(30)).order().by('age',Order.decr).toList()
+g.V().hasLabel('person').has('age',P.gt(30)).order().by('age',Order.desc).toList()
----
Moreover, by importing the `statics` of Gremlin-Python, the class prefixes can be omitted.
@@ -226,7 +226,7 @@ With statics loaded its possible to represent the above traversal as below.
[gremlin-python,modern]
----
-g.V().hasLabel('person').has('age',gt(30)).order().by('age',decr).toList()
+g.V().hasLabel('person').has('age',gt(30)).order().by('age',desc).toList()
----
Finally, statics includes all the `__`-methods and thus, anonymous traversals like `__.out()` can be expressed as below.
@@ -373,7 +373,7 @@ Gremlin has various tokens (e.g. `T`, `P`, `Order`, `Operator`, etc.) that are r
These can be used analogously to how they are used in Gremlin-Java.
[source,csharp]
-g.V().HasLabel("person").Has("age",P.Gt(30)).Order().By("age",Order.decr).ToList()
+g.V().HasLabel("person").Has("age",P.Gt(30)).Order().By("age",Order.desc).ToList()
Moreover, the class prefixes can be omitted with a `using static`.
@@ -386,7 +386,7 @@ using static Gremlin.Net.Process.Traversal.Order;
Then it is possible to represent the above traversal as below.
[source,csharp]
-g.V().HasLabel("person").Has("age",Gt(30)).Order().By("age",decr).ToList()
+g.V().HasLabel("person").Has("age",Gt(30)).Order().By("age",desc).ToList()
Finally, with using static `__`, anonymous traversals like `__.Out()` can be expressed as below. That is, without the `__.`-prefix.
@@ -532,7 +532,7 @@ Gremlin has various tokens (e.g. `t`, `P`, `order`, `direction`, etc.) that are
objects.
[source,javascript]
-g.V().hasLabel('person').has('age', P.gt(30)).order().by('age', order.decr).toList()
+g.V().hasLabel('person').has('age', P.gt(30)).order().by('age', order.desc).toList()
These objects must be required manually from the `process` namespace:
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/docs/src/reference/the-graph.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/reference/the-graph.asciidoc b/docs/src/reference/the-graph.asciidoc
index 791c342..7769408 100644
--- a/docs/src/reference/the-graph.asciidoc
+++ b/docs/src/reference/the-graph.asciidoc
@@ -133,7 +133,7 @@ g.V().as('a').
hasNot('endTime').as('c').
select('a','b','c').by('name').by(value).by('startTime') // determine the current location of each person
g.V().has('name','gremlin').inE('uses').
- order().by('skill',incr).as('a').
+ order().by('skill',asc).as('a').
outV().as('b').
select('a','b').by('skill').by('name') // rank the users of gremlin by their skill level
----
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/docs/src/reference/the-traversal.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/reference/the-traversal.asciidoc b/docs/src/reference/the-traversal.asciidoc
index 3e162a4..89a0500 100644
--- a/docs/src/reference/the-traversal.asciidoc
+++ b/docs/src/reference/the-traversal.asciidoc
@@ -1147,10 +1147,10 @@ Note that the examples below use the <<the-crew-toy-graph,The Crew>> toy data se
[gremlin-groovy,theCrew]
----
g.V().as('person').
- properties('location').order().by('startTime',incr).limit(2).value().as('location').
+ properties('location').order().by('startTime',asc).limit(2).value().as('location').
select('person','location').by('name').by() <1>
g.V().as('person').
- local(properties('location').order().by('startTime',incr).limit(2)).value().as('location').
+ local(properties('location').order().by('startTime',asc).limit(2)).value().as('location').
select('person','location').by('name').by() <2>
----
@@ -1626,8 +1626,8 @@ When the objects of the traversal stream need to be sorted, `order()`-step (*map
[gremlin-groovy,modern]
----
g.V().values('name').order()
-g.V().values('name').order().by(decr)
-g.V().hasLabel('person').order().by('age', incr).values('name')
+g.V().values('name').order().by(desc)
+g.V().hasLabel('person').order().by('age', asc).values('name')
----
One of the most traversed objects in a traversal is an `Element`. An element can have properties associated with it
@@ -1637,8 +1637,8 @@ comparison of their properties.
[gremlin-groovy,modern]
----
g.V().values('name')
-g.V().order().by('name',incr).values('name')
-g.V().order().by('name',decr).values('name')
+g.V().order().by('name',asc).values('name')
+g.V().order().by('name',desc).values('name')
----
The `order()`-step allows the user to provide an arbitrary number of comparators for primary, secondary, etc. sorting.
@@ -1647,10 +1647,10 @@ based on the age of the person.
[gremlin-groovy,modern]
----
-g.V().hasLabel('person').order().by(outE('created').count(), incr).
- by('age', incr).values('name')
-g.V().hasLabel('person').order().by(outE('created').count(), incr).
- by('age', decr).values('name')
+g.V().hasLabel('person').order().by(outE('created').count(), asc).
+ by('age', asc).values('name')
+g.V().hasLabel('person').order().by(outE('created').count(), asc).
+ by('age', desc).values('name')
----
Randomizing the order of the traversers at a particular point in the traversal is possible with `Order.shuffle`.
@@ -1666,10 +1666,10 @@ It is possible to use `order(local)` to order the current local object and not t
[gremlin-groovy,modern]
----
-g.V().values('age').fold().order(local).by(decr) <1>
-g.V().values('age').order(local).by(decr) <2>
-g.V().groupCount().by(inE().count()).order(local).by(values, decr) <3>
-g.V().groupCount().by(inE().count()).order(local).by(keys, incr) <4>
+g.V().values('age').fold().order(local).by(desc) <1>
+g.V().values('age').order(local).by(desc) <2>
+g.V().groupCount().by(inE().count()).order(local).by(values, desc) <3>
+g.V().groupCount().by(inE().count()).order(local).by(keys, asc) <4>
----
<1> The ages are gathered into a list and then that list is sorted in decreasing order.
@@ -1679,11 +1679,16 @@ g.V().groupCount().by(inE().count()).order(local).by(keys, incr) <4>
NOTE: The `values` and `keys` enums are from `Column` which is used to select "columns" from a `Map`, `Map.Entry`, or `Path`.
+NOTE: Prior to version 3.3.4, ordering was defined by `Order.incr` for ascending order and `Order.decr` for descending
+order. That approach is now deprecated with the preferred method shown in the examples which uses the more common
+forms for query languages in `Order.asc` and Order.desc.
+
*Additional References*
link:++http://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#order--++[`order()`],
link:++http://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#order-org.apache.tinkerpop.gremlin.process.traversal.Scope-++[`order(Scope)`],
-link:++http://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/process/traversal/Scope.html++[`Scope`]
+link:++http://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/process/traversal/Scope.html++[`Scope`],
+link:++http://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/process/traversal/Order.html++[`Order`]
[[pagerank-step]]
=== PageRank Step
@@ -1700,7 +1705,7 @@ g.V().hasLabel('person').
pageRank().
by(outE('knows')).
by('friendRank').
- order().by('friendRank',decr).valueMap('name','friendRank')
+ order().by('friendRank',desc).valueMap('name','friendRank')
----
The <<explain-step,`explain()`>>-step can be used to understand how the traversal is compiled into multiple `GraphComputer` jobs.
@@ -1712,7 +1717,7 @@ g.V().hasLabel('person').
pageRank().
by(outE('knows')).
by('friendRank').
- order().by('friendRank',decr).valueMap('name','friendRank').explain()
+ order().by('friendRank',desc).valueMap('name','friendRank').explain()
----
*Additional References*
@@ -1871,7 +1876,7 @@ g.V().out('created').
project('a','b').
by('name').
by(__.in('created').count()).
- order().by(select('b'),decr).
+ order().by(select('b'),desc).
select('a')
g.V().has('name','marko').
project('out','in').
@@ -1974,7 +1979,7 @@ Finally, an example is provided using `PageRankVertexProgram` which doesn't use
g = graph.traversal().withComputer()
g.V().hasLabel('person').
program(PageRankVertexProgram.build().property('rank').create(graph)).
- order().by('rank', incr).
+ order().by('rank', asc).
valueMap('name', 'rank')
----
@@ -2304,11 +2309,11 @@ ranking.
graph.io(graphml()).readGraph('data/grateful-dead.xml')
g = graph.traversal()
g.V().hasLabel('song').out('followedBy').groupCount().by('name').
- order(local).by(values,decr).limit(local, 5)
+ order(local).by(values,desc).limit(local, 5)
g.V().hasLabel('song').out('followedBy').groupCount().by('name').
- order(local).by(values,decr).limit(local, 5).select(keys)
+ order(local).by(values,desc).limit(local, 5).select(keys)
g.V().hasLabel('song').out('followedBy').groupCount().by('name').
- order(local).by(values,decr).limit(local, 5).select(keys).unfold()
+ order(local).by(values,desc).limit(local, 5).select(keys).unfold()
----
Similarly, for extracting the values from a path or map.
@@ -2320,7 +2325,7 @@ g = graph.traversal()
g.V().hasLabel('song').out('sungBy').groupCount().by('name') <1>
g.V().hasLabel('song').out('sungBy').groupCount().by('name').select(values) <2>
g.V().hasLabel('song').out('sungBy').groupCount().by('name').select(values).unfold().
- groupCount().order(local).by(values,decr).limit(local, 5) <3>
+ groupCount().order(local).by(values,desc).limit(local, 5) <3>
----
<1> Which artist sung how many songs?
@@ -2632,10 +2637,10 @@ that can be used to time execution of a body of code.
[gremlin-groovy,modern]
----
-g.V().repeat(both().groupCount('m')).times(16).cap('m').order(local).by(values,decr).next()
-clock(1) {g.V().repeat(both().groupCount('m')).times(16).cap('m').order(local).by(values,decr).next()}
-g.V().repeat(timeLimit(2).both().groupCount('m')).times(16).cap('m').order(local).by(values,decr).next()
-clock(1) {g.V().repeat(timeLimit(2).both().groupCount('m')).times(16).cap('m').order(local).by(values,decr).next()}
+g.V().repeat(both().groupCount('m')).times(16).cap('m').order(local).by(values,desc).next()
+clock(1) {g.V().repeat(both().groupCount('m')).times(16).cap('m').order(local).by(values,desc).next()}
+g.V().repeat(timeLimit(2).both().groupCount('m')).times(16).cap('m').order(local).by(values,desc).next()
+clock(1) {g.V().repeat(timeLimit(2).both().groupCount('m')).times(16).cap('m').order(local).by(values,desc).next()}
----
In essence, the relative order is respected, even through the number of traversers at each vertex is not. The primary
@@ -3087,7 +3092,7 @@ A few more examples of the use of `Scope` are provided below:
----
g.V().both().group().by(label).select('software').dedup(local)
g.V().groupCount().by(label).select(values).min(local)
-g.V().groupCount().by(label).order(local).by(values,decr)
+g.V().groupCount().by(label).order(local).by(values,desc)
g.V().fold().sample(local,2)
----
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/docs/src/tutorials/gremlin-language-variants/index.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/tutorials/gremlin-language-variants/index.asciidoc b/docs/src/tutorials/gremlin-language-variants/index.asciidoc
index db1a8f9..ebc988f 100644
--- a/docs/src/tutorials/gremlin-language-variants/index.asciidoc
+++ b/docs/src/tutorials/gremlin-language-variants/index.asciidoc
@@ -49,7 +49,7 @@ public class MyApplication {
// assumes that args[1] and args[2] are range boundaries
Iterator<Map<String,Double>> result =
g.V().hasLabel("product").
- order().by("unitPrice", incr).
+ order().by("unitPrice", asc).
range(Integer.valueOf(args[1]), Integer.valueOf(args[2])).
valueMap("name", "unitPrice")
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/docs/src/upgrade/release-3.3.x.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/upgrade/release-3.3.x.asciidoc b/docs/src/upgrade/release-3.3.x.asciidoc
index ea2e159..d0f3a23 100644
--- a/docs/src/upgrade/release-3.3.x.asciidoc
+++ b/docs/src/upgrade/release-3.3.x.asciidoc
@@ -27,6 +27,16 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
Please see the link:https://github.com/apache/tinkerpop/blob/3.3.4/CHANGELOG.asciidoc#release-3-3-4[changelog] for a complete list of all the modifications that are part of this release.
+=== Upgrading for Users
+
+==== Introducing Order.asc and Order.desc
+
+The `Order` enum originally introduced `incr` for ascending order and `decr` for descending order. It's not clear why
+they were named this way when common querying parlance would call for `asc` and `desc` for those respective cases. Note
+that `incr` and `decr` have not been removed - just deprecated and thus marked for future removal. Prefer `asc` and
+`desc` going forward when writing Gremlin and look to update existing code using the deprecated values.
+
+See: link:https://issues.apache.org/jira/browse/TINKERPOP-1956[TINKERPOP-1956]
== TinkerPop 3.3.3
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Order.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Order.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Order.java
index 0b88bba..9e89479 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Order.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Order.java
@@ -35,6 +35,7 @@ public enum Order implements Comparator<Object> {
* Order in ascending fashion
*
* @since 3.0.0-incubating
+ * @deprecated As of release 3.3.4, replaced by {@link #asc}.
*/
incr {
@Override
@@ -54,6 +55,7 @@ public enum Order implements Comparator<Object> {
* Order in descending fashion.
*
* @since 3.0.0-incubating
+ * @deprecated As of release 3.3.4, replaced by {@link #desc}.
*/
decr {
@Override
@@ -84,6 +86,44 @@ public enum Order implements Comparator<Object> {
public Order reversed() {
return shuffle;
}
+ },
+
+ /**
+ * Order in ascending fashion
+ *
+ * @since 3.3.4
+ */
+ asc {
+ @Override
+ public int compare(final Object first, final Object second) {
+ return first instanceof Number && second instanceof Number
+ ? NumberHelper.compare((Number) first, (Number) second)
+ : Comparator.<Comparable>naturalOrder().compare((Comparable) first, (Comparable) second);
+ }
+
+ @Override
+ public Order reversed() {
+ return decr;
+ }
+ },
+
+ /**
+ * Order in descending fashion.
+ *
+ * @since 3.3.4
+ */
+ desc {
+ @Override
+ public int compare(final Object first, final Object second) {
+ return first instanceof Number && second instanceof Number
+ ? NumberHelper.compare((Number) second, (Number) first)
+ : Comparator.<Comparable>reverseOrder().compare((Comparable) first, (Comparable) second);
+ }
+
+ @Override
+ public Order reversed() {
+ return incr;
+ }
};
private static final Random RANDOM = new Random();
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java
index fa705f4..fa80e97 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java
@@ -90,7 +90,7 @@ public final class OrderGlobalStep<S, C extends Comparable> extends CollectingBa
@Override
public void modulateBy(final Traversal.Admin<?, ?> traversal) {
- this.modulateBy(traversal, Order.incr);
+ this.modulateBy(traversal, Order.asc);
}
@Override
@@ -100,7 +100,7 @@ public final class OrderGlobalStep<S, C extends Comparable> extends CollectingBa
@Override
public List<Pair<Traversal.Admin<S, C>, Comparator<C>>> getComparators() {
- return this.comparators.isEmpty() ? Collections.singletonList(new Pair<>(new IdentityTraversal(), (Comparator) Order.incr)) : Collections.unmodifiableList(this.comparators);
+ return this.comparators.isEmpty() ? Collections.singletonList(new Pair<>(new IdentityTraversal(), (Comparator) Order.asc)) : Collections.unmodifiableList(this.comparators);
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderLocalStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderLocalStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderLocalStep.java
index 56f3404..95cb6db 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderLocalStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderLocalStep.java
@@ -72,7 +72,7 @@ public final class OrderLocalStep<S, C extends Comparable> extends MapStep<S, S>
@Override
public void modulateBy(final Traversal.Admin<?, ?> traversal) {
- this.addComparator((Traversal.Admin<S, C>) traversal, (Comparator) Order.incr);
+ this.addComparator((Traversal.Admin<S, C>) traversal, (Comparator) Order.asc);
}
@Override
@@ -82,7 +82,7 @@ public final class OrderLocalStep<S, C extends Comparable> extends MapStep<S, S>
@Override
public List<Pair<Traversal.Admin<S, C>, Comparator<C>>> getComparators() {
- return this.comparators.isEmpty() ? Collections.singletonList(new Pair<>(new IdentityTraversal(), (Comparator) Order.incr)) : Collections.unmodifiableList(this.comparators);
+ return this.comparators.isEmpty() ? Collections.singletonList(new Pair<>(new IdentityTraversal(), (Comparator) Order.asc)) : Collections.unmodifiableList(this.comparators);
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/function/ChainedComparator.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/function/ChainedComparator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/function/ChainedComparator.java
index bdb2e6d..984767f 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/function/ChainedComparator.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/function/ChainedComparator.java
@@ -43,7 +43,7 @@ public final class ChainedComparator<S, C extends Comparable> implements Compara
public ChainedComparator(final boolean traversers, final List<Pair<Traversal.Admin<S, C>, Comparator<C>>> comparators) {
this.traversers = traversers;
if (comparators.isEmpty())
- this.comparators.add(new Pair<>(new IdentityTraversal(), (Comparator) Order.incr));
+ this.comparators.add(new Pair<>(new IdentityTraversal(), (Comparator) Order.asc));
else
this.comparators.addAll(comparators);
this.isShuffle = (Comparator) (this.comparators.get(this.comparators.size() - 1).getValue1()) == Order.shuffle;
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/function/MultiComparator.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/function/MultiComparator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/function/MultiComparator.java
index d97d147..3adf1b8 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/function/MultiComparator.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/function/MultiComparator.java
@@ -51,7 +51,7 @@ public final class MultiComparator<C> implements Comparator<C>, Serializable {
@Override
public int compare(final C objectA, final C objectB) {
if (this.comparators.isEmpty()) {
- return Order.incr.compare(objectA, objectB);
+ return Order.asc.compare(objectA, objectB);
} else {
for (int i = this.startIndex; i < this.comparators.size(); i++) {
final int comparison = this.comparators.get(i).compare(this.getObject(objectA, i), this.getObject(objectB, i));
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/BytecodeTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/BytecodeTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/BytecodeTest.java
index 7b1d810..1512d53 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/BytecodeTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/BytecodeTest.java
@@ -44,9 +44,9 @@ public class BytecodeTest {
@Test
public void shouldHaveProperHashAndEquality() {
final GraphTraversalSource g = EmptyGraph.instance().traversal();
- final Traversal.Admin traversal1 = g.V().out().repeat(__.out().in()).times(2).groupCount().by(__.outE().count()).select(Column.keys).order().by(Order.decr).asAdmin();
- final Traversal.Admin traversal2 = g.V().out().repeat(__.out().in()).times(2).groupCount().by(__.outE().count()).select(Column.keys).order().by(Order.decr).asAdmin();
- final Traversal.Admin traversal3 = g.V().out().repeat(__.out().in()).times(2).groupCount().by(__.outE().count()).select(Column.values).order().by(Order.decr).asAdmin();
+ final Traversal.Admin traversal1 = g.V().out().repeat(__.out().in()).times(2).groupCount().by(__.outE().count()).select(Column.keys).order().by(Order.desc).asAdmin();
+ final Traversal.Admin traversal2 = g.V().out().repeat(__.out().in()).times(2).groupCount().by(__.outE().count()).select(Column.keys).order().by(Order.desc).asAdmin();
+ final Traversal.Admin traversal3 = g.V().out().repeat(__.out().in()).times(2).groupCount().by(__.outE().count()).select(Column.values).order().by(Order.desc).asAdmin();
assertEquals(traversal1, traversal2);
assertNotEquals(traversal1, traversal3);
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/OrderTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/OrderTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/OrderTest.java
index 01d93ea..a8124c6 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/OrderTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/OrderTest.java
@@ -42,6 +42,21 @@ public class OrderTest {
@Parameterized.Parameters(name = "{0}.test({1},{2})")
public static Iterable<Object[]> data() throws ParseException {
return new ArrayList<>(Arrays.asList(new Object[][]{
+ {Order.asc, Arrays.asList("b", "a", "c", "d"), Arrays.asList("a", "b", "c", "d")},
+ {Order.desc, Arrays.asList("b", "a", "c", "d"), Arrays.asList("d", "c", "b", "a")},
+ {Order.asc, Arrays.asList(formatter.parse("1-Jan-2018"), formatter.parse("1-Jan-2020"), formatter.parse("1-Jan-2008")),
+ Arrays.asList(formatter.parse("1-Jan-2008"), formatter.parse("1-Jan-2018"), formatter.parse("1-Jan-2020"))},
+ {Order.desc, Arrays.asList(formatter.parse("1-Jan-2018"), formatter.parse("1-Jan-2020"), formatter.parse("1-Jan-2008")),
+ Arrays.asList(formatter.parse("1-Jan-2020"), formatter.parse("1-Jan-2018"), formatter.parse("1-Jan-2008"))},
+ {Order.desc, Arrays.asList(100L, 1L, -1L, 0L), Arrays.asList(100L, 1L, 0L, -1L)},
+ {Order.asc, Arrays.asList(100.1f, 1.1f, -1.1f, 0.1f), Arrays.asList(-1.1f, 0.1f, 1.1f, 100.1f)},
+ {Order.desc, Arrays.asList(100.1f, 1.1f, -1.1f, 0.1f), Arrays.asList(100.1f, 1.1f, 0.1f, -1.1f)},
+ {Order.asc, Arrays.asList(100.1d, 1.1d, -1.1d, 0.1d), Arrays.asList(-1.1d, 0.1d, 1.1d, 100.1d)},
+ {Order.desc, Arrays.asList(100.1d, 1.1d, -1.1d, 0.1d), Arrays.asList(100.1d, 1.1d, 0.1d, -1.1d)},
+ {Order.asc, Arrays.asList(100L, 1L, -1L, 0L), Arrays.asList(-1L, 0L, 1L, 100L)},
+ {Order.desc, Arrays.asList(100L, 1L, -1L, 0L), Arrays.asList(100L, 1L, 0L, -1L)},
+ {Order.asc, Arrays.asList(100, 1, -1, 0), Arrays.asList(-1, 0, 1, 100)},
+ {Order.desc, Arrays.asList(100, 1, -1, 0), Arrays.asList(100, 1, 0, -1)},
{Order.incr, Arrays.asList("b", "a", "c", "d"), Arrays.asList("a", "b", "c", "d")},
{Order.decr, Arrays.asList("b", "a", "c", "d"), Arrays.asList("d", "c", "b", "a")},
{Order.incr, Arrays.asList(formatter.parse("1-Jan-2018"), formatter.parse("1-Jan-2020"), formatter.parse("1-Jan-2008")),
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStepTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStepTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStepTest.java
index 82acad3..31457fc 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStepTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStepTest.java
@@ -45,7 +45,13 @@ public class OrderGlobalStepTest extends StepTest {
__.order().by("age", Order.decr),
__.order().by(outE().count(), Order.incr),
__.order().by("age", Order.incr).by(outE().count(), Order.incr),
- __.order().by(outE().count(), Order.incr).by("age", Order.incr)
+ __.order().by(outE().count(), Order.incr).by("age", Order.incr),
+ __.order().by(Order.desc),
+ __.order().by("age", Order.asc),
+ __.order().by("age", Order.desc),
+ __.order().by(outE().count(), Order.asc),
+ __.order().by("age", Order.asc).by(outE().count(), Order.asc),
+ __.order().by(outE().count(), Order.asc).by("age", Order.asc)
);
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderLocalStepTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderLocalStepTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderLocalStepTest.java
index 8cc2e7e..5999793 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderLocalStepTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderLocalStepTest.java
@@ -47,7 +47,13 @@ public class OrderLocalStepTest extends StepTest {
__.order(Scope.local).by("age", Order.decr),
__.order(Scope.local).by(outE().count(), Order.incr),
__.order(Scope.local).by("age", Order.incr).by(outE().count(), Order.incr),
- __.order(Scope.local).by(outE().count(), Order.incr).by("age", Order.incr)
+ __.order(Scope.local).by(outE().count(), Order.incr).by("age", Order.incr),
+ __.order(Scope.local).by(Order.desc),
+ __.order(Scope.local).by("age", Order.asc),
+ __.order(Scope.local).by("age", Order.desc),
+ __.order(Scope.local).by(outE().count(), Order.asc),
+ __.order(Scope.local).by("age", Order.asc).by(outE().count(), Order.asc),
+ __.order(Scope.local).by(outE().count(), Order.asc).by("age", Order.asc)
);
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathRetractionStrategyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathRetractionStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathRetractionStrategyTest.java
index 240ff1a..0669b08 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathRetractionStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathRetractionStrategyTest.java
@@ -201,7 +201,7 @@ public class PathRetractionStrategyTest {
{__.V().select("a").map(select("b").repeat(select("c"))).select("a"),
"[[a, b, c], [[a, c], [[a, c]]], []]", null},
{__.V().out("created").project("a", "b").by("name").by(__.in("created").count()).order().by(select("b")).select("a"), "[[[a]], []]", null},
- {__.order().by("weight", Order.decr).store("w").by("weight").filter(values("weight").as("cw").
+ {__.order().by("weight", Order.desc).store("w").by("weight").filter(values("weight").as("cw").
select("w").by(limit(Scope.local, 1)).as("mw").where("cw", eq("mw"))).project("from", "to", "weight").by(__.outV()).by(__.inV()).by("weight"),
"[[[cw, mw], []]]", null},
{__.V().limit(1).as("z").out().repeat(store("seen").out().where(without("seen"))).until(where(eq("z"))),
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/LambdaRestrictionStrategyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/LambdaRestrictionStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/LambdaRestrictionStrategyTest.java
index b79d2c9..06309ea 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/LambdaRestrictionStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/LambdaRestrictionStrategyTest.java
@@ -63,9 +63,9 @@ public class LambdaRestrictionStrategyTest {
{"order().by((a,b)->a.compareTo(b))", __.order().by((a, b) -> ((Integer) a).compareTo((Integer) b)), false},
{"order(local).by((a,b)->a.compareTo(b))", __.order(Scope.local).by((a, b) -> ((Integer) a).compareTo((Integer) b)), false},
{"__.choose(v->v.toString().equals(\"marko\"),__.out(),__.in())", __.choose(v -> v.toString().equals("marko"), __.out(), __.in()), false},
- {"order().by(label,decr)", __.order().by(T.label, Order.decr), true},
+ {"order().by(label,desc)", __.order().by(T.label, Order.desc), true},
{"order(local).by(values)", __.order(Scope.local).by(values), true},
- {"order(local).by(values,decr)", __.order(Scope.local).by(values,Order.decr), true},
+ {"order(local).by(values,desc)", __.order(Scope.local).by(values,Order.desc), true},
{"order(local).by(values,(a,b) -> a.compareTo(b))", __.order(Scope.local).by(values, (a, b) -> ((Double) a).compareTo((Double) b)), false},
//
{"groupCount().by(label)", __.groupCount().by(T.label), true},
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/util/function/MultiComparatorTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/util/function/MultiComparatorTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/util/function/MultiComparatorTest.java
index de2a741..83520be 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/util/function/MultiComparatorTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/util/function/MultiComparatorTest.java
@@ -39,20 +39,20 @@ public class MultiComparatorTest {
@Test
public void shouldHandleShuffleCorrectly() {
- MultiComparator<Object> comparator = new MultiComparator<>(Arrays.asList(Order.incr, Order.decr, Order.shuffle));
+ MultiComparator<Object> comparator = new MultiComparator<>(Arrays.asList(Order.asc, Order.desc, Order.shuffle));
assertTrue(comparator.isShuffle()); // because its a shuffle, the comparator simply returns 0
for (int i = 0; i < 100; i++) {
assertEquals(0, comparator.compare(RANDOM.nextInt(), RANDOM.nextInt()));
}
//
- comparator = new MultiComparator<>(Arrays.asList(Order.incr, Order.shuffle, Order.decr));
+ comparator = new MultiComparator<>(Arrays.asList(Order.asc, Order.shuffle, Order.desc));
assertEquals(1, comparator.compare(1, 2));
assertEquals(-1, comparator.compare(2, 1));
assertEquals(0, comparator.compare(2, 2));
assertEquals(2, comparator.startIndex);
assertFalse(comparator.isShuffle());
//
- comparator = new MultiComparator<>(Arrays.asList(Order.incr, Order.shuffle, Order.decr, Order.shuffle, Order.incr));
+ comparator = new MultiComparator<>(Arrays.asList(Order.asc, Order.shuffle, Order.desc, Order.shuffle, Order.asc));
assertEquals(-1, comparator.compare(1, 2));
assertEquals(1, comparator.compare(2, 1));
assertEquals(0, comparator.compare(2, 2));
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/NamingConversions.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/NamingConversions.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/NamingConversions.cs
index 585c4f0..eadaa0e 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/NamingConversions.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/NamingConversions.cs
@@ -72,6 +72,8 @@ namespace Gremlin.Net.Process.Traversal
{"Order.Decr", "decr"},
{"Order.Incr", "incr"},
{"Order.Shuffle", "shuffle"},
+ {"Order.Asc", "asc"},
+ {"Order.Desc", "desc"},
{"Pick.Any", "any"},
{"Pick.None", "none"},
{"Pop.All", "all"},
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Order.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Order.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Order.cs
index 2430114..9fce332 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Order.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Order.cs
@@ -36,15 +36,21 @@ namespace Gremlin.Net.Process.Traversal
{
}
+ public static Order Asc => new Order("asc");
+
public static Order Decr => new Order("decr");
+ public static Order Desc => new Order("desc");
+
public static Order Incr => new Order("incr");
public static Order Shuffle => new Order("shuffle");
private static readonly IDictionary<string, Order> Properties = new Dictionary<string, Order>
{
+ { "asc", Asc },
{ "decr", Decr },
+ { "desc", Desc },
{ "incr", Incr },
{ "shuffle", Shuffle },
};
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/DriverRemoteConnection/EnumTests.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/DriverRemoteConnection/EnumTests.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/DriverRemoteConnection/EnumTests.cs
index 00541ad..b849769 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/DriverRemoteConnection/EnumTests.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/DriverRemoteConnection/EnumTests.cs
@@ -39,7 +39,7 @@ namespace Gremlin.Net.IntegrationTest.Process.Traversal.DriverRemoteConnection
var connection = _connectionFactory.CreateRemoteConnection();
var g = graph.Traversal().WithRemote(connection);
- var orderedAges = g.V().Values<int>("age").Order().By(Order.Decr).ToList();
+ var orderedAges = g.V().Values<int>("age").Order().By(Order.Desc).ToList();
Assert.Equal(new List<int> {35, 32, 29, 27}, orderedAges);
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal.js
index b214d8d..d39ccf0 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal.js
@@ -260,7 +260,7 @@ module.exports = {
graphSONVersion: toEnum('GraphSONVersion', 'V1_0 V2_0 V3_0'),
gryoVersion: toEnum('GryoVersion', 'V1_0 V3_0'),
operator: toEnum('Operator', 'addAll and assign div max min minus mult or sum sumLong'),
- order: toEnum('Order', 'decr incr shuffle'),
+ order: toEnum('Order', 'asc decr desc incr shuffle'),
pick: toEnum('Pick', 'any none'),
pop: toEnum('Pop', 'all first last mixed'),
scope: toEnum('Scope', 'global local'),
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/traversal-test.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/traversal-test.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/traversal-test.js
index 130a218..233488a 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/traversal-test.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/traversal-test.js
@@ -44,7 +44,7 @@ describe('Traversal', function () {
it('should add steps with an enum value', function () {
const g = new graph.Graph().traversal();
- const bytecode = g.V().order().by('age', t.order.decr).getBytecode();
+ const bytecode = g.V().order().by('age', t.order.desc).getBytecode();
assert.ok(bytecode);
assert.strictEqual(bytecode.sourceInstructions.length, 0);
assert.strictEqual(bytecode.stepInstructions.length, 3);
@@ -54,7 +54,7 @@ describe('Traversal', function () {
assert.strictEqual(bytecode.stepInstructions[2][1], 'age');
assert.strictEqual(typeof bytecode.stepInstructions[2][2], 'object');
assert.strictEqual(bytecode.stepInstructions[2][2].typeName, 'Order');
- assert.strictEqual(bytecode.stepInstructions[2][2].elementName, 'decr');
+ assert.strictEqual(bytecode.stepInstructions[2][2].elementName, 'desc');
});
});
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-python/src/main/jython/gremlin_python/process/traversal.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/gremlin_python/process/traversal.py b/gremlin-python/src/main/jython/gremlin_python/process/traversal.py
index a820838..068c865 100644
--- a/gremlin-python/src/main/jython/gremlin_python/process/traversal.py
+++ b/gremlin-python/src/main/jython/gremlin_python/process/traversal.py
@@ -148,11 +148,13 @@ statics.add_static('or_', Operator.or_)
statics.add_static('addAll', Operator.addAll)
statics.add_static('sumLong', Operator.sumLong)
-Order = Enum('Order', ' decr incr shuffle')
+Order = Enum('Order', ' asc decr desc incr shuffle')
statics.add_static('incr', Order.incr)
statics.add_static('decr', Order.decr)
statics.add_static('shuffle', Order.shuffle)
+statics.add_static('asc', Order.asc)
+statics.add_static('desc', Order.desc)
Pick = Enum('Pick', ' any none')
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-test/features/branch/Local.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/branch/Local.feature b/gremlin-test/features/branch/Local.feature
index 0abb1eb..3b7ab98 100644
--- a/gremlin-test/features/branch/Local.feature
+++ b/gremlin-test/features/branch/Local.feature
@@ -21,7 +21,7 @@ Feature: Step - local()
Given the crew graph
And the traversal of
"""
- g.V().local(__.properties("location").order().by(T.value, Order.incr).range(0, 2)).value()
+ g.V().local(__.properties("location").order().by(T.value, Order.asc).range(0, 2)).value()
"""
When iterated to list
Then the result should be unordered
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-test/features/filter/Dedup.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/filter/Dedup.feature b/gremlin-test/features/filter/Dedup.feature
index c502c96..501d02b 100644
--- a/gremlin-test/features/filter/Dedup.feature
+++ b/gremlin-test/features/filter/Dedup.feature
@@ -169,11 +169,11 @@ Feature: Step - dedup()
| p[v[josh],v[lop],v[marko]] |
| p[v[peter],v[lop],v[marko]] |
- Scenario: g_V_outE_asXeX_inV_asXvX_selectXeX_order_byXweight_incrX_selectXvX_valuesXnameX_dedup
+ Scenario: g_V_outE_asXeX_inV_asXvX_selectXeX_order_byXweight_ascX_selectXvX_valuesXnameX_dedup
Given the modern graph
And the traversal of
"""
- g.V().outE().as("e").inV().as("v").select("e").order().by("weight", Order.incr).select("v").values("name").dedup()
+ g.V().outE().as("e").inV().as("v").select("e").order().by("weight", Order.asc).select("v").values("name").dedup()
"""
When iterated to list
Then the result should be unordered
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-test/features/map/AddEdge.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/AddEdge.feature b/gremlin-test/features/map/AddEdge.feature
index 69c24c2..028dceb 100644
--- a/gremlin-test/features/map/AddEdge.feature
+++ b/gremlin-test/features/map/AddEdge.feature
@@ -336,7 +336,7 @@ Feature: Step - addE()
And the graph should return 1 for count of "g.V(v1).in(\"created\").has(\"name\",\"lop\")"
And the graph should return 1 for count of "g.V(v1).outE(\"created\")"
- Scenario: g_addEXV_outE_label_groupCount_orderXlocalX_byXvalues_decrX_selectXkeysX_unfold_limitX1XX_fromXV_hasXname_vadasXX_toXV_hasXname_lopXX
+ Scenario: g_addEXV_outE_label_groupCount_orderXlocalX_byXvalues_descX_selectXkeysX_unfold_limitX1XX_fromXV_hasXname_vadasXX_toXV_hasXname_lopXX
Given the empty graph
And the graph initializer of
"""
@@ -356,7 +356,7 @@ Feature: Step - addE()
And using the parameter v2 defined as "v[vadas]"
And the traversal of
"""
- g.addE(__.V().outE().label().groupCount().order(Scope.local).by(Column.values, Order.decr).select(Column.keys).unfold().limit(1)).from(__.V().has("name", "vadas")).to(__.V().has("name", "lop"))
+ g.addE(__.V().outE().label().groupCount().order(Scope.local).by(Column.values, Order.desc).select(Column.keys).unfold().limit(1)).from(__.V().has("name", "vadas")).to(__.V().has("name", "lop"))
"""
When iterated to list
Then the result should have a count of 1
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-test/features/map/Match.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Match.feature b/gremlin-test/features/map/Match.feature
index 55dffcf..c019cd0 100644
--- a/gremlin-test/features/map/Match.feature
+++ b/gremlin-test/features/map/Match.feature
@@ -320,11 +320,11 @@ Feature: Step - match()
| m[{"a":"v[josh]","b":"v[lop]"}] |
| m[{"a":"v[peter]","b":"v[lop]"}] |
- Scenario: g_V_matchXa_outEXcreatedX_order_byXweight_decrX_limitX1X_inV_b__b_hasXlang_javaXX_selectXa_bX_byXnameX
+ Scenario: g_V_matchXa_outEXcreatedX_order_byXweight_descX_limitX1X_inV_b__b_hasXlang_javaXX_selectXa_bX_byXnameX
Given the modern graph
And the traversal of
"""
- g.V().match(__.as("a").outE("created").order().by("weight", Order.decr).limit(1).inV().as("b"),
+ g.V().match(__.as("a").outE("created").order().by("weight", Order.desc).limit(1).inV().as("b"),
__.as("b").has("lang", "java")).select("a", "b").by("name")
"""
When iterated to list
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-test/features/map/Order.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Order.feature b/gremlin-test/features/map/Order.feature
index 33ae97a..f361878 100644
--- a/gremlin-test/features/map/Order.feature
+++ b/gremlin-test/features/map/Order.feature
@@ -67,6 +67,22 @@ Feature: Step - order()
| ripple |
| vadas |
+ Scenario: g_V_order_byXname_ascX_name
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().order().by("name", Order.asc).values("name")
+ """
+ When iterated to list
+ Then the result should be ordered
+ | result |
+ | josh |
+ | lop |
+ | marko |
+ | peter |
+ | ripple |
+ | vadas |
+
Scenario: g_V_order_byXnameX_name
Given the modern graph
And the traversal of
@@ -99,6 +115,22 @@ Feature: Step - order()
| d[0.4].d |
| d[0.2].d |
+ Scenario: g_V_outE_order_byXweight_descX_weight
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().outE().order().by("weight", Order.desc).values("weight")
+ """
+ When iterated to list
+ Then the result should be ordered
+ | result |
+ | d[1.0].d |
+ | d[1.0].d |
+ | d[0.5].d |
+ | d[0.4].d |
+ | d[0.4].d |
+ | d[0.2].d |
+
Scenario: g_V_order_byXname_a1_b1X_byXname_b2_a2X_name
Given the modern graph
And using the parameter l1 defined as "c[a, b -> a.substring(1, 2).compareTo(b.substring(1, 2))]"
@@ -131,11 +163,11 @@ Feature: Step - order()
| m[{"a":"v[josh]","b":"v[ripple]"}] |
| m[{"a":"v[josh]","b":"v[lop]"}] |
- Scenario: g_V_both_hasLabelXpersonX_order_byXage_decrX_limitX5X_name
+ Scenario: g_V_both_hasLabelXpersonX_order_byXage_descX_limitX5X_name
Given the modern graph
And the traversal of
"""
- g.V().both().hasLabel("person").order().by("age", Order.decr).limit(5).values("name")
+ g.V().both().hasLabel("person").order().by("age", Order.desc).limit(5).values("name")
"""
When iterated to list
Then the result should be ordered
@@ -146,11 +178,11 @@ Feature: Step - order()
| josh |
| marko |
- Scenario: g_V_properties_order_byXkey_decrX_key
+ Scenario: g_V_properties_order_byXkey_descX_key
Given the modern graph
And the traversal of
"""
- g.V().properties().order().by(T.key, Order.decr).key()
+ g.V().properties().order().by(T.key, Order.desc).key()
"""
When iterated to list
Then the result should be ordered
@@ -168,12 +200,12 @@ Feature: Step - order()
| age |
| age |
- Scenario: g_V_hasLabelXpersonX_order_byXvalueXageX__decrX_name
+ Scenario: g_V_hasLabelXpersonX_order_byXvalueXageX_descX_name
Given the modern graph
And using the parameter l1 defined as "c[it.value('age')]"
And the traversal of
"""
- g.V().hasLabel("person").order().by(l1, Order.decr).values("name")
+ g.V().hasLabel("person").order().by(l1, Order.desc).values("name")
"""
When iterated to list
Then the result should be ordered
@@ -194,11 +226,11 @@ Feature: Step - order()
| result |
| m[{"vadas":"d[0].i","peter":"d[0.2].d","josh":"d[1.4].d","marko":"d[1.9].d"}] |
- Scenario: g_V_localXbothE_weight_foldX_order_byXsumXlocalX_decrX
+ Scenario: g_V_localXbothE_weight_foldX_order_byXsumXlocalX_descX
Given the modern graph
And the traversal of
"""
- g.V().local(__.bothE().values("weight").fold()).order().by(__.sum(Scope.local), Order.decr)
+ g.V().local(__.bothE().values("weight").fold()).order().by(__.sum(Scope.local), Order.desc)
"""
When iterated to list
Then the result should be ordered
@@ -210,22 +242,22 @@ Feature: Step - order()
| l[d[0.5].d] |
| l[d[0.2].d] |
- Scenario: g_V_group_byXlabelX_byXname_order_byXdecrX_foldX
+ Scenario: g_V_group_byXlabelX_byXname_order_byXdescX_foldX
Given the modern graph
And the traversal of
"""
- g.V().group().by(T.label).by(__.values("name").order().by(Order.decr).fold())
+ g.V().group().by(T.label).by(__.values("name").order().by(Order.desc).fold())
"""
When iterated to list
Then the result should be ordered
| result |
| m[{"software":"l[ripple,lop]","person":"l[vadas,peter,marko,josh]"}] |
- Scenario: g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_unfold_order_byXvalues_decrX
+ Scenario: g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_unfold_order_byXvalues_descX
Given the modern graph
And the traversal of
"""
- g.V().hasLabel("person").group().by("name").by(__.outE().values("weight").sum()).unfold().order().by(Column.values, Order.decr)
+ g.V().hasLabel("person").group().by("name").by(__.outE().values("weight").sum()).unfold().order().by(Column.values, Order.desc)
"""
When iterated to list
Then the result should be ordered
@@ -235,11 +267,11 @@ Feature: Step - order()
| m[{"peter":"d[0.2].d"}] |
| m[{"vadas":"d[0].i"}] |
- Scenario: g_V_asXvX_mapXbothE_weight_foldX_sumXlocalX_asXsX_selectXv_sX_order_byXselectXsX_decrX
+ Scenario: g_V_asXvX_mapXbothE_weight_foldX_sumXlocalX_asXsX_selectXv_sX_order_byXselectXsX_descX
Given the modern graph
And the traversal of
"""
- g.V().as("v").map(__.bothE().values("weight").fold()).sum(Scope.local).as("s").select("v", "s").order().by(__.select("s"), Order.decr)
+ g.V().as("v").map(__.bothE().values("weight").fold()).sum(Scope.local).as("s").select("v", "s").order().by(__.select("s"), Order.desc)
"""
When iterated to list
Then the result should be ordered
@@ -262,11 +294,11 @@ Feature: Step - order()
| result |
| l[v[vadas],v[marko],v[josh],v[peter]] |
- Scenario: g_V_both_hasLabelXpersonX_order_byXage_decrX_name
+ Scenario: g_V_both_hasLabelXpersonX_order_byXage_descX_name
Given the modern graph
And the traversal of
"""
- g.V().both().hasLabel("person").order().by("age", Order.decr).values("name")
+ g.V().both().hasLabel("person").order().by("age", Order.desc).values("name")
"""
When iterated to list
Then the result should be ordered
@@ -280,11 +312,11 @@ Feature: Step - order()
| marko |
| vadas |
- Scenario: g_V_order_byXoutE_count__decrX
+ Scenario: g_V_order_byXoutE_count_descX
Given the modern graph
And the traversal of
"""
- g.V().order().by(__.outE().count(), Order.decr)
+ g.V().order().by(__.outE().count(), Order.desc)
"""
When iterated to list
Then the result should be ordered
@@ -310,13 +342,13 @@ Feature: Step - order()
| v[josh] |
| v[peter] |
- Scenario: g_VX1X_hasXlabel_personX_mapXmapXint_ageXX_orderXlocalX_byXvalues_decrX_byXkeys_incrX
+ Scenario: g_VX1X_hasXlabel_personX_mapXmapXint_ageXX_orderXlocalX_byXvalues_descX_byXkeys_ascX
Given the modern graph
And using the parameter v1 defined as "v[marko]"
And using the parameter l1 defined as "c[['1':it.get().value('age'),'2':it.get().value('age')*2,'3':it.get().value('age')*3,'4':it.get().value('age')]]"
And the traversal of
"""
- g.V(v1).hasLabel("person").map(l1).order(Scope.local).by(Column.values, Order.decr).by(Column.keys, Order.incr)
+ g.V(v1).hasLabel("person").map(l1).order(Scope.local).by(Column.values, Order.desc).by(Column.keys, Order.asc)
"""
When iterated to list
Then the result should be ordered
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-test/features/map/Project.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Project.feature b/gremlin-test/features/map/Project.feature
index cda2029..8974312 100644
--- a/gremlin-test/features/map/Project.feature
+++ b/gremlin-test/features/map/Project.feature
@@ -34,7 +34,7 @@ Feature: Step - project()
| m[{"a":"d[2].l", "b":"d[32].i"}] |
| m[{"a":"d[1].l", "b":"d[35].i"}] |
- Scenario: g_V_outXcreatedX_projectXa_bX_byXnameX_byXinXcreatedX_countX_order_byXselectXbX__decrX_selectXaX
+ Scenario: g_V_outXcreatedX_projectXa_bX_byXnameX_byXinXcreatedX_countX_order_byXselectXbX__descX_selectXaX
Given the modern graph
And the traversal of
"""
@@ -43,7 +43,7 @@ Feature: Step - project()
by("name").
by(__.in("created").count()).
order().
- by(__.select("b"), Order.decr).
+ by(__.select("b"), Order.desc).
select("a")
"""
When iterated to list
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-test/features/map/Select.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Select.feature b/gremlin-test/features/map/Select.feature
index 713dd81..341a378 100644
--- a/gremlin-test/features/map/Select.feature
+++ b/gremlin-test/features/map/Select.feature
@@ -125,13 +125,13 @@ Feature: Step - select()
| m[{"a": "lop", "b": "lop"}] |
| m[{"a": "peter", "b": "peter"}] |
- Scenario: g_V_hasXname_gremlinX_inEXusesX_order_byXskill_incrX_asXaX_outV_asXbX_selectXa_bX_byXskillX_byXnameX
+ Scenario: g_V_hasXname_gremlinX_inEXusesX_order_byXskill_ascX_asXaX_outV_asXbX_selectXa_bX_byXskillX_byXnameX
Given the crew graph
And the traversal of
"""
g.V().has("name", "gremlin").
inE("uses").
- order().by("skill", Order.incr).as("a").
+ order().by("skill", Order.asc).as("a").
outV().as("b").
select("a", "b").
by("skill").
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/ComplexTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/ComplexTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/ComplexTest.java
index 5c6a1e5..75dd0f5 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/ComplexTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/ComplexTest.java
@@ -256,8 +256,8 @@ public abstract class ComplexTest extends AbstractGremlinProcessTest {
by(select(keys).values("performances")).
by(select(values)).
order().
- by(select("z"), Order.decr).
- by(select("y"), Order.incr).
+ by(select("z"), Order.desc).
+ by(select("y"), Order.asc).
limit(5).store("m").select("x");
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/LocalTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/LocalTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/LocalTest.java
index faec45e..6f70bb1 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/LocalTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/LocalTest.java
@@ -225,7 +225,7 @@ public abstract class LocalTest extends AbstractGremlinProcessTest {
@Override
public Traversal<Vertex, String> get_g_V_localXpropertiesXlocationX_order_byXvalueX_limitX2XX_value() {
- return g.V().local(properties("location").order().by(T.value, Order.incr).range(0, 2)).value();
+ return g.V().local(properties("location").order().by(T.value, Order.asc).range(0, 2)).value();
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupTest.java
----------------------------------------------------------------------
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 ef5086f..0877ddb 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
@@ -77,7 +77,7 @@ public abstract class DedupTest extends AbstractGremlinProcessTest {
public abstract Traversal<Vertex, Path> get_g_V_asXaX_outXcreatedX_asXbX_inXcreatedX_asXcX_dedupXa_bX_path();
- public abstract Traversal<Vertex, String> get_g_V_outE_asXeX_inV_asXvX_selectXeX_order_byXweight_incrX_selectXvX_valuesXnameX_dedup();
+ 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();
@@ -253,8 +253,8 @@ public abstract class DedupTest extends AbstractGremlinProcessTest {
@Test
@LoadGraphWith(MODERN)
- public void g_V_outE_asXeX_inV_asXvX_selectXeX_order_byXweight_incrX_selectXvX_valuesXnameX_dedup() {
- final Traversal<Vertex, String> traversal = get_g_V_outE_asXeX_inV_asXvX_selectXeX_order_byXweight_incrX_selectXvX_valuesXnameX_dedup();
+ public void g_V_outE_asXeX_inV_asXvX_selectXeX_order_byXweight_ascX_selectXvX_valuesXnameX_dedup() {
+ final Traversal<Vertex, String> traversal = get_g_V_outE_asXeX_inV_asXvX_selectXeX_order_byXweight_ascX_selectXvX_valuesXnameX_dedup();
printTraversalForm(traversal);
final List<String> names = traversal.toList();
assertEquals(4, names.size());
@@ -370,8 +370,8 @@ public abstract class DedupTest extends AbstractGremlinProcessTest {
}
@Override
- public Traversal<Vertex, String> get_g_V_outE_asXeX_inV_asXvX_selectXeX_order_byXweight_incrX_selectXvX_valuesXnameX_dedup() {
- return g.V().outE().as("e").inV().as("v").select("e").order().by("weight", Order.incr).select("v").<String>values("name").dedup();
+ public Traversal<Vertex, String> get_g_V_outE_asXeX_inV_asXvX_selectXeX_order_byXweight_ascX_selectXvX_valuesXnameX_dedup() {
+ return g.V().outE().as("e").inV().as("v").select("e").order().by("weight", Order.asc).select("v").<String>values("name").dedup();
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20a722a3/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeTest.java
index d340297..54c4091 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeTest.java
@@ -35,7 +35,7 @@ import org.junit.runner.RunWith;
import java.util.Arrays;
import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
-import static org.apache.tinkerpop.gremlin.process.traversal.Order.decr;
+import static org.apache.tinkerpop.gremlin.process.traversal.Order.desc;
import static org.apache.tinkerpop.gremlin.process.traversal.Scope.local;
import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.V;
import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.bothE;
@@ -74,7 +74,7 @@ public abstract class AddEdgeTest extends AbstractGremlinProcessTest {
public abstract Traversal<Vertex, Edge> get_g_V_hasXname_markoX_asXaX_outEXcreatedX_asXbX_inV_addEXselectXbX_labelX_toXaX();
- public abstract Traversal<Edge, Edge> get_g_addEXV_outE_label_groupCount_orderXlocalX_byXvalues_decrX_selectXkeysX_unfold_limitX1XX_fromXV_hasXname_vadasXX_toXV_hasXname_lopXX();
+ public abstract Traversal<Edge, Edge> get_g_addEXV_outE_label_groupCount_orderXlocalX_byXvalues_descX_selectXkeysX_unfold_limitX1XX_fromXV_hasXname_vadasXX_toXV_hasXname_lopXX();
///////
@@ -281,8 +281,8 @@ public abstract class AddEdgeTest extends AbstractGremlinProcessTest {
@Test
@LoadGraphWith(MODERN)
@FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
- public void g_addEXV_outE_label_groupCount_orderXlocalX_byXvalues_decrX_selectXkeysX_unfold_limitX1XX_fromXV_hasXname_vadasXX_toXV_hasXname_lopXX() {
- final Traversal<Edge, Edge> traversal = get_g_addEXV_outE_label_groupCount_orderXlocalX_byXvalues_decrX_selectXkeysX_unfold_limitX1XX_fromXV_hasXname_vadasXX_toXV_hasXname_lopXX();
+ public void g_addEXV_outE_label_groupCount_orderXlocalX_byXvalues_descX_selectXkeysX_unfold_limitX1XX_fromXV_hasXname_vadasXX_toXV_hasXname_lopXX() {
+ final Traversal<Edge, Edge> traversal = get_g_addEXV_outE_label_groupCount_orderXlocalX_byXvalues_descX_selectXkeysX_unfold_limitX1XX_fromXV_hasXname_vadasXX_toXV_hasXname_lopXX();
printTraversalForm(traversal);
final Edge edge = traversal.next();
assertFalse(traversal.hasNext());
@@ -346,8 +346,8 @@ public abstract class AddEdgeTest extends AbstractGremlinProcessTest {
}
@Override
- public Traversal<Edge, Edge> get_g_addEXV_outE_label_groupCount_orderXlocalX_byXvalues_decrX_selectXkeysX_unfold_limitX1XX_fromXV_hasXname_vadasXX_toXV_hasXname_lopXX() {
- return g.addE(V().outE().label().groupCount().order(local).by(values, decr).select(keys).<String>unfold().limit(1)).from(V().has("name", "vadas")).to(V().has("name", "lop"));
+ public Traversal<Edge, Edge> get_g_addEXV_outE_label_groupCount_orderXlocalX_byXvalues_descX_selectXkeysX_unfold_limitX1XX_fromXV_hasXname_vadasXX_toXV_hasXname_lopXX() {
+ return g.addE(V().outE().label().groupCount().order(local).by(values, desc).select(keys).<String>unfold().limit(1)).from(V().has("name", "vadas")).to(V().has("name", "lop"));
}
}
}