You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by ja...@apache.org on 2023/01/29 12:42:36 UTC

[doris] branch master updated: [Fix](Nereids): fix error of X-Z function for nereids (#16171)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 1db7882bb5 [Fix](Nereids): fix error of X-Z function for nereids (#16171)
1db7882bb5 is described below

commit 1db7882bb5313f71e06456639ed0bb9fb31da5d7
Author: mch_ucchi <41...@users.noreply.github.com>
AuthorDate: Sun Jan 29 20:42:30 2023 +0800

    [Fix](Nereids): fix error of X-Z function for nereids (#16171)
---
 .../doris/nereids/parser/LogicalPlanBuilder.java   |   5 -
 .../nereids_function_p0/scalar_function/A-F.out    | 102 +++++++++++++-
 .../nereids_function_p0/scalar_function/X-Z.out    | 150 +++++++++++++++++++++
 .../nereids_function_p0/scalar_function/A-F.groovy |  15 +--
 .../nereids_function_p0/scalar_function/X-Z.groovy |  23 ++--
 5 files changed, 262 insertions(+), 33 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
index 575f20c994..db976292b1 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
@@ -215,8 +215,6 @@ import org.apache.doris.nereids.trees.plans.logical.LogicalUnion;
 import org.apache.doris.nereids.trees.plans.logical.RelationUtil;
 import org.apache.doris.nereids.trees.plans.logical.UsingJoin;
 import org.apache.doris.nereids.types.DataType;
-import org.apache.doris.nereids.types.IntegerType;
-import org.apache.doris.nereids.types.TinyIntType;
 import org.apache.doris.nereids.util.ExpressionUtils;
 import org.apache.doris.policy.PolicyTypeEnum;
 import org.apache.doris.qe.ConnectContext;
@@ -828,9 +826,6 @@ public class LogicalPlanBuilder extends DorisParserBaseVisitor<Object> {
     public Expression visitDate_sub(Date_subContext ctx) {
         Expression timeStamp = (Expression) visit(ctx.timestamp);
         Expression amount = (Expression) visit(ctx.unitsAmount);
-        if (! (amount.getDataType() instanceof TinyIntType)) {
-            amount = new Cast(amount, IntegerType.INSTANCE);
-        }
         if (ctx.unit == null) {
             //use "DAY" as unit by default
             return new DaysSub(timeStamp, amount);
diff --git a/regression-test/data/nereids_function_p0/scalar_function/A-F.out b/regression-test/data/nereids_function_p0/scalar_function/A-F.out
index d59832d042..9a405a8c16 100644
--- a/regression-test/data/nereids_function_p0/scalar_function/A-F.out
+++ b/regression-test/data/nereids_function_p0/scalar_function/A-F.out
@@ -346,15 +346,15 @@
 
 -- !sql --
 \N
-0.4641588833612779
-0.5848035476425733
-0.6694329500821695
-0.7368062997280773
+0.46415888336127786
+0.5848035476425731
+0.6694329500821694
+0.7368062997280772
 0.7937005259840998
 0.8434326653017492
 0.8879040017426008
-0.9283177667225558
-0.9654893846056298
+0.9283177667225557
+0.9654893846056297
 1.0
 1.0322801154563672
 1.0626585691826111
@@ -1229,6 +1229,21 @@ varchar13
 2012-03-11T11:10:11
 2012-03-12T12:11:12
 
+-- !sql --
+\N
+2012-03-01T01:00:01
+2012-03-02T02:01:02
+2012-03-03T03:02:03
+2012-03-04T04:03:04
+2012-03-05T05:04:05
+2012-03-06T06:05:06
+2012-03-07T07:06:07
+2012-03-08T08:07:08
+2012-03-09T09:08:09
+2012-03-10T10:09:10
+2012-03-11T11:10:11
+2012-03-12T12:11:12
+
 -- !sql --
 \N
 2012-03-01
@@ -1394,6 +1409,21 @@ varchar13
 2012-03-11T11:10:11
 2012-03-12T12:11:12
 
+-- !sql --
+\N
+2012-03-01T01:00:01
+2012-03-02T02:01:02
+2012-03-03T03:02:03
+2012-03-04T04:03:04
+2012-03-05T05:04:05
+2012-03-06T06:05:06
+2012-03-07T07:06:07
+2012-03-08T08:07:08
+2012-03-09T09:08:09
+2012-03-10T10:09:10
+2012-03-11T11:10:11
+2012-03-12T12:11:12
+
 -- !sql --
 \N
 2012-03-01
@@ -1784,6 +1814,66 @@ Monday
 0
 0
 
+-- !sql --
+\N
+2012-02-29T01:00:01
+2012-02-29T02:01:02
+2012-02-29T03:02:03
+2012-02-29T04:03:04
+2012-02-29T05:04:05
+2012-02-29T06:05:06
+2012-02-29T07:06:07
+2012-02-29T08:07:08
+2012-02-29T09:08:09
+2012-02-29T10:09:10
+2012-02-29T11:10:11
+2012-02-29T12:11:12
+
+-- !sql --
+\N
+2012-02-29T01:00:01
+2012-02-29T02:01:02
+2012-02-29T03:02:03
+2012-02-29T04:03:04
+2012-02-29T05:04:05
+2012-02-29T06:05:06
+2012-02-29T07:06:07
+2012-02-29T08:07:08
+2012-02-29T09:08:09
+2012-02-29T10:09:10
+2012-02-29T11:10:11
+2012-02-29T12:11:12
+
+-- !sql --
+\N
+2012-02-29
+2012-02-29
+2012-02-29
+2012-02-29
+2012-02-29
+2012-02-29
+2012-02-29
+2012-02-29
+2012-02-29
+2012-02-29
+2012-02-29
+2012-02-29
+
+-- !sql --
+\N
+2012-02-29
+2012-02-29
+2012-02-29
+2012-02-29
+2012-02-29
+2012-02-29
+2012-02-29
+2012-02-29
+2012-02-29
+2012-02-29
+2012-02-29
+2012-02-29
+
 -- !sql --
 \N
 1.0
diff --git a/regression-test/data/nereids_function_p0/scalar_function/X-Z.out b/regression-test/data/nereids_function_p0/scalar_function/X-Z.out
index 4e91706419..9c6ca6ad01 100644
--- a/regression-test/data/nereids_function_p0/scalar_function/X-Z.out
+++ b/regression-test/data/nereids_function_p0/scalar_function/X-Z.out
@@ -494,6 +494,81 @@
 201210
 201211
 
+-- !sql --
+\N
+2013-03-01T01:00:01
+2014-03-02T02:01:02
+2015-03-03T03:02:03
+2016-03-04T04:03:04
+2017-03-05T05:04:05
+2018-03-06T06:05:06
+2019-03-07T07:06:07
+2020-03-08T08:07:08
+2021-03-09T09:08:09
+2022-03-10T10:09:10
+2023-03-11T11:10:11
+2024-03-12T12:11:12
+
+-- !sql --
+\N
+2013-03-01T01:00:01
+2014-03-02T02:01:02
+2015-03-03T03:02:03
+2016-03-04T04:03:04
+2017-03-05T05:04:05
+2018-03-06T06:05:06
+2019-03-07T07:06:07
+2020-03-08T08:07:08
+2021-03-09T09:08:09
+2022-03-10T10:09:10
+2023-03-11T11:10:11
+2024-03-12T12:11:12
+
+-- !sql --
+\N
+2013-03-01
+2014-03-02
+2015-03-03
+2016-03-04
+2017-03-05
+2018-03-06
+2019-03-07
+2020-03-08
+2021-03-09
+2022-03-10
+2023-03-11
+2024-03-12
+
+-- !sql --
+\N
+2013-03-01
+2014-03-02
+2015-03-03
+2016-03-04
+2017-03-05
+2018-03-06
+2019-03-07
+2020-03-08
+2021-03-09
+2022-03-10
+2023-03-11
+2024-03-12
+
+-- !sql --
+\N
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+
 -- !sql --
 \N
 0
@@ -599,3 +674,78 @@
 0
 0
 
+-- !sql --
+\N
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+
+-- !sql --
+\N
+2011-03-01T01:00:01
+2010-03-02T02:01:02
+2009-03-03T03:02:03
+2008-03-04T04:03:04
+2007-03-05T05:04:05
+2006-03-06T06:05:06
+2005-03-07T07:06:07
+2004-03-08T08:07:08
+2003-03-09T09:08:09
+2002-03-10T10:09:10
+2001-03-11T11:10:11
+2000-03-12T12:11:12
+
+-- !sql --
+\N
+2011-03-01T01:00:01
+2010-03-02T02:01:02
+2009-03-03T03:02:03
+2008-03-04T04:03:04
+2007-03-05T05:04:05
+2006-03-06T06:05:06
+2005-03-07T07:06:07
+2004-03-08T08:07:08
+2003-03-09T09:08:09
+2002-03-10T10:09:10
+2001-03-11T11:10:11
+2000-03-12T12:11:12
+
+-- !sql --
+\N
+2011-03-01
+2010-03-02
+2009-03-03
+2008-03-04
+2007-03-05
+2006-03-06
+2005-03-07
+2004-03-08
+2003-03-09
+2002-03-10
+2001-03-11
+2000-03-12
+
+-- !sql --
+\N
+2011-03-01
+2010-03-02
+2009-03-03
+2008-03-04
+2007-03-05
+2006-03-06
+2005-03-07
+2004-03-08
+2003-03-09
+2002-03-10
+2001-03-11
+2000-03-12
+
diff --git a/regression-test/suites/nereids_function_p0/scalar_function/A-F.groovy b/regression-test/suites/nereids_function_p0/scalar_function/A-F.groovy
index f97796c346..8ea8296e1d 100644
--- a/regression-test/suites/nereids_function_p0/scalar_function/A-F.groovy
+++ b/regression-test/suites/nereids_function_p0/scalar_function/A-F.groovy
@@ -145,8 +145,7 @@ suite("nereids_scalar_fn_1") {
     qt_sql "select day_ceil(kdtmv2s1, kint) from fn_test order by kdtmv2s1, kint"
     qt_sql "select day_ceil(kdtv2, kdtv2) from fn_test order by kdtv2, kdtv2"
     qt_sql "select day_ceil(kdtv2, kint) from fn_test order by kdtv2, kint"
-    // core
-    // qt_sql "select day_ceil(kdtm, kint, kdtm) from fn_test order by kdtm, kint, kdtm"
+    qt_sql "select day_ceil(kdtm, kint, kdtm) from fn_test order by kdtm, kint, kdtm"
     qt_sql "select day_ceil(kdtmv2s1, kint, kdtmv2s1) from fn_test order by kdtmv2s1, kint, kdtmv2s1"
     qt_sql "select day_ceil(kdtv2, kint, kdtv2) from fn_test order by kdtv2, kint, kdtv2"
     qt_sql "select day_floor(kdtm) from fn_test order by kdtm"
@@ -158,8 +157,7 @@ suite("nereids_scalar_fn_1") {
     qt_sql "select day_floor(kdtmv2s1, kint) from fn_test order by kdtmv2s1, kint"
     qt_sql "select day_floor(kdtv2, kdtv2) from fn_test order by kdtv2, kdtv2"
     qt_sql "select day_floor(kdtv2, kint) from fn_test order by kdtv2, kint"
-    // core
-    // qt_sql "select day_floor(kdtm, kint, kdtm) from fn_test order by kdtm, kint, kdtm"
+    qt_sql "select day_floor(kdtm, kint, kdtm) from fn_test order by kdtm, kint, kdtm"
     qt_sql "select day_floor(kdtmv2s1, kint, kdtmv2s1) from fn_test order by kdtmv2s1, kint, kdtmv2s1"
     qt_sql "select day_floor(kdtv2, kint, kdtv2) from fn_test order by kdtv2, kint, kdtv2"
     qt_sql "select dayname(kdtm) from fn_test order by kdtm"
@@ -187,11 +185,10 @@ suite("nereids_scalar_fn_1") {
     qt_sql "select days_diff(kdtm, kdtv2) from fn_test order by kdtm, kdtv2"
     qt_sql "select days_diff(kdtmv2s1, kdtm) from fn_test order by kdtmv2s1, kdtm"
     qt_sql "select days_diff(kdtm, kdtmv2s1) from fn_test order by kdtm, kdtmv2s1"
-    // cannot find function
-    // qt_sql "select days_sub(kdtm, kint) from fn_test order by kdtm, kint"
-    // qt_sql "select days_sub(kdtmv2s1, kint) from fn_test order by kdtmv2s1, kint"
-    // qt_sql "select days_sub(kdt, kint) from fn_test order by kdt, kint"
-    // qt_sql "select days_sub(kdtv2, kint) from fn_test order by kdtv2, kint"
+    qt_sql "select days_sub(kdtm, kint) from fn_test order by kdtm, kint"
+    qt_sql "select days_sub(kdtmv2s1, kint) from fn_test order by kdtmv2s1, kint"
+    qt_sql "select days_sub(kdt, kint) from fn_test order by kdt, kint"
+    qt_sql "select days_sub(kdtv2, kint) from fn_test order by kdtv2, kint"
     qt_sql "select dceil(kdbl) from fn_test order by kdbl"
     qt_sql "select degrees(kdbl) from fn_test order by kdbl"
     // data out of double range
diff --git a/regression-test/suites/nereids_function_p0/scalar_function/X-Z.groovy b/regression-test/suites/nereids_function_p0/scalar_function/X-Z.groovy
index 57832c5414..1769146a3d 100644
--- a/regression-test/suites/nereids_function_p0/scalar_function/X-Z.groovy
+++ b/regression-test/suites/nereids_function_p0/scalar_function/X-Z.groovy
@@ -47,30 +47,27 @@ suite("nereids_scalar_fn_5") {
     qt_sql "select year_floor(kdtm, kint, kdtm) from fn_test order by kdtm, kint, kdtm"
     qt_sql "select year_floor(kdtmv2s1, kint, kdtmv2s1) from fn_test order by kdtmv2s1, kint, kdtmv2s1"
     qt_sql "select year_floor(kdtv2, kint, kdtv2) from fn_test order by kdtv2, kint, kdtv2"
-    // cannot find function
     qt_sql "select yearweek(kdtm) from fn_test order by kdtm"
     qt_sql "select yearweek(kdtmv2s1) from fn_test order by kdtmv2s1"
     qt_sql "select yearweek(kdtv2) from fn_test order by kdtv2"
     qt_sql "select yearweek(kdtm, kint) from fn_test order by kdtm, kint"
     qt_sql "select yearweek(kdtmv2s1, kint) from fn_test order by kdtmv2s1, kint"
     qt_sql "select yearweek(kdtv2, kint) from fn_test order by kdtv2, kint"
-    // qt_sql "select years_add(kdtm, kint) from fn_test order by kdtm, kint"
-    // qt_sql "select years_add(kdtmv2s1, kint) from fn_test order by kdtmv2s1, kint"
-    // qt_sql "select years_add(kdt, kint) from fn_test order by kdt, kint"
-    // qt_sql "select years_add(kdtv2, kint) from fn_test order by kdtv2, kint"
+    qt_sql "select years_add(kdtm, kint) from fn_test order by kdtm, kint"
+    qt_sql "select years_add(kdtmv2s1, kint) from fn_test order by kdtmv2s1, kint"
+    qt_sql "select years_add(kdt, kint) from fn_test order by kdt, kint"
+    qt_sql "select years_add(kdtv2, kint) from fn_test order by kdtv2, kint"
     qt_sql "select years_diff(kdtm, kdtm) from fn_test order by kdtm, kdtm"
     qt_sql "select years_diff(kdtmv2s1, kdtmv2s1) from fn_test order by kdtmv2s1, kdtmv2s1"
     qt_sql "select years_diff(kdtv2, kdtmv2s1) from fn_test order by kdtv2, kdtmv2s1"
     qt_sql "select years_diff(kdtmv2s1, kdtv2) from fn_test order by kdtmv2s1, kdtv2"
     qt_sql "select years_diff(kdtv2, kdtv2) from fn_test order by kdtv2, kdtv2"
-    // result error
-    // qt_sql "select years_diff(kdtv2, kdtm) from fn_test order by kdtv2, kdtm"
-    // qt_sql "select years_diff(kdtm, kdtv2) from fn_test order by kdtm, kdtv2"
+    qt_sql "select years_diff(kdtv2, kdtm) from fn_test order by kdtv2, kdtm"
+    qt_sql "select years_diff(kdtm, kdtv2) from fn_test order by kdtm, kdtv2"
     qt_sql "select years_diff(kdtmv2s1, kdtm) from fn_test order by kdtmv2s1, kdtm"
     qt_sql "select years_diff(kdtm, kdtmv2s1) from fn_test order by kdtm, kdtmv2s1"
-    // cannot find function
-    // qt_sql "select years_sub(kdtm, kint) from fn_test order by kdtm, kint"
-    // qt_sql "select years_sub(kdtmv2s1, kint) from fn_test order by kdtmv2s1, kint"
-    // qt_sql "select years_sub(kdt, kint) from fn_test order by kdt, kint"
-    // qt_sql "select years_sub(kdtv2, kint) from fn_test order by kdtv2, kint"
+    qt_sql "select years_sub(kdtm, kint) from fn_test order by kdtm, kint"
+    qt_sql "select years_sub(kdtmv2s1, kint) from fn_test order by kdtmv2s1, kint"
+    qt_sql "select years_sub(kdt, kint) from fn_test order by kdt, kint"
+    qt_sql "select years_sub(kdtv2, kint) from fn_test order by kdtv2, kint"
 }
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org