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));