You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by co...@apache.org on 2026/03/17 16:45:27 UTC
(tinkerpop) branch TINKERPOP-3236 created (now a0e0ff9e32)
This is an automated email from the ASF dual-hosted git repository.
colegreer pushed a change to branch TINKERPOP-3236
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
at a0e0ff9e32 [TINKERPOP-3236] Expand grammar argument types for coin and pagerank steps to numericArgument
This branch includes the following new commits:
new a0e0ff9e32 [TINKERPOP-3236] Expand grammar argument types for coin and pagerank steps to numericArgument
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(tinkerpop) 01/01: [TINKERPOP-3236] Expand grammar argument types for coin and pagerank steps to numericArgument
Posted by co...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
colegreer pushed a commit to branch TINKERPOP-3236
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit a0e0ff9e327c66d27021c1d652641e34f2ae8e0c
Author: Cole Greer <Co...@improving.com>
AuthorDate: Tue Mar 17 09:44:04 2026 -0700
[TINKERPOP-3236] Expand grammar argument types for coin and pagerank steps to numericArgument
---
CHANGELOG.asciidoc | 1 +
.../tinkerpop/gremlin/language/grammar/ArgumentVisitor.java | 10 +++++-----
.../gremlin/language/grammar/DefaultGremlinBaseVisitor.java | 2 +-
.../gremlin/language/grammar/GenericLiteralVisitor.java | 4 ++--
.../gremlin/language/grammar/TraversalMethodVisitor.java | 4 ++--
.../gremlin/language/grammar/ArgumentVisitorTest.java | 2 +-
gremlin-language/src/main/antlr4/Gremlin.g4 | 8 ++++----
7 files changed, 16 insertions(+), 15 deletions(-)
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 555e70a604..984c5dd4f4 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -29,6 +29,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
* Fixed bug in `SubgraphStrategy` where specifying `edges` and `vertices` filters that had `map`-type steps could generate an error.
* Fixed bug in `ReservedKeysVerificationStrategy` where `AddPropertyStep` was not triggering proper validations.
* Fixed bug in `mergeE` where `onCreate` validation of invalid static argument overrides did not trigger until traversal runtime.
+* Expand grammar argument types for `coin` and `pagerank` steps to `numericArgument` from `floatArgument`.
* Added `closeSessionPostGraphOp` to the Gremlin Server settings to indicate that the `Session` should be closed on either a successful commit or rollback.
* Added `SessionedChildClient` that borrows connections from a different `Client` for use with `Sessions`.
* Added `reuseConnectionsForSessions` to Java GLV settings to decide whether to use `SessionedChildClient` for remote transactions.
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitor.java
index a461896fa7..9b7212c638 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitor.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitor.java
@@ -66,8 +66,8 @@ public class ArgumentVisitor extends DefaultGremlinBaseVisitor<Object> {
/**
* Wrapper to visit function for float types.
*/
- public Number parseNumber(final GremlinParser.FloatArgumentContext ctx) {
- return (Number) visitFloatArgument(ctx);
+ public Number parseNumber(final GremlinParser.NumericArgumentContext ctx) {
+ return (Number) visitNumericArgument(ctx);
}
/**
@@ -240,9 +240,9 @@ public class ArgumentVisitor extends DefaultGremlinBaseVisitor<Object> {
}
@Override
- public Object visitFloatArgument(final GremlinParser.FloatArgumentContext ctx) {
- if (ctx.floatLiteral() != null) {
- return antlr.genericVisitor.parseFloating(ctx.floatLiteral());
+ public Object visitNumericArgument(final GremlinParser.NumericArgumentContext ctx) {
+ if (ctx.numericLiteral() != null) {
+ return antlr.genericVisitor.parseNumeric(ctx.numericLiteral());
} else {
return visitVariable(ctx.variable());
}
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
index c0432ddd83..3582444ab6 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
@@ -1462,7 +1462,7 @@ public class DefaultGremlinBaseVisitor<T> extends AbstractParseTreeVisitor<T> im
/**
* {@inheritDoc}
*/
- @Override public T visitFloatArgument(final GremlinParser.FloatArgumentContext ctx) { notImplemented(ctx); return null; }
+ @Override public T visitNumericArgument(final GremlinParser.NumericArgumentContext ctx) { notImplemented(ctx); return null; }
/**
* {@inheritDoc}
*/
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
index d7f87f298a..a4d5a8b641 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
@@ -63,8 +63,8 @@ public class GenericLiteralVisitor extends DefaultGremlinBaseVisitor<Object> {
/**
* Parse floating literal context and return a floating type number.
*/
- public Number parseFloating(final GremlinParser.FloatLiteralContext floatLiteral) {
- return (Number) visitFloatLiteral(floatLiteral);
+ public Number parseNumeric(final GremlinParser.NumericLiteralContext numericLiteral) {
+ return (Number) visitNumericLiteral(numericLiteral);
}
/**
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index 6dcafe2e65..222af839e3 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -443,7 +443,7 @@ public class TraversalMethodVisitor extends TraversalRootVisitor<GraphTraversal>
*/
@Override
public GraphTraversal visitTraversalMethod_coin(final GremlinParser.TraversalMethod_coinContext ctx) {
- return graphTraversal.coin(((Number) antlr.argumentVisitor.visitFloatArgument(ctx.floatArgument())).doubleValue());
+ return graphTraversal.coin(((Number) antlr.argumentVisitor.visitNumericArgument(ctx.numericArgument())).doubleValue());
}
/**
@@ -1228,7 +1228,7 @@ public class TraversalMethodVisitor extends TraversalRootVisitor<GraphTraversal>
*/
@Override
public GraphTraversal visitTraversalMethod_pageRank_double(final GremlinParser.TraversalMethod_pageRank_doubleContext ctx) {
- return graphTraversal.pageRank(((Number) antlr.argumentVisitor.visitFloatArgument(ctx.floatArgument())).doubleValue());
+ return graphTraversal.pageRank(((Number) antlr.argumentVisitor.visitNumericArgument(ctx.numericArgument())).doubleValue());
}
/**
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitorTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitorTest.java
index 8c2472eebc..4c64c1804d 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitorTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitorTest.java
@@ -178,7 +178,7 @@ public class ArgumentVisitorTest {
});
} else if (clazz.equals(Float.class)) {
assertParsing(() -> {
- final GremlinParser.FloatArgumentContext ctx = parser.floatArgument();
+ final GremlinParser.NumericArgumentContext ctx = parser.numericArgument();
return antlrToLanguage.argumentVisitor.parseNumber(ctx);
});
} else if (clazz.equals(String.class)) {
diff --git a/gremlin-language/src/main/antlr4/Gremlin.g4 b/gremlin-language/src/main/antlr4/Gremlin.g4
index 35a4b934e0..0b7a224790 100644
--- a/gremlin-language/src/main/antlr4/Gremlin.g4
+++ b/gremlin-language/src/main/antlr4/Gremlin.g4
@@ -409,7 +409,7 @@ traversalMethod_coalesce
;
traversalMethod_coin
- : 'coin' LPAREN floatArgument RPAREN
+ : 'coin' LPAREN numericArgument RPAREN
;
traversalMethod_combine
@@ -668,7 +668,7 @@ traversalMethod_outV
traversalMethod_pageRank
: 'pageRank' LPAREN RPAREN #traversalMethod_pageRank_Empty
- | 'pageRank' LPAREN floatArgument RPAREN #traversalMethod_pageRank_double
+ | 'pageRank' LPAREN numericArgument RPAREN #traversalMethod_pageRank_double
;
traversalMethod_path
@@ -1486,8 +1486,8 @@ integerArgument
| variable
;
-floatArgument
- : floatLiteral
+numericArgument
+ : numericLiteral
| variable
;