This is an automated email from the ASF dual-hosted git repository.
ibzib pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git
The following commit(s) were added to refs/heads/master by this push:
new 477fc28 [BEAM-10925] Add optional jar path field to
ZetaSqlScalarFunctionImpl.
new e47f0e5 Merge pull request #13844 from ibzib/jar-path
477fc28 is described below
commit 477fc281184cea0d2f3100507b54b9d4b3ab1bee
Author: Kyle Weaver <[email protected]>
AuthorDate: Fri Jan 29 13:37:00 2021 -0800
[BEAM-10925] Add optional jar path field to ZetaSqlScalarFunctionImpl.
This is required to pass the jar path to BeamCalcRel (see #13835).
---
.../sql/zetasql/translation/SqlOperators.java | 20 ++++++++++++++------
.../translation/ZetaSqlScalarFunctionImpl.java | 13 +++++++------
2 files changed, 21 insertions(+), 12 deletions(-)
diff --git
a/sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/translation/SqlOperators.java
b/sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/translation/SqlOperators.java
index fcc41a4..c4d31f2 100644
---
a/sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/translation/SqlOperators.java
+++
b/sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/translation/SqlOperators.java
@@ -134,7 +134,8 @@ public class SqlOperators {
"LIKE",
BeamBuiltinMethods.LIKE_METHOD,
SqlSyntax.BINARY,
- SqlAnalyzer.ZETASQL_FUNCTION_GROUP_NAME);
+ SqlAnalyzer.ZETASQL_FUNCTION_GROUP_NAME,
+ "");
public static final SqlOperator VALIDATE_TIMESTAMP =
createUdfOperator(
@@ -181,7 +182,9 @@ public class SqlOperators {
/**
* Create a dummy SqlFunction of type OTHER_FUNCTION from given function
name and return type.
- * These functions will be unparsed in BeamZetaSqlCalcRel and then executed
by ZetaSQL evaluator.
+ * These functions will be unparsed in either {@link
+ * org.apache.beam.sdk.extensions.sql.zetasql.BeamZetaSqlCalcRel} (for
built-in functions) or
+ * {@link org.apache.beam.sdk.extensions.sql.impl.rel.BeamCalcRel} (for
user-defined functions).
*/
public static SqlFunction createZetaSqlFunction(String name, SqlTypeName
returnType) {
return new SqlFunction(
@@ -220,16 +223,21 @@ public class SqlOperators {
null,
null,
paramTypes,
- ZetaSqlScalarFunctionImpl.create(methodClass, methodName, funGroup));
+ ZetaSqlScalarFunctionImpl.create(methodClass, methodName, funGroup,
""));
+ }
+
+ static SqlUserDefinedFunction createUdfOperator(
+ String name, Method method, String funGroup, String jarPath) {
+ return createUdfOperator(name, method, SqlSyntax.FUNCTION, funGroup,
jarPath);
}
static SqlUserDefinedFunction createUdfOperator(String name, Method method,
String funGroup) {
- return createUdfOperator(name, method, SqlSyntax.FUNCTION, funGroup);
+ return createUdfOperator(name, method, SqlSyntax.FUNCTION, funGroup, "");
}
private static SqlUserDefinedFunction createUdfOperator(
- String name, Method method, final SqlSyntax syntax, String funGroup) {
- Function function = ZetaSqlScalarFunctionImpl.create(method, funGroup);
+ String name, Method method, final SqlSyntax syntax, String funGroup,
String jarPath) {
+ Function function = ZetaSqlScalarFunctionImpl.create(method, funGroup,
jarPath);
final RelDataTypeFactory typeFactory = createTypeFactory();
List<RelDataType> argTypes = new ArrayList<>();
diff --git
a/sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/translation/ZetaSqlScalarFunctionImpl.java
b/sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/translation/ZetaSqlScalarFunctionImpl.java
index 5255eec..2508ac3 100644
---
a/sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/translation/ZetaSqlScalarFunctionImpl.java
+++
b/sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/translation/ZetaSqlScalarFunctionImpl.java
@@ -32,8 +32,8 @@ public class ZetaSqlScalarFunctionImpl extends
ScalarFunctionImpl {
public final String functionGroup;
private ZetaSqlScalarFunctionImpl(
- Method method, CallImplementor implementor, String functionGroup) {
- super(method, implementor);
+ Method method, CallImplementor implementor, String functionGroup, String
jarPath) {
+ super(method, implementor, jarPath);
this.functionGroup = functionGroup;
}
@@ -49,8 +49,9 @@ public class ZetaSqlScalarFunctionImpl extends
ScalarFunctionImpl {
* divergent translation paths.
* @return created {@link ScalarFunction} or null
*/
- public static Function create(Class<?> clazz, String methodName, String
functionGroup) {
- return create(findMethod(clazz, methodName));
+ public static Function create(
+ Class<?> clazz, String methodName, String functionGroup, String jarPath)
{
+ return create(findMethod(clazz, methodName), functionGroup, jarPath);
}
/**
@@ -62,10 +63,10 @@ public class ZetaSqlScalarFunctionImpl extends
ScalarFunctionImpl {
* divergent translation paths.
* @return created {@link Function} or null
*/
- public static Function create(Method method, String functionGroup) {
+ public static Function create(Method method, String functionGroup, String
jarPath) {
validateMethod(method);
CallImplementor implementor = createImplementor(method);
- return new ZetaSqlScalarFunctionImpl(method, implementor, functionGroup);
+ return new ZetaSqlScalarFunctionImpl(method, implementor, functionGroup,
jarPath);
}
/*