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

xiangfu pushed a commit to branch fixing_transform_udf_parsing_in_calcite_sql
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git

commit 9a0f765ab6ea0e0f310718ba6434da5061ce55a3
Author: Xiang Fu <fx19880...@gmail.com>
AuthorDate: Fri Aug 28 13:08:33 2020 -0700

    Fixing the issue that transform UDFs are parsed as function name 'OTHER', 
not the real function names
---
 .../java/org/apache/pinot/sql/parsers/CalciteSqlParser.java |  1 +
 .../apache/pinot/sql/parsers/CalciteSqlCompilerTest.java    | 13 +++++++++++++
 2 files changed, 14 insertions(+)

diff --git 
a/pinot-common/src/main/java/org/apache/pinot/sql/parsers/CalciteSqlParser.java 
b/pinot-common/src/main/java/org/apache/pinot/sql/parsers/CalciteSqlParser.java
index 883834e..5275a1a 100644
--- 
a/pinot-common/src/main/java/org/apache/pinot/sql/parsers/CalciteSqlParser.java
+++ 
b/pinot-common/src/main/java/org/apache/pinot/sql/parsers/CalciteSqlParser.java
@@ -767,6 +767,7 @@ public class CalciteSqlParser {
           functionName = AggregationFunctionType.COUNT.name();
         }
         break;
+      case OTHER:
       case OTHER_FUNCTION:
         functionName = functionNode.getOperator().getName().toUpperCase();
         break;
diff --git 
a/pinot-common/src/test/java/org/apache/pinot/sql/parsers/CalciteSqlCompilerTest.java
 
b/pinot-common/src/test/java/org/apache/pinot/sql/parsers/CalciteSqlCompilerTest.java
index 25203f2..c025d6b 100644
--- 
a/pinot-common/src/test/java/org/apache/pinot/sql/parsers/CalciteSqlCompilerTest.java
+++ 
b/pinot-common/src/test/java/org/apache/pinot/sql/parsers/CalciteSqlCompilerTest.java
@@ -731,6 +731,19 @@ public class CalciteSqlCompilerTest {
   }
 
   @Test
+  public void testTimeTransformFunction() {
+    PinotQuery pinotQuery = CalciteSqlParser
+        .compileToPinotQuery("  select hour(ts), d1, sum(m1) from 
baseballStats group by hour(ts), d1");
+    
Assert.assertEquals(pinotQuery.getSelectList().get(0).getFunctionCall().getOperator(),
 "HOUR");
+    
Assert.assertEquals(pinotQuery.getSelectList().get(0).getFunctionCall().getOperands().get(0).getIdentifier().getName(),
 "ts");
+    
Assert.assertEquals(pinotQuery.getSelectList().get(1).getIdentifier().getName(),
 "d1");
+    
Assert.assertEquals(pinotQuery.getSelectList().get(2).getFunctionCall().getOperator(),
 "SUM");
+    
Assert.assertEquals(pinotQuery.getGroupByList().get(0).getFunctionCall().getOperator(),
 "HOUR");
+    
Assert.assertEquals(pinotQuery.getGroupByList().get(0).getFunctionCall().getOperands().get(0).getIdentifier().getName(),
 "ts");
+    
Assert.assertEquals(pinotQuery.getGroupByList().get(1).getIdentifier().getName(),
 "d1");
+  }
+
+  @Test
   public void testSqlDistinctQueryCompilation() {
     // test single column DISTINCT
     String sql = "SELECT DISTINCT c1 FROM foo";


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to