This is an automated email from the ASF dual-hosted git repository.

atoomula pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/samza.git


The following commit(s) were added to refs/heads/master by this push:
     new 5469824  Samza-sql - Making Udfs case-insensitive. (#1122)
5469824 is described below

commit 54698240f1ec3313736a6368134fc37435f96b16
Author: Aditya Toomula <[email protected]>
AuthorDate: Thu Aug 1 09:50:43 2019 -0700

    Samza-sql - Making Udfs case-insensitive. (#1122)
---
 .../src/main/java/org/apache/samza/sql/interfaces/UdfMetadata.java | 3 ++-
 .../org/apache/samza/sql/planner/SamzaSqlUdfOperatorTable.java     | 7 ++++++-
 .../java/org/apache/samza/test/samzasql/TestSamzaSqlEndToEnd.java  | 2 +-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git 
a/samza-sql/src/main/java/org/apache/samza/sql/interfaces/UdfMetadata.java 
b/samza-sql/src/main/java/org/apache/samza/sql/interfaces/UdfMetadata.java
index 9288ce7..c06f60e 100644
--- a/samza-sql/src/main/java/org/apache/samza/sql/interfaces/UdfMetadata.java
+++ b/samza-sql/src/main/java/org/apache/samza/sql/interfaces/UdfMetadata.java
@@ -43,7 +43,8 @@ public class UdfMetadata {
 
   public UdfMetadata(String name, String description, Method udfMethod, Config 
udfConfig, List<SamzaSqlFieldType> arguments,
       SamzaSqlFieldType returnType, boolean disableArgCheck) {
-    this.name = name;
+    // Udfs are case insensitive
+    this.name = name.toUpperCase();
     this.description = description;
     this.udfMethod = udfMethod;
     this.udfConfig = udfConfig;
diff --git 
a/samza-sql/src/main/java/org/apache/samza/sql/planner/SamzaSqlUdfOperatorTable.java
 
b/samza-sql/src/main/java/org/apache/samza/sql/planner/SamzaSqlUdfOperatorTable.java
index 6ee10f8..151bb02 100644
--- 
a/samza-sql/src/main/java/org/apache/samza/sql/planner/SamzaSqlUdfOperatorTable.java
+++ 
b/samza-sql/src/main/java/org/apache/samza/sql/planner/SamzaSqlUdfOperatorTable.java
@@ -62,7 +62,12 @@ public class SamzaSqlUdfOperatorTable implements 
SqlOperatorTable {
   @Override
   public void lookupOperatorOverloads(SqlIdentifier opName, 
SqlFunctionCategory category, SqlSyntax syntax,
       List<SqlOperator> operatorList) {
-    operatorTable.lookupOperatorOverloads(opName, category, syntax, 
operatorList);
+    SqlIdentifier upperCaseOpName = opName;
+    // Only udfs are case insensitive
+    if (category != null && 
category.equals(SqlFunctionCategory.USER_DEFINED_FUNCTION)) {
+      upperCaseOpName = new SqlIdentifier(opName.names.get(0).toUpperCase(), 
opName.getComponentParserPosition(0));
+    }
+    operatorTable.lookupOperatorOverloads(upperCaseOpName, category, syntax, 
operatorList);
   }
 
   @Override
diff --git 
a/samza-test/src/test/java/org/apache/samza/test/samzasql/TestSamzaSqlEndToEnd.java
 
b/samza-test/src/test/java/org/apache/samza/test/samzasql/TestSamzaSqlEndToEnd.java
index 51f3d93..eb47af1 100644
--- 
a/samza-test/src/test/java/org/apache/samza/test/samzasql/TestSamzaSqlEndToEnd.java
+++ 
b/samza-test/src/test/java/org/apache/samza/test/samzasql/TestSamzaSqlEndToEnd.java
@@ -504,7 +504,7 @@ public class TestSamzaSqlEndToEnd extends 
SamzaSqlIntegrationTestHarness {
     TestAvroSystemFactory.messages.clear();
     Map<String, String> staticConfigs = 
SamzaSqlTestConfig.fetchStaticConfigsWithFactories(configs, numMessages);
     String sql1 = "Insert into testavro.outputTopic(id, long_value) "
-        + "select id, MyTest(id) as long_value from testavro.SIMPLE1";
+        + "select id, MYTest(id) as long_value from testavro.SIMPLE1";
     List<String> sqlStmts = Collections.singletonList(sql1);
     staticConfigs.put(SamzaSqlApplicationConfig.CFG_SQL_STMTS_JSON, 
JsonUtil.toJson(sqlStmts));
     runApplication(new MapConfig(staticConfigs));

Reply via email to