Skip to content

Commit

Permalink
rename cird function cirdmatch
Browse files Browse the repository at this point in the history
Signed-off-by: Jens Schmidt <jens.schmidt@eliatra.com>
  • Loading branch information
dr-lilienthal authored and salyh committed Oct 24, 2024
1 parent 69f62f0 commit a4d1e3c
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 56 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@ LIKE: 'LIKE';
ISNULL: 'ISNULL';
ISNOTNULL: 'ISNOTNULL';
ISPRESENT: 'ISPRESENT';
CIDR: 'CIDR';
CIDRMATCH: 'CIDRMATCH';

// FLOWCONTROL FUNCTIONS
IFNULL: 'IFNULL';
Expand Down
6 changes: 3 additions & 3 deletions ppl-spark-integration/src/main/antlr4/OpenSearchPPLParser.g4
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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.*;


/**
Expand All @@ -66,23 +35,26 @@
public class AstExpressionBuilder extends OpenSearchPPLParserBaseVisitor<UnresolvedExpression> {

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<String, String> FUNCTION_NAME_MAPPING =
private static final Map<String, String> FUNCTION_NAME_MAPPING =
new ImmutableMap.Builder<String, String>()
.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) {
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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));
}
Expand Down Expand Up @@ -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) {
Expand All @@ -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));
}
}

Expand Down Expand Up @@ -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;
}

Expand All @@ -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));
}

Expand Down

0 comments on commit a4d1e3c

Please sign in to comment.