You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by yi...@apache.org on 2023/01/17 02:18:26 UTC

[doris] branch master updated: [Bug](datev2) Fix wrong cast expr (#15985)

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

yiguolei 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 1ea11aa120 [Bug](datev2) Fix wrong cast expr (#15985)
1ea11aa120 is described below

commit 1ea11aa120d6108bc01c3fadaa02a1d965a03ca3
Author: Gabriel <ga...@gmail.com>
AuthorDate: Tue Jan 17 10:18:20 2023 +0800

    [Bug](datev2) Fix wrong cast expr (#15985)
    
    Found by regression tests when I turn on enable_date_conversion
---
 .../org/apache/doris/analysis/StringLiteral.java   |  5 +-
 .../doris/analysis/TimestampArithmeticExpr.java    |  7 +-
 gensrc/script/doris_builtins_functions.py          | 88 ----------------------
 3 files changed, 4 insertions(+), 96 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/StringLiteral.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/StringLiteral.java
index bd8867b810..1094ca6564 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/StringLiteral.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/StringLiteral.java
@@ -21,7 +21,6 @@
 package org.apache.doris.analysis;
 
 import org.apache.doris.catalog.PrimitiveType;
-import org.apache.doris.catalog.ScalarType;
 import org.apache.doris.catalog.Type;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.DdlException;
@@ -185,8 +184,8 @@ public class StringLiteral extends LiteralExpr {
             newLiteral = new DateLiteral(value, targetType);
         } catch (AnalysisException e) {
             if (targetType.isScalarType(PrimitiveType.DATETIME)) {
-                newLiteral = new DateLiteral(value, ScalarType.getDefaultDateType(Type.DATE));
-                newLiteral.setType(ScalarType.getDefaultDateType(Type.DATETIME));
+                newLiteral = new DateLiteral(value, Type.DATE);
+                newLiteral.setType(Type.DATETIME);
             } else if (targetType.isScalarType(PrimitiveType.DATETIMEV2)) {
                 newLiteral = new DateLiteral(value, Type.DATEV2);
                 newLiteral.setType(targetType);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/TimestampArithmeticExpr.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/TimestampArithmeticExpr.java
index 2fc7850abc..ca2c098f34 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/TimestampArithmeticExpr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/TimestampArithmeticExpr.java
@@ -285,11 +285,8 @@ public class TimestampArithmeticExpr extends Expr {
             for (int i = 0; i < childrenTypes.length; ++i) {
                 // For varargs, we must compare with the last type in callArgs.argTypes.
                 int ix = Math.min(argTypes.length - 1, i);
-                if (!childrenTypes[i].matchesType(argTypes[ix]) && Config.enable_date_conversion
-                        && !childrenTypes[i].isDateType() && (argTypes[ix].isDate() || argTypes[ix].isDatetime())) {
-                    uncheckedCastChild(ScalarType.getDefaultDateType(argTypes[ix]), i);
-                } else if (!childrenTypes[i].matchesType(argTypes[ix]) && !(
-                        childrenTypes[i].isDateType() && argTypes[ix].isDateType())) {
+                if (!childrenTypes[i].matchesType(argTypes[ix]) && !(
+                        childrenTypes[i].isDateOrDateTime() && argTypes[ix].isDateOrDateTime())) {
                     uncheckedCastChild(argTypes[ix], i);
                 }
             }
diff --git a/gensrc/script/doris_builtins_functions.py b/gensrc/script/doris_builtins_functions.py
index 18380f8320..e353e44a5b 100755
--- a/gensrc/script/doris_builtins_functions.py
+++ b/gensrc/script/doris_builtins_functions.py
@@ -1435,94 +1435,6 @@ visible_functions = [
      '_ZN5doris18TimestampFunctions12seconds_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
      '', '', 'vec', 'ALWAYS_NULLABLE'],
 
-    [['years_diff'], 'BIGINT', ['DATEV2', 'DATETIME'],
-     '_ZN5doris18TimestampFunctions10years_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['months_diff'], 'BIGINT', ['DATEV2', 'DATETIME'],
-     '_ZN5doris18TimestampFunctions11months_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['weeks_diff'], 'BIGINT', ['DATEV2', 'DATETIME'],
-     '_ZN5doris18TimestampFunctions10weeks_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['days_diff'], 'BIGINT', ['DATEV2', 'DATETIME'],
-     '_ZN5doris18TimestampFunctions9days_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['hours_diff'], 'BIGINT', ['DATEV2', 'DATETIME'],
-     '_ZN5doris18TimestampFunctions10hours_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['minutes_diff'], 'BIGINT', ['DATEV2', 'DATETIME'],
-     '_ZN5doris18TimestampFunctions12minutes_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['seconds_diff'], 'BIGINT', ['DATEV2', 'DATETIME'],
-     '_ZN5doris18TimestampFunctions12seconds_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-
-    [['years_diff'], 'BIGINT', ['DATETIME', 'DATEV2'],
-     '_ZN5doris18TimestampFunctions10years_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['months_diff'], 'BIGINT', ['DATETIME', 'DATEV2'],
-     '_ZN5doris18TimestampFunctions11months_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['weeks_diff'], 'BIGINT', ['DATETIME', 'DATEV2'],
-     '_ZN5doris18TimestampFunctions10weeks_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['days_diff'], 'BIGINT', ['DATETIME', 'DATEV2'],
-     '_ZN5doris18TimestampFunctions9days_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['hours_diff'], 'BIGINT', ['DATETIME', 'DATEV2'],
-     '_ZN5doris18TimestampFunctions10hours_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['minutes_diff'], 'BIGINT', ['DATETIME', 'DATEV2'],
-     '_ZN5doris18TimestampFunctions12minutes_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['seconds_diff'], 'BIGINT', ['DATETIME', 'DATEV2'],
-     '_ZN5doris18TimestampFunctions12seconds_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-
-    [['years_diff'], 'BIGINT', ['DATETIMEV2', 'DATETIME'],
-     '_ZN5doris18TimestampFunctions10years_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['months_diff'], 'BIGINT', ['DATETIMEV2', 'DATETIME'],
-     '_ZN5doris18TimestampFunctions11months_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['weeks_diff'], 'BIGINT', ['DATETIMEV2', 'DATETIME'],
-     '_ZN5doris18TimestampFunctions10weeks_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['days_diff'], 'BIGINT', ['DATETIMEV2', 'DATETIME'],
-     '_ZN5doris18TimestampFunctions9days_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['hours_diff'], 'BIGINT', ['DATETIMEV2', 'DATETIME'],
-     '_ZN5doris18TimestampFunctions10hours_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['minutes_diff'], 'BIGINT', ['DATETIMEV2', 'DATETIME'],
-     '_ZN5doris18TimestampFunctions12minutes_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['seconds_diff'], 'BIGINT', ['DATETIMEV2', 'DATETIME'],
-     '_ZN5doris18TimestampFunctions12seconds_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-
-    [['years_diff'], 'BIGINT', ['DATETIME', 'DATETIMEV2'],
-     '_ZN5doris18TimestampFunctions10years_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['months_diff'], 'BIGINT', ['DATETIME', 'DATETIMEV2'],
-     '_ZN5doris18TimestampFunctions11months_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['weeks_diff'], 'BIGINT', ['DATETIME', 'DATETIMEV2'],
-     '_ZN5doris18TimestampFunctions10weeks_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['days_diff'], 'BIGINT', ['DATETIME', 'DATETIMEV2'],
-     '_ZN5doris18TimestampFunctions9days_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['hours_diff'], 'BIGINT', ['DATETIME', 'DATETIMEV2'],
-     '_ZN5doris18TimestampFunctions10hours_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['minutes_diff'], 'BIGINT', ['DATETIME', 'DATETIMEV2'],
-     '_ZN5doris18TimestampFunctions12minutes_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-    [['seconds_diff'], 'BIGINT', ['DATETIME', 'DATETIMEV2'],
-     '_ZN5doris18TimestampFunctions12seconds_diffEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValES6_',
-     '', '', 'vec', 'ALWAYS_NULLABLE'],
-
     [['year_floor'], 'DATETIMEV2', ['DATETIMEV2'],
      '_ZN5doris18TimestampFunctions10year_floorEPN9doris_udf15FunctionContextERKNS1_11DateTimeV2ValE',
      '', '', 'vec', 'ALWAYS_NULLABLE'],


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