Skip to content

Commit b030f41

Browse files
committed
Define SqlKind for DIVIDE and MOD UDF for coercion purpose
Signed-off-by: Yuanchun Shen <yuanchu@amazon.com>
1 parent 657cc6a commit b030f41

3 files changed

Lines changed: 17 additions & 1 deletion

File tree

core/src/main/java/org/opensearch/sql/expression/function/UserDefinedFunctionBuilder.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ public interface UserDefinedFunctionBuilder {
3333

3434
UDFOperandMetadata getOperandMetadata();
3535

36+
default SqlKind getKind() {
37+
return SqlKind.OTHER_FUNCTION;
38+
}
39+
3640
default SqlUserDefinedFunction toUDF(String functionName) {
3741
return toUDF(functionName, true);
3842
}
@@ -51,7 +55,7 @@ default SqlUserDefinedFunction toUDF(String functionName, boolean isDeterministi
5155
new SqlIdentifier(Collections.singletonList(functionName), null, SqlParserPos.ZERO, null);
5256
return new SqlUserDefinedFunction(
5357
udfLtrimIdentifier,
54-
SqlKind.OTHER_FUNCTION,
58+
getKind(),
5559
getReturnTypeInference(),
5660
InferTypes.ANY_NULLABLE,
5761
getOperandMetadata(),

core/src/main/java/org/opensearch/sql/expression/function/udf/math/DivideFunction.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import org.apache.calcite.linq4j.tree.Expressions;
1616
import org.apache.calcite.rel.type.RelDataTypeSystem;
1717
import org.apache.calcite.rex.RexCall;
18+
import org.apache.calcite.sql.SqlKind;
1819
import org.apache.calcite.sql.type.ReturnTypes;
1920
import org.apache.calcite.sql.type.SqlReturnTypeInference;
2021
import org.apache.calcite.sql.type.SqlTypeName;
@@ -41,6 +42,11 @@ public DivideFunction() {
4142
super(new DivideImplementor(), NullPolicy.ANY);
4243
}
4344

45+
@Override
46+
public SqlKind getKind() {
47+
return SqlKind.DIVIDE;
48+
}
49+
4450
@Override
4551
public SqlReturnTypeInference getReturnTypeInference() {
4652
return ReturnTypes.QUOTIENT_FORCE_NULLABLE;

core/src/main/java/org/opensearch/sql/expression/function/udf/math/ModFunction.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.apache.calcite.linq4j.tree.Expressions;
1515
import org.apache.calcite.rel.type.RelDataType;
1616
import org.apache.calcite.rex.RexCall;
17+
import org.apache.calcite.sql.SqlKind;
1718
import org.apache.calcite.sql.type.ReturnTypes;
1819
import org.apache.calcite.sql.type.SqlReturnTypeInference;
1920
import org.apache.calcite.sql.type.SqlTypeFamily;
@@ -36,6 +37,11 @@ public SqlReturnTypeInference getReturnTypeInference() {
3637
return ReturnTypes.LEAST_RESTRICTIVE.andThen(SqlTypeTransforms.FORCE_NULLABLE);
3738
}
3839

40+
@Override
41+
public SqlKind getKind() {
42+
return SqlKind.MOD;
43+
}
44+
3945
@Override
4046
public UDFOperandMetadata getOperandMetadata() {
4147
return PPLOperandTypes.NUMERIC_NUMERIC;

0 commit comments

Comments
 (0)