Skip to content

Commit f34619a

Browse files
committed
Add @nonnull annotation to getOperandMetadata() and provide default implementation
- additionally udpate ppl-functions.md documentation Signed-off-by: Yuanchun Shen <yuanchu@amazon.com>
1 parent fd6251e commit f34619a

72 files changed

Lines changed: 199 additions & 137 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import org.apache.calcite.sql.validate.SqlUserDefinedAggFunction;
4040
import org.apache.calcite.tools.RelBuilder;
4141
import org.apache.calcite.util.Optionality;
42+
import org.jspecify.annotations.NonNull;
4243
import org.opensearch.sql.calcite.type.AbstractExprRelDataType;
4344
import org.opensearch.sql.calcite.udf.UserDefinedAggFunction;
4445
import org.opensearch.sql.calcite.utils.OpenSearchTypeFactory.ExprUDT;
@@ -213,7 +214,7 @@ public static ImplementorUDF adaptExprMethodToUDF(
213214
String methodName,
214215
SqlReturnTypeInference returnTypeInference,
215216
NullPolicy nullPolicy,
216-
@Nullable UDFOperandMetadata operandMetadata) {
217+
@NonNull UDFOperandMetadata operandMetadata) {
217218
NotNullImplementor implementor =
218219
(translator, call, translatedOperands) -> {
219220
List<Expression> operands =
@@ -229,7 +230,7 @@ public SqlReturnTypeInference getReturnTypeInference() {
229230
}
230231

231232
@Override
232-
public UDFOperandMetadata getOperandMetadata() {
233+
public @NonNull UDFOperandMetadata getOperandMetadata() {
233234
return operandMetadata;
234235
}
235236
};
@@ -261,7 +262,7 @@ public SqlReturnTypeInference getReturnTypeInference() {
261262
}
262263

263264
@Override
264-
public UDFOperandMetadata getOperandMetadata() {
265+
public @NonNull UDFOperandMetadata getOperandMetadata() {
265266
return operandMetadata;
266267
}
267268
};
@@ -302,7 +303,7 @@ public SqlReturnTypeInference getReturnTypeInference() {
302303
}
303304

304305
@Override
305-
public UDFOperandMetadata getOperandMetadata() {
306+
public @NonNull UDFOperandMetadata getOperandMetadata() {
306307
return operandMetadata;
307308
}
308309
};

core/src/main/java/org/opensearch/sql/expression/function/CollectionUDF/AppendFunctionImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.apache.calcite.sql.type.OperandTypes;
1818
import org.apache.calcite.sql.type.SqlReturnTypeInference;
1919
import org.apache.calcite.sql.type.SqlTypeName;
20+
import org.jspecify.annotations.NonNull;
2021
import org.opensearch.sql.expression.function.ImplementorUDF;
2122
import org.opensearch.sql.expression.function.UDFOperandMetadata;
2223

@@ -46,7 +47,7 @@ public SqlReturnTypeInference getReturnTypeInference() {
4647
}
4748

4849
@Override
49-
public UDFOperandMetadata getOperandMetadata() {
50+
public @NonNull UDFOperandMetadata getOperandMetadata() {
5051
return UDFOperandMetadata.wrap(OperandTypes.VARIADIC);
5152
}
5253

core/src/main/java/org/opensearch/sql/expression/function/CollectionUDF/ArrayFunctionImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.apache.calcite.sql.type.OperandTypes;
2626
import org.apache.calcite.sql.type.SqlReturnTypeInference;
2727
import org.apache.calcite.sql.type.SqlTypeName;
28+
import org.jspecify.annotations.NonNull;
2829
import org.opensearch.sql.expression.function.ImplementorUDF;
2930
import org.opensearch.sql.expression.function.UDFOperandMetadata;
3031

@@ -60,7 +61,7 @@ public SqlReturnTypeInference getReturnTypeInference() {
6061
}
6162

6263
@Override
63-
public UDFOperandMetadata getOperandMetadata() {
64+
public @NonNull UDFOperandMetadata getOperandMetadata() {
6465
return UDFOperandMetadata.wrap(OperandTypes.ARRAY_FUNCTION);
6566
}
6667

core/src/main/java/org/opensearch/sql/expression/function/CollectionUDF/ExistsFunctionImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.apache.calcite.sql.type.OperandTypes;
1818
import org.apache.calcite.sql.type.ReturnTypes;
1919
import org.apache.calcite.sql.type.SqlReturnTypeInference;
20+
import org.jspecify.annotations.NonNull;
2021
import org.opensearch.sql.expression.function.ImplementorUDF;
2122
import org.opensearch.sql.expression.function.UDFOperandMetadata;
2223

@@ -36,7 +37,7 @@ public SqlReturnTypeInference getReturnTypeInference() {
3637
}
3738

3839
@Override
39-
public UDFOperandMetadata getOperandMetadata() {
40+
public @NonNull UDFOperandMetadata getOperandMetadata() {
4041
return UDFOperandMetadata.wrap(OperandTypes.EXISTS);
4142
}
4243

core/src/main/java/org/opensearch/sql/expression/function/CollectionUDF/FilterFunctionImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.apache.calcite.sql.type.OperandTypes;
1919
import org.apache.calcite.sql.type.ReturnTypes;
2020
import org.apache.calcite.sql.type.SqlReturnTypeInference;
21+
import org.jspecify.annotations.NonNull;
2122
import org.opensearch.sql.expression.function.ImplementorUDF;
2223
import org.opensearch.sql.expression.function.UDFOperandMetadata;
2324

@@ -36,7 +37,7 @@ public SqlReturnTypeInference getReturnTypeInference() {
3637
}
3738

3839
@Override
39-
public UDFOperandMetadata getOperandMetadata() {
40+
public @NonNull UDFOperandMetadata getOperandMetadata() {
4041
return UDFOperandMetadata.wrap(OperandTypes.MAP_FUNCTION);
4142
}
4243

core/src/main/java/org/opensearch/sql/expression/function/CollectionUDF/ForallFunctionImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.apache.calcite.sql.type.OperandTypes;
1818
import org.apache.calcite.sql.type.ReturnTypes;
1919
import org.apache.calcite.sql.type.SqlReturnTypeInference;
20+
import org.jspecify.annotations.NonNull;
2021
import org.opensearch.sql.expression.function.ImplementorUDF;
2122
import org.opensearch.sql.expression.function.UDFOperandMetadata;
2223

@@ -35,7 +36,7 @@ public SqlReturnTypeInference getReturnTypeInference() {
3536
}
3637

3738
@Override
38-
public UDFOperandMetadata getOperandMetadata() {
39+
public @NonNull UDFOperandMetadata getOperandMetadata() {
3940
return UDFOperandMetadata.wrap(OperandTypes.MAP_FUNCTION);
4041
}
4142

core/src/main/java/org/opensearch/sql/expression/function/CollectionUDF/MVAppendFunctionImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.apache.calcite.sql.type.OperandTypes;
2222
import org.apache.calcite.sql.type.SqlReturnTypeInference;
2323
import org.apache.calcite.sql.type.SqlTypeName;
24+
import org.jspecify.annotations.NonNull;
2425
import org.opensearch.sql.expression.function.ImplementorUDF;
2526
import org.opensearch.sql.expression.function.UDFOperandMetadata;
2627

@@ -50,7 +51,7 @@ public SqlReturnTypeInference getReturnTypeInference() {
5051
}
5152

5253
@Override
53-
public UDFOperandMetadata getOperandMetadata() {
54+
public @NonNull UDFOperandMetadata getOperandMetadata() {
5455
return UDFOperandMetadata.wrap(OperandTypes.VARIADIC);
5556
}
5657

core/src/main/java/org/opensearch/sql/expression/function/CollectionUDF/MVFindFunctionImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.apache.calcite.sql.type.ReturnTypes;
2121
import org.apache.calcite.sql.type.SqlReturnTypeInference;
2222
import org.apache.calcite.sql.type.SqlTypeFamily;
23+
import org.jspecify.annotations.NonNull;
2324
import org.opensearch.sql.expression.function.ImplementorUDF;
2425
import org.opensearch.sql.expression.function.UDFOperandMetadata;
2526

@@ -45,7 +46,7 @@ public SqlReturnTypeInference getReturnTypeInference() {
4546
}
4647

4748
@Override
48-
public UDFOperandMetadata getOperandMetadata() {
49+
public @NonNull UDFOperandMetadata getOperandMetadata() {
4950
// Accept ARRAY and STRING for the regex pattern
5051
return UDFOperandMetadata.wrap(
5152
OperandTypes.family(SqlTypeFamily.ARRAY, SqlTypeFamily.CHARACTER));

core/src/main/java/org/opensearch/sql/expression/function/CollectionUDF/MVZipFunctionImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.apache.calcite.sql.type.SqlReturnTypeInference;
2525
import org.apache.calcite.sql.type.SqlTypeFamily;
2626
import org.apache.calcite.sql.type.SqlTypeName;
27+
import org.jspecify.annotations.NonNull;
2728
import org.opensearch.sql.expression.function.ImplementorUDF;
2829
import org.opensearch.sql.expression.function.UDFOperandMetadata;
2930

@@ -62,7 +63,7 @@ public SqlReturnTypeInference getReturnTypeInference() {
6263
}
6364

6465
@Override
65-
public UDFOperandMetadata getOperandMetadata() {
66+
public @NonNull UDFOperandMetadata getOperandMetadata() {
6667
// First two arguments must be arrays, optional STRING delimiter
6768
return UDFOperandMetadata.wrap(
6869
(CompositeOperandTypeChecker)

core/src/main/java/org/opensearch/sql/expression/function/CollectionUDF/MapAppendFunctionImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.apache.calcite.sql.type.SqlReturnTypeInference;
2323
import org.apache.calcite.sql.type.SqlTypeFamily;
2424
import org.apache.calcite.sql.type.SqlTypeName;
25+
import org.jspecify.annotations.NonNull;
2526
import org.opensearch.sql.expression.function.ImplementorUDF;
2627
import org.opensearch.sql.expression.function.UDFOperandMetadata;
2728

@@ -46,7 +47,7 @@ public SqlReturnTypeInference getReturnTypeInference() {
4647
}
4748

4849
@Override
49-
public UDFOperandMetadata getOperandMetadata() {
50+
public @NonNull UDFOperandMetadata getOperandMetadata() {
5051
return UDFOperandMetadata.wrap(OperandTypes.family(SqlTypeFamily.MAP, SqlTypeFamily.MAP));
5152
}
5253

0 commit comments

Comments
 (0)