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

xxyu pushed a commit to branch kylin5
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit 779bc03ed9b75a26d9bf8d3d40fb7ca98d54ec9a
Author: liang.huang <83992752+lhuang09287...@users.noreply.github.com>
AuthorDate: Sat May 20 09:46:30 2023 +0800

    KYLIN-5691 make KYLIN5 date udfs  hold  string args
---
 .../query/sql_computedcolumn/sql_computedcolumn_DateUDF/query00.sql | 3 ++-
 .../sql_computedcolumn_DateUDF/query00.sql.expected                 | 3 ++-
 .../main/java/org/apache/kylin/query/udf/dateUdf/DateDiffUDF.java   | 6 +++++-
 src/query/src/test/java/org/apache/kylin/query/udf/DateUDFTest.java | 3 ++-
 4 files changed, 11 insertions(+), 4 deletions(-)

diff --git 
a/src/kylin-it/src/test/resources/query/sql_computedcolumn/sql_computedcolumn_DateUDF/query00.sql
 
b/src/kylin-it/src/test/resources/query/sql_computedcolumn/sql_computedcolumn_DateUDF/query00.sql
index 76b47c10ee..743672a151 100644
--- 
a/src/kylin-it/src/test/resources/query/sql_computedcolumn/sql_computedcolumn_DateUDF/query00.sql
+++ 
b/src/kylin-it/src/test/resources/query/sql_computedcolumn/sql_computedcolumn_DateUDF/query00.sql
@@ -21,5 +21,6 @@ select  --add_months(CAL_DT,2),
           count(date_part('YEAR',CAL_DT)),
           count(date_part('MONTH',CAL_DT)),
           count(date_part('DAY',CAL_DT)),
-          count(datediff(CAL_DT,date'2019-8-3'))
+          count(datediff(CAL_DT,date'2019-8-3')),
+          count(datediff(cast(CAL_DT as string),'2019-8-3'))
 from TEST_KYLIN_FACT
diff --git 
a/src/kylin-it/src/test/resources/query/sql_computedcolumn/sql_computedcolumn_DateUDF/query00.sql.expected
 
b/src/kylin-it/src/test/resources/query/sql_computedcolumn/sql_computedcolumn_DateUDF/query00.sql.expected
index 1de3c3624b..0560b80121 100644
--- 
a/src/kylin-it/src/test/resources/query/sql_computedcolumn/sql_computedcolumn_DateUDF/query00.sql.expected
+++ 
b/src/kylin-it/src/test/resources/query/sql_computedcolumn/sql_computedcolumn_DateUDF/query00.sql.expected
@@ -4,5 +4,6 @@ select --add_months(CAL_DT,2),
           count(date_format(CAL_DT,'y')),
           count(date_format(CAL_DT,'M')),
           count(date_format(CAL_DT,'d')),
-          count(datediff(CAL_DT,date'2019-8-3'))
+          count(datediff(CAL_DT,date'2019-8-3')),
+          count(datediff(cast(CAL_DT as string),'2019-8-3'))
 from TEST_KYLIN_FACT
\ No newline at end of file
diff --git 
a/src/query/src/main/java/org/apache/kylin/query/udf/dateUdf/DateDiffUDF.java 
b/src/query/src/main/java/org/apache/kylin/query/udf/dateUdf/DateDiffUDF.java
index 841befa589..292288b678 100644
--- 
a/src/query/src/main/java/org/apache/kylin/query/udf/dateUdf/DateDiffUDF.java
+++ 
b/src/query/src/main/java/org/apache/kylin/query/udf/dateUdf/DateDiffUDF.java
@@ -24,7 +24,11 @@ import org.apache.calcite.linq4j.function.Parameter;
 
 public class DateDiffUDF {
 
-    public Long DATEDIFF(@Parameter(name = "date") Date date1, @Parameter(name 
= "date") Date date2) {
+    public Long dateDiff(@Parameter(name = "date") Date date1, @Parameter(name 
= "date") Date date2) {
         return (date1.getTime() - date2.getTime()) / (1000 * 60 * 60 * 24);
     }
+
+    public Long dateDiff(@Parameter(name = "date") String date1, 
@Parameter(name = "date") String date2){
+        return (Date.valueOf(date1).getTime() - Date.valueOf(date2).getTime()) 
/ (1000 * 60 * 60 * 24);
+    }
 }
diff --git 
a/src/query/src/test/java/org/apache/kylin/query/udf/DateUDFTest.java 
b/src/query/src/test/java/org/apache/kylin/query/udf/DateUDFTest.java
index 6da41b24cc..05934f5dd7 100644
--- a/src/query/src/test/java/org/apache/kylin/query/udf/DateUDFTest.java
+++ b/src/query/src/test/java/org/apache/kylin/query/udf/DateUDFTest.java
@@ -32,7 +32,8 @@ public class DateUDFTest {
     @MultiTimezoneTest(timezones = { "GMT+8", "GMT+12", "GMT+0" })
     public void testDateDiffUDF() throws Exception {
         DateDiffUDF dateDiffUDF = new DateDiffUDF();
-        assertEquals(-35, (long) 
dateDiffUDF.DATEDIFF(Date.valueOf("2019-06-28"), Date.valueOf("2019-08-02")));
+        assertEquals(-35, (long) 
dateDiffUDF.dateDiff(Date.valueOf("2019-06-28"), Date.valueOf("2019-08-02")));
+        assertEquals(-35, (long) dateDiffUDF.dateDiff("2019-06-28", 
"2019-08-02"));
     }
 
     @MultiTimezoneTest(timezones = { "GMT+8", "GMT+12", "GMT+0" })

Reply via email to