Skip to content

Commit f6107b1

Browse files
committed
Add type checker for cidrmatch
Signed-off-by: Yuanchun Shen <yuanchu@amazon.com>
1 parent 8bba4b7 commit f6107b1

2 files changed

Lines changed: 11 additions & 0 deletions

File tree

core/src/main/java/org/opensearch/sql/calcite/utils/UserDefinedFunctionUtils.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ public static SqlTypeName convertRelDataTypeToSqlTypeName(RelDataType type) {
9797
case EXPR_DATE -> SqlTypeName.DATE;
9898
case EXPR_TIME -> SqlTypeName.TIME;
9999
case EXPR_TIMESTAMP -> SqlTypeName.TIMESTAMP;
100+
case EXPR_IP -> SqlTypeName.VARCHAR;
101+
case EXPR_BINARY -> SqlTypeName.VARBINARY;
100102
default -> type.getSqlTypeName();
101103
};
102104
}

core/src/main/java/org/opensearch/sql/expression/function/udf/ip/CidrMatchFunction.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,14 @@
1212
import org.apache.calcite.linq4j.tree.Expression;
1313
import org.apache.calcite.linq4j.tree.Expressions;
1414
import org.apache.calcite.rex.RexCall;
15+
import org.apache.calcite.sql.type.OperandTypes;
1516
import org.apache.calcite.sql.type.ReturnTypes;
1617
import org.apache.calcite.sql.type.SqlReturnTypeInference;
1718
import org.opensearch.sql.data.model.ExprIpValue;
1819
import org.opensearch.sql.data.model.ExprValue;
1920
import org.opensearch.sql.data.model.ExprValueUtils;
2021
import org.opensearch.sql.expression.function.ImplementorUDF;
22+
import org.opensearch.sql.expression.function.UDFOperandMetadata;
2123
import org.opensearch.sql.expression.ip.IPFunctions;
2224

2325
/**
@@ -40,6 +42,13 @@ public SqlReturnTypeInference getReturnTypeInference() {
4042
return ReturnTypes.BOOLEAN_FORCE_NULLABLE;
4143
}
4244

45+
@Override
46+
public UDFOperandMetadata getOperandMetadata() {
47+
// EXPR_IP is mapped to SqlTypeFamily.VARCHAR in
48+
// UserDefinedFunctionUtils.convertRelDataTypeToSqlTypeName
49+
return UDFOperandMetadata.wrap(OperandTypes.STRING_STRING);
50+
}
51+
4352
public static class CidrMatchImplementor implements NotNullImplementor {
4453
@Override
4554
public Expression implement(

0 commit comments

Comments
 (0)