From a4d1e3cfcb0b0175a357c257fd37f7b304acc128 Mon Sep 17 00:00:00 2001 From: Jens Schmidt Date: Mon, 14 Oct 2024 21:57:07 +0200 Subject: [PATCH] rename cird function cirdmatch Signed-off-by: Jens Schmidt --- .../src/main/antlr4/OpenSearchPPLLexer.g4 | 2 +- .../src/main/antlr4/OpenSearchPPLParser.g4 | 6 +- .../sql/ppl/parser/AstExpressionBuilder.java | 73 ++++++------------- 3 files changed, 25 insertions(+), 56 deletions(-) diff --git a/ppl-spark-integration/src/main/antlr4/OpenSearchPPLLexer.g4 b/ppl-spark-integration/src/main/antlr4/OpenSearchPPLLexer.g4 index 6cbee6db0..198c4bc56 100644 --- a/ppl-spark-integration/src/main/antlr4/OpenSearchPPLLexer.g4 +++ b/ppl-spark-integration/src/main/antlr4/OpenSearchPPLLexer.g4 @@ -368,7 +368,7 @@ LIKE: 'LIKE'; ISNULL: 'ISNULL'; ISNOTNULL: 'ISNOTNULL'; ISPRESENT: 'ISPRESENT'; -CIDR: 'CIDR'; +CIDRMATCH: 'CIDRMATCH'; // FLOWCONTROL FUNCTIONS IFNULL: 'IFNULL'; diff --git a/ppl-spark-integration/src/main/antlr4/OpenSearchPPLParser.g4 b/ppl-spark-integration/src/main/antlr4/OpenSearchPPLParser.g4 index 96338c5ac..9a4dd1507 100644 --- a/ppl-spark-integration/src/main/antlr4/OpenSearchPPLParser.g4 +++ b/ppl-spark-integration/src/main/antlr4/OpenSearchPPLParser.g4 @@ -408,7 +408,7 @@ booleanExpression | isEmptyExpression # isEmptyExpr | valueExpressionList NOT? IN LT_SQR_PRTHS subSearch RT_SQR_PRTHS # inSubqueryExpr | EXISTS LT_SQR_PRTHS subSearch RT_SQR_PRTHS # existsSubqueryExpr - | cidrFunctionCall # cidrFunctionCallExpr + | cidrMatchFunctionCall # cidrFunctionCallExpr ; isEmptyExpression @@ -488,8 +488,8 @@ booleanFunctionCall : conditionFunctionBase LT_PRTHS functionArgs RT_PRTHS ; -cidrFunctionCall - : CIDR LT_PRTHS ipAddress = functionArg COMMA cidrBlock = functionArg RT_PRTHS +cidrMatchFunctionCall + : CIDRMATCH LT_PRTHS ipAddress = functionArg COMMA cidrBlock = functionArg RT_PRTHS ; convertedDataType diff --git a/ppl-spark-integration/src/main/java/org/opensearch/sql/ppl/parser/AstExpressionBuilder.java b/ppl-spark-integration/src/main/java/org/opensearch/sql/ppl/parser/AstExpressionBuilder.java index be95f1af0..6ab93031c 100644 --- a/ppl-spark-integration/src/main/java/org/opensearch/sql/ppl/parser/AstExpressionBuilder.java +++ b/ppl-spark-integration/src/main/java/org/opensearch/sql/ppl/parser/AstExpressionBuilder.java @@ -11,36 +11,10 @@ import org.antlr.v4.runtime.RuleContext; import org.opensearch.flint.spark.ppl.OpenSearchPPLParser; import org.opensearch.flint.spark.ppl.OpenSearchPPLParserBaseVisitor; -import org.opensearch.sql.ast.expression.AggregateFunction; -import org.opensearch.sql.ast.expression.Alias; -import org.opensearch.sql.ast.expression.AllFields; -import org.opensearch.sql.ast.expression.And; -import org.opensearch.sql.ast.expression.Argument; -import org.opensearch.sql.ast.expression.Case; -import org.opensearch.sql.ast.expression.Cidr; -import org.opensearch.sql.ast.expression.Compare; -import org.opensearch.sql.ast.expression.DataType; -import org.opensearch.sql.ast.expression.EqualTo; -import org.opensearch.sql.ast.expression.Field; -import org.opensearch.sql.ast.expression.Function; +import org.opensearch.sql.ast.expression.*; import org.opensearch.sql.ast.expression.subquery.ExistsSubquery; import org.opensearch.sql.ast.expression.subquery.InSubquery; -import org.opensearch.sql.ast.expression.Interval; -import org.opensearch.sql.ast.expression.IntervalUnit; -import org.opensearch.sql.ast.expression.IsEmpty; -import org.opensearch.sql.ast.expression.Let; -import org.opensearch.sql.ast.expression.Literal; -import org.opensearch.sql.ast.expression.Not; -import org.opensearch.sql.ast.expression.Or; -import org.opensearch.sql.ast.expression.QualifiedName; import org.opensearch.sql.ast.expression.subquery.ScalarSubquery; -import org.opensearch.sql.ast.expression.Span; -import org.opensearch.sql.ast.expression.SpanUnit; -import org.opensearch.sql.ast.expression.UnresolvedArgument; -import org.opensearch.sql.ast.expression.UnresolvedExpression; -import org.opensearch.sql.ast.expression.When; -import org.opensearch.sql.ast.expression.Xor; -import org.opensearch.sql.ast.tree.UnresolvedPlan; import org.opensearch.sql.common.utils.StringUtils; import org.opensearch.sql.ppl.utils.ArgumentFactory; @@ -52,12 +26,7 @@ import java.util.stream.IntStream; import java.util.stream.Stream; -import static org.opensearch.sql.expression.function.BuiltinFunctionName.EQUAL; -import static org.opensearch.sql.expression.function.BuiltinFunctionName.IS_NOT_NULL; -import static org.opensearch.sql.expression.function.BuiltinFunctionName.IS_NULL; -import static org.opensearch.sql.expression.function.BuiltinFunctionName.LENGTH; -import static org.opensearch.sql.expression.function.BuiltinFunctionName.POSITION; -import static org.opensearch.sql.expression.function.BuiltinFunctionName.TRIM; +import static org.opensearch.sql.expression.function.BuiltinFunctionName.*; /** @@ -66,23 +35,26 @@ public class AstExpressionBuilder extends OpenSearchPPLParserBaseVisitor { private static final int DEFAULT_TAKE_FUNCTION_SIZE_VALUE = 10; - - private AstBuilder astBuilder; - - /** Set AstBuilder back to AstExpressionBuilder for resolving the subquery plan in subquery expression */ - public void setAstBuilder(AstBuilder astBuilder) { - this.astBuilder = astBuilder; - } - /** * The function name mapping between fronted and core engine. */ - private static Map FUNCTION_NAME_MAPPING = + private static final Map FUNCTION_NAME_MAPPING = new ImmutableMap.Builder() .put("isnull", IS_NULL.getName().getFunctionName()) .put("isnotnull", IS_NOT_NULL.getName().getFunctionName()) .put("ispresent", IS_NOT_NULL.getName().getFunctionName()) .build(); + private AstBuilder astBuilder; + + public AstExpressionBuilder() { + } + + /** + * Set AstBuilder back to AstExpressionBuilder for resolving the subquery plan in subquery expression + */ + public void setAstBuilder(AstBuilder astBuilder) { + this.astBuilder = astBuilder; + } @Override public UnresolvedExpression visitMappingCompareExpr(OpenSearchPPLParser.MappingCompareExprContext ctx) { @@ -153,7 +125,7 @@ public UnresolvedExpression visitCompareExpr(OpenSearchPPLParser.CompareExprCont @Override public UnresolvedExpression visitBinaryArithmetic(OpenSearchPPLParser.BinaryArithmeticContext ctx) { return new Function( - ctx.binaryOperator.getText(), Arrays.asList(visit(ctx.left), visit(ctx.right))); + ctx.binaryOperator.getText(), Arrays.asList(visit(ctx.left), visit(ctx.right))); } @Override @@ -238,7 +210,7 @@ public UnresolvedExpression visitCaseExpr(OpenSearchPPLParser.CaseExprContext ct }) .collect(Collectors.toList()); UnresolvedExpression elseValue = new Literal(null, DataType.NULL); - if(ctx.caseFunction().valueExpression().size() > ctx.caseFunction().logicalExpression().size()) { + if (ctx.caseFunction().valueExpression().size() > ctx.caseFunction().logicalExpression().size()) { // else value is present elseValue = visit(ctx.caseFunction().valueExpression(ctx.caseFunction().valueExpression().size() - 1)); } @@ -277,9 +249,6 @@ private Function buildFunction( functionName, args.stream().map(this::visitFunctionArg).collect(Collectors.toList())); } - public AstExpressionBuilder() { - } - @Override public UnresolvedExpression visitMultiFieldRelevanceFunction( OpenSearchPPLParser.MultiFieldRelevanceFunctionContext ctx) { @@ -293,7 +262,7 @@ public UnresolvedExpression visitTableSource(OpenSearchPPLParser.TableSourceCont if (ctx.getChild(0) instanceof OpenSearchPPLParser.IdentsAsTableQualifiedNameContext) { return visitIdentsAsTableQualifiedName((OpenSearchPPLParser.IdentsAsTableQualifiedNameContext) ctx.getChild(0)); } else { - return visitIdentifiers(Arrays.asList(ctx)); + return visitIdentifiers(List.of(ctx)); } } @@ -385,9 +354,9 @@ public UnresolvedExpression visitRightHint(OpenSearchPPLParser.RightHintContext @Override public UnresolvedExpression visitInSubqueryExpr(OpenSearchPPLParser.InSubqueryExprContext ctx) { UnresolvedExpression expr = new InSubquery( - ctx.valueExpressionList().valueExpression().stream() - .map(this::visit).collect(Collectors.toList()), - astBuilder.visitSubSearch(ctx.subSearch())); + ctx.valueExpressionList().valueExpression().stream() + .map(this::visit).collect(Collectors.toList()), + astBuilder.visitSubSearch(ctx.subSearch())); return ctx.NOT() != null ? new Not(expr) : expr; } @@ -403,7 +372,7 @@ public UnresolvedExpression visitExistsSubqueryExpr(OpenSearchPPLParser.ExistsSu @Override - public UnresolvedExpression visitCidrFunctionCall(OpenSearchPPLParser.CidrFunctionCallContext ctx) { + public UnresolvedExpression visitCidrMatchFunctionCall(OpenSearchPPLParser.CidrMatchFunctionCallContext ctx) { return new Cidr(visit(ctx.ipAddress), visit(ctx.cidrBlock)); }