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);
   }
 
   /*

Reply via email to