From e7b0fb3df5e034679e7b0637627cc360dd00e193 Mon Sep 17 00:00:00 2001 From: Gagan Mishra Date: Mon, 30 Mar 2026 11:34:08 -0700 Subject: [PATCH 1/2] remove get with no params from grammar --- src/main/antlr4/com/aerospike/dsl/Condition.g4 | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/antlr4/com/aerospike/dsl/Condition.g4 b/src/main/antlr4/com/aerospike/dsl/Condition.g4 index 8e75638..099aa71 100644 --- a/src/main/antlr4/com/aerospike/dsl/Condition.g4 +++ b/src/main/antlr4/com/aerospike/dsl/Condition.g4 @@ -534,7 +534,6 @@ PATH_FUNCTION_COUNT: 'count' '()'; pathFunctionGet : PATH_FUNCTION_GET '(' pathFunctionParams ')' - | PATH_FUNCTION_GET '()' ; pathFunctionParams: pathFunctionParam (',' pathFunctionParam)*?; From db67d7969c5d91152e4f8d56d1f22deb637371d2 Mon Sep 17 00:00:00 2001 From: Gagan Mishra Date: Tue, 31 Mar 2026 13:49:13 -0700 Subject: [PATCH 2/2] support `get()` with no params, add unit test --- src/main/antlr4/com/aerospike/dsl/Condition.g4 | 1 + .../dsl/visitor/ExpressionConditionVisitor.java | 15 +++++++++------ .../dsl/expression/BinExpressionsTests.java | 1 + 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/antlr4/com/aerospike/dsl/Condition.g4 b/src/main/antlr4/com/aerospike/dsl/Condition.g4 index 099aa71..8e75638 100644 --- a/src/main/antlr4/com/aerospike/dsl/Condition.g4 +++ b/src/main/antlr4/com/aerospike/dsl/Condition.g4 @@ -534,6 +534,7 @@ PATH_FUNCTION_COUNT: 'count' '()'; pathFunctionGet : PATH_FUNCTION_GET '(' pathFunctionParams ')' + | PATH_FUNCTION_GET '()' ; pathFunctionParams: pathFunctionParam (',' pathFunctionParam)*?; diff --git a/src/main/java/com/aerospike/dsl/visitor/ExpressionConditionVisitor.java b/src/main/java/com/aerospike/dsl/visitor/ExpressionConditionVisitor.java index 9dde00a..db8d318 100644 --- a/src/main/java/com/aerospike/dsl/visitor/ExpressionConditionVisitor.java +++ b/src/main/java/com/aerospike/dsl/visitor/ExpressionConditionVisitor.java @@ -776,12 +776,15 @@ public AbstractPart visitIntLogicalRShiftExpression(ConditionParser.IntLogicalRS public AbstractPart visitPathFunctionGet(ConditionParser.PathFunctionGetContext ctx) { PathFunction.ReturnParam returnParam = null; Exp.Type binType = null; - for (ConditionParser.PathFunctionParamContext paramCtx : ctx.pathFunctionParams().pathFunctionParam()) { - if (paramCtx != null) { - String typeVal = getPathFunctionParam(paramCtx, "type"); - if (typeVal != null) binType = Exp.Type.valueOf(typeVal); - String returnVal = getPathFunctionParam(paramCtx, "return"); - if (returnVal != null) returnParam = PathFunction.ReturnParam.valueOf(returnVal); + ConditionParser.PathFunctionParamsContext params = ctx.pathFunctionParams(); + if (params != null) { + for (ConditionParser.PathFunctionParamContext paramCtx : params.pathFunctionParam()) { + if (paramCtx != null) { + String typeVal = getPathFunctionParam(paramCtx, "type"); + if (typeVal != null) binType = Exp.Type.valueOf(typeVal); + String returnVal = getPathFunctionParam(paramCtx, "return"); + if (returnVal != null) returnParam = PathFunction.ReturnParam.valueOf(returnVal); + } } } return new PathFunction(PathFunction.PathFunctionType.GET, returnParam, binType); diff --git a/src/test/java/com/aerospike/dsl/expression/BinExpressionsTests.java b/src/test/java/com/aerospike/dsl/expression/BinExpressionsTests.java index fd5e8f2..ed2b604 100644 --- a/src/test/java/com/aerospike/dsl/expression/BinExpressionsTests.java +++ b/src/test/java/com/aerospike/dsl/expression/BinExpressionsTests.java @@ -60,6 +60,7 @@ void binNotEquals() { parseFilterExpressionAndCompare(ExpressionContext.of("$.intBin1 != 100"), Exp.ne(Exp.intBin("intBin1"), Exp.val(100))); parseFilterExpressionAndCompare(ExpressionContext.of("$.strBin != \"yes\""), Exp.ne(Exp.stringBin("strBin"), Exp.val("yes"))); parseFilterExpressionAndCompare(ExpressionContext.of("$.strBin != 'yes'"), Exp.ne(Exp.stringBin("strBin"), Exp.val("yes"))); + parseFilterExpressionAndCompare(ExpressionContext.of("$.intBin1.get() != 100"), Exp.ne(Exp.intBin("intBin1"), Exp.val(100))); } @Test