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