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

yiguolei pushed a commit to branch branch-4.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-4.0 by this push:
     new 6bd501c97c5 branch-4.0: [chore](function) remove useless trait 
PropagateNullableOnDateV2LikeArgs #57920 (#58415)
6bd501c97c5 is described below

commit 6bd501c97c5dcbaf8615ea724b7c2c41bc31bd75
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu Nov 27 08:53:58 2025 +0800

    branch-4.0: [chore](function) remove useless trait 
PropagateNullableOnDateV2LikeArgs #57920 (#58415)
    
    Cherry-picked from #57920
    
    Co-authored-by: morrySnow <[email protected]>
---
 .../glue/translator/ExpressionTranslator.java      |  6 +---
 .../trees/expressions/TimestampArithmetic.java     | 20 ++++-------
 .../PropagateNullableOnDateOrTimeLikeV2Args.java   | 39 ----------------------
 .../expressions/functions/scalar/DateDiff.java     |  4 +--
 .../expressions/functions/scalar/DayName.java      |  4 +--
 .../expressions/functions/scalar/DayOfMonth.java   |  4 +--
 .../expressions/functions/scalar/DayOfWeek.java    |  4 +--
 .../expressions/functions/scalar/DayOfYear.java    |  4 +--
 .../expressions/functions/scalar/DaySecondAdd.java |  4 +--
 .../expressions/functions/scalar/DaysAdd.java      |  4 +--
 .../expressions/functions/scalar/DaysDiff.java     |  4 +--
 .../expressions/functions/scalar/DaysSub.java      |  4 +--
 .../trees/expressions/functions/scalar/Hour.java   |  4 +--
 .../expressions/functions/scalar/HoursAdd.java     |  4 +--
 .../expressions/functions/scalar/HoursDiff.java    |  4 +--
 .../expressions/functions/scalar/HoursSub.java     |  4 +--
 .../expressions/functions/scalar/LastDay.java      |  4 +--
 .../functions/scalar/MicroSecondTimestamp.java     |  4 +--
 .../functions/scalar/MicroSecondsAdd.java          |  4 +--
 .../functions/scalar/MicroSecondsDiff.java         |  4 +--
 .../functions/scalar/MicroSecondsSub.java          |  4 +--
 .../expressions/functions/scalar/Microsecond.java  |  4 +--
 .../functions/scalar/MilliSecondTimestamp.java     |  4 +--
 .../functions/scalar/MilliSecondsAdd.java          |  4 +--
 .../functions/scalar/MilliSecondsDiff.java         |  4 +--
 .../functions/scalar/MilliSecondsSub.java          |  4 +--
 .../trees/expressions/functions/scalar/Minute.java |  4 +--
 .../expressions/functions/scalar/MinutesAdd.java   |  4 +--
 .../expressions/functions/scalar/MinutesDiff.java  |  4 +--
 .../expressions/functions/scalar/MinutesSub.java   |  4 +--
 .../trees/expressions/functions/scalar/Month.java  |  4 +--
 .../expressions/functions/scalar/MonthName.java    |  4 +--
 .../expressions/functions/scalar/MonthsAdd.java    |  4 +--
 .../functions/scalar/MonthsBetween.java            |  4 +--
 .../expressions/functions/scalar/MonthsDiff.java   |  4 +--
 .../expressions/functions/scalar/MonthsSub.java    |  4 +--
 .../expressions/functions/scalar/Quarter.java      |  4 +--
 .../expressions/functions/scalar/QuartersAdd.java  |  4 +--
 .../expressions/functions/scalar/QuartersDiff.java |  4 +--
 .../expressions/functions/scalar/QuartersSub.java  |  4 +--
 .../trees/expressions/functions/scalar/Second.java |  4 +--
 .../functions/scalar/SecondTimestamp.java          |  4 +--
 .../expressions/functions/scalar/SecondsAdd.java   |  4 +--
 .../expressions/functions/scalar/SecondsDiff.java  |  4 +--
 .../expressions/functions/scalar/SecondsSub.java   |  4 +--
 .../trees/expressions/functions/scalar/Time.java   |  4 +--
 .../expressions/functions/scalar/TimeDiff.java     |  4 +--
 .../expressions/functions/scalar/Timestamp.java    |  4 +--
 .../trees/expressions/functions/scalar/ToDays.java |  4 +--
 .../expressions/functions/scalar/ToMonday.java     |  4 +--
 .../trees/expressions/functions/scalar/Week.java   |  4 +--
 .../expressions/functions/scalar/WeekOfYear.java   |  4 +--
 .../expressions/functions/scalar/Weekday.java      |  4 +--
 .../expressions/functions/scalar/WeeksAdd.java     |  4 +--
 .../expressions/functions/scalar/WeeksDiff.java    |  4 +--
 .../expressions/functions/scalar/WeeksSub.java     |  4 +--
 .../trees/expressions/functions/scalar/Year.java   |  4 +--
 .../expressions/functions/scalar/YearOfWeek.java   |  4 +--
 .../expressions/functions/scalar/YearWeek.java     |  4 +--
 .../expressions/functions/scalar/YearsAdd.java     |  4 +--
 .../expressions/functions/scalar/YearsDiff.java    |  4 +--
 .../expressions/functions/scalar/YearsSub.java     |  4 +--
 .../org/apache/doris/nereids/types/DataType.java   |  4 ---
 63 files changed, 125 insertions(+), 180 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/ExpressionTranslator.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/ExpressionTranslator.java
index d1d4c0f236c..121b7a05aa3 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/ExpressionTranslator.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/ExpressionTranslator.java
@@ -755,15 +755,11 @@ public class ExpressionTranslator extends 
DefaultExpressionVisitor<Expr, PlanTra
     public Expr visitTimestampArithmetic(TimestampArithmetic arithmetic, 
PlanTranslatorContext context) {
         Preconditions.checkNotNull(arithmetic.getFuncName(),
                 "funcName in TimestampArithmetic should not be null");
-        NullableMode nullableMode = NullableMode.ALWAYS_NULLABLE;
-        if (arithmetic.children().stream().anyMatch(e -> 
e.getDataType().isDateV2LikeType())) {
-            nullableMode = NullableMode.DEPEND_ON_ARGUMENT;
-        }
         TimestampArithmeticExpr timestampArithmeticExpr = new 
TimestampArithmeticExpr(
                 arithmetic.getFuncName(), arithmetic.getOp(),
                 arithmetic.left().accept(this, context), 
arithmetic.right().accept(this, context),
                 arithmetic.getTimeUnit().toString(), 
arithmetic.getDataType().toCatalogDataType(),
-                nullableMode);
+                NullableMode.DEPEND_ON_ARGUMENT);
         timestampArithmeticExpr.setNullableFromNereids(arithmetic.nullable());
         return timestampArithmeticExpr;
     }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/TimestampArithmetic.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/TimestampArithmetic.java
index b028df70c24..c7789b968c6 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/TimestampArithmetic.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/TimestampArithmetic.java
@@ -20,14 +20,12 @@ package org.apache.doris.nereids.trees.expressions;
 import org.apache.doris.analysis.ArithmeticExpr.Operator;
 import org.apache.doris.nereids.exceptions.AnalysisException;
 import org.apache.doris.nereids.exceptions.UnboundException;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.Interval.TimeUnit;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DataType;
-import org.apache.doris.nereids.types.DateTimeType;
 import org.apache.doris.nereids.types.DateTimeV2Type;
-import org.apache.doris.nereids.types.DateType;
 import org.apache.doris.nereids.types.DateV2Type;
 
 import com.google.common.base.Preconditions;
@@ -44,7 +42,7 @@ import java.util.Objects;
  * TODO: we need to rethink this, and maybe need to add a new type of Interval 
then implement IntervalLiteral as others
  */
 public class TimestampArithmetic extends Expression
-        implements BinaryExpression, PropagateNullableOnDateOrTimeLikeV2Args {
+        implements BinaryExpression, PropagateNullable {
 
     private final String funcName;
     private final Operator op;
@@ -87,17 +85,11 @@ public class TimestampArithmetic extends Expression
         if (childType instanceof DateTimeV2Type) {
             return childType;
         }
-        if (childType instanceof DateV2Type) {
-            if (timeUnit.isDateTimeUnit()) {
-                return DateTimeV2Type.SYSTEM_DEFAULT;
-            }
-            return DateV2Type.INSTANCE;
-        }
-        if (childType instanceof DateTimeType || timeUnit.isDateTimeUnit()) {
-            return DateTimeType.INSTANCE;
-        } else {
-            return DateType.INSTANCE;
+        // datev2
+        if (timeUnit.isDateTimeUnit()) {
+            return DateTimeV2Type.SYSTEM_DEFAULT;
         }
+        return DateV2Type.INSTANCE;
     }
 
     public String getFuncName() {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/PropagateNullableOnDateOrTimeLikeV2Args.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/PropagateNullableOnDateOrTimeLikeV2Args.java
deleted file mode 100644
index ff3f6ff3ab7..00000000000
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/PropagateNullableOnDateOrTimeLikeV2Args.java
+++ /dev/null
@@ -1,39 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-package org.apache.doris.nereids.trees.expressions.functions;
-
-import org.apache.doris.nereids.trees.expressions.Expression;
-
-import java.util.List;
-
-/**
- * some function PropagateNullable when args are datev2 or datetimev2 or time 
like
- * and AlwaysNullable when other type parameters
- */
-public interface PropagateNullableOnDateOrTimeLikeV2Args extends 
PropagateNullable, AlwaysNullable {
-    @Override
-    default boolean nullable() {
-        if (children().stream().anyMatch(e -> 
e.getDataType().isDateV2LikeType() || e.getDataType().isTimeType())) {
-            return PropagateNullable.super.nullable();
-        } else {
-            return AlwaysNullable.super.nullable();
-        }
-    }
-
-    List<Expression> children();
-}
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DateDiff.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DateDiff.java
index 6de599227f1..16a2e1cf325 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DateDiff.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DateDiff.java
@@ -20,7 +20,7 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'datediff'. This class is generated by GenerateFunction.
  */
 public class DateDiff extends ScalarFunction
-        implements BinaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args {
+        implements BinaryExpression, ExplicitlyCastableSignature, 
PropagateNullable {
 
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             FunctionSignature.ret(IntegerType.INSTANCE)
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DayName.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DayName.java
index 6c7938beb54..fe4ea295402 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DayName.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DayName.java
@@ -20,7 +20,7 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'dayname'. This class is generated by GenerateFunction.
  */
 public class DayName extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable {
 
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(VarcharType.SYSTEM_DEFAULT).args(DateV2Type.INSTANCE),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DayOfMonth.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DayOfMonth.java
index 2e5bb9c1794..65bc38ce305 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DayOfMonth.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DayOfMonth.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.Monotonic;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.DateLiteral;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
 import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
@@ -39,7 +39,7 @@ import java.util.List;
  * ScalarFunction 'dayofmonth'. This class is generated by GenerateFunction.
  */
 public class DayOfMonth extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args, Monotonic {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable, Monotonic {
 
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(TinyIntType.INSTANCE).args(DateV2Type.INSTANCE),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DayOfWeek.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DayOfWeek.java
index fa095e2baa1..37608ed54de 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DayOfWeek.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DayOfWeek.java
@@ -20,7 +20,7 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'dayofweek'. This class is generated by GenerateFunction.
  */
 public class DayOfWeek extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable {
 
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(TinyIntType.INSTANCE).args(DateV2Type.INSTANCE),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DayOfYear.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DayOfYear.java
index 3fc252c6873..d6925d168ab 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DayOfYear.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DayOfYear.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.Monotonic;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.DateLiteral;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
 import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
@@ -39,7 +39,7 @@ import java.util.List;
  * ScalarFunction 'dayofyear'. This class is generated by GenerateFunction.
  */
 public class DayOfYear extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args, Monotonic {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable, Monotonic {
 
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(SmallIntType.INSTANCE).args(DateV2Type.INSTANCE),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DaySecondAdd.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DaySecondAdd.java
index 6d583e9efb8..2bb8108d862 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DaySecondAdd.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DaySecondAdd.java
@@ -22,7 +22,7 @@ import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputeSignatureForDateArithmetic;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -38,7 +38,7 @@ import java.util.List;
  */
 public class DaySecondAdd extends ScalarFunction
         implements BinaryExpression, ExplicitlyCastableSignature,
-        ComputeSignatureForDateArithmetic, 
PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        ComputeSignatureForDateArithmetic, PropagateNullable, 
DateAddSubMonotonic {
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(DateTimeV2Type.WILDCARD).args(DateTimeV2Type.WILDCARD,
                 VarcharType.SYSTEM_DEFAULT));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DaysAdd.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DaysAdd.java
index 1463298c526..ef236caf10a 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DaysAdd.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DaysAdd.java
@@ -22,7 +22,7 @@ import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputeSignatureForDateArithmetic;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -38,7 +38,7 @@ import java.util.List;
  * ScalarFunction 'days_add'.
  */
 public class DaysAdd extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        ComputeSignatureForDateArithmetic, 
PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        ComputeSignatureForDateArithmetic, PropagateNullable, 
DateAddSubMonotonic {
 
     //ATTN: must place Datetime before Date, because for castring from string 
like literal, date and datetime has
     // the same precedence, but we prefer datetime to avoid data loss. for 
string literal which could cast to Date
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DaysDiff.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DaysDiff.java
index 60810778141..f894c9f09a6 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DaysDiff.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DaysDiff.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import org.apache.doris.nereids.trees.expressions.functions.DateDiffMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
@@ -38,7 +38,7 @@ import java.util.List;
  * ScalarFunction 'days_diff'. This class is generated by GenerateFunction.
  */
 public class DaysDiff extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateDiffMonotonic {
+        PropagateNullable, DateDiffMonotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(BigIntType.INSTANCE).args(DateTimeV2Type.WILDCARD, 
DateTimeV2Type.WILDCARD),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DaysSub.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DaysSub.java
index 576563ff325..e81a4649d04 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DaysSub.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DaysSub.java
@@ -22,7 +22,7 @@ import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputeSignatureForDateArithmetic;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -38,7 +38,7 @@ import java.util.List;
  * ScalarFunction 'days_sub'.
  */
 public class DaysSub extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        ComputeSignatureForDateArithmetic, 
PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        ComputeSignatureForDateArithmetic, PropagateNullable, 
DateAddSubMonotonic {
 
     //ATTN: must place Datetime before Date, because for castring from string 
like literal, date and datetime has
     // the same precedence, but we prefer datetime to avoid data loss. for 
string literal which could cast to Date
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Hour.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Hour.java
index 42a31f4a319..685da58c377 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Hour.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Hour.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.Monotonic;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.DateLiteral;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
 import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
@@ -41,7 +41,7 @@ import java.util.List;
  * ScalarFunction 'hour'. This class is generated by GenerateFunction.
  */
 public class Hour extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args, Monotonic {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable, Monotonic {
 
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(TinyIntType.INSTANCE).args(DateTimeV2Type.WILDCARD),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/HoursAdd.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/HoursAdd.java
index d0ab4721ef4..79a82194cf4 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/HoursAdd.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/HoursAdd.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'days_add'.
  */
 public class HoursAdd extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        PropagateNullable, DateAddSubMonotonic {
 
     public static final List<FunctionSignature> SIGNATURES = 
ImmutableList.of(FunctionSignature
             .ret(DateTimeV2Type.WILDCARD).args(DateTimeV2Type.WILDCARD, 
IntegerType.INSTANCE));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/HoursDiff.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/HoursDiff.java
index d242b9dcc00..b4d8f4ce181 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/HoursDiff.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/HoursDiff.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import org.apache.doris.nereids.trees.expressions.functions.DateDiffMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
@@ -38,7 +38,7 @@ import java.util.List;
  * ScalarFunction 'hours_diff'. This class is generated by GenerateFunction.
  */
 public class HoursDiff extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateDiffMonotonic {
+        PropagateNullable, DateDiffMonotonic {
 
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             FunctionSignature.ret(BigIntType.INSTANCE)
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/HoursSub.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/HoursSub.java
index 68687d7a612..7b3089f315c 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/HoursSub.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/HoursSub.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'hours_sub'.
  */
 public class HoursSub extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        PropagateNullable, DateAddSubMonotonic {
 
     public static final List<FunctionSignature> SIGNATURES = 
ImmutableList.of(FunctionSignature
             .ret(DateTimeV2Type.WILDCARD).args(DateTimeV2Type.WILDCARD, 
IntegerType.INSTANCE));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/LastDay.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/LastDay.java
index 8c3ac5ef5c7..649471b7d64 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/LastDay.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/LastDay.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.Monotonic;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'last_day'. This class is generated by GenerateFunction.
  */
 public class LastDay extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args, Monotonic {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable, Monotonic {
 
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(DateV2Type.INSTANCE).args(DateV2Type.INSTANCE),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MicroSecondTimestamp.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MicroSecondTimestamp.java
index cbacae6540b..f8ee7723014 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MicroSecondTimestamp.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MicroSecondTimestamp.java
@@ -20,7 +20,7 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.BigIntType;
@@ -35,7 +35,7 @@ import java.util.List;
  * ScalarFunction 'microsecond_timestamp'.
  */
 public class MicroSecondTimestamp extends ScalarFunction
-        implements BinaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args {
+        implements BinaryExpression, ExplicitlyCastableSignature, 
PropagateNullable {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(BigIntType.INSTANCE).args(DateTimeV2Type.WILDCARD));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MicroSecondsAdd.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MicroSecondsAdd.java
index 3f9d3242591..e0e5e50e076 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MicroSecondsAdd.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MicroSecondsAdd.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.BigIntType;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'MicroSeconds_add'.
  */
 public class MicroSecondsAdd extends ScalarFunction implements 
BinaryExpression, ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        PropagateNullable, DateAddSubMonotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList
             
.of(FunctionSignature.ret(DateTimeV2Type.WILDCARD).args(DateTimeV2Type.WILDCARD,
 BigIntType.INSTANCE));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MicroSecondsDiff.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MicroSecondsDiff.java
index 58e915477b5..434043119a0 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MicroSecondsDiff.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MicroSecondsDiff.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import org.apache.doris.nereids.trees.expressions.functions.DateDiffMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
@@ -37,7 +37,7 @@ import java.util.List;
  * ScalarFunction 'microseconds_diff'. This class is generated by 
GenerateFunction.
  */
 public class MicroSecondsDiff extends ScalarFunction implements 
BinaryExpression, ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateDiffMonotonic {
+        PropagateNullable, DateDiffMonotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             FunctionSignature.ret(BigIntType.INSTANCE)
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MicroSecondsSub.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MicroSecondsSub.java
index 92d9ff4a44e..5b616f04390 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MicroSecondsSub.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MicroSecondsSub.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.BigIntType;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'MicroSeconds_sub'.
  */
 public class MicroSecondsSub extends ScalarFunction implements 
BinaryExpression, ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        PropagateNullable, DateAddSubMonotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList
             
.of(FunctionSignature.ret(DateTimeV2Type.WILDCARD).args(DateTimeV2Type.WILDCARD,
 BigIntType.INSTANCE));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Microsecond.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Microsecond.java
index a783179c685..8e9a6f9e658 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Microsecond.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Microsecond.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.Monotonic;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.DateLiteral;
 import org.apache.doris.nereids.trees.expressions.literal.DateTimeLiteral;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
@@ -39,7 +39,7 @@ import java.util.List;
  * ScalarFunction 'microsecond'. This class is generated by GenerateFunction.
  */
 public class Microsecond extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args, Monotonic {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable, Monotonic {
 
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(IntegerType.INSTANCE).args(DateTimeV2Type.WILDCARD)
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MilliSecondTimestamp.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MilliSecondTimestamp.java
index 75c2fac429a..29f5d8bf9f7 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MilliSecondTimestamp.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MilliSecondTimestamp.java
@@ -20,7 +20,7 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.BigIntType;
@@ -35,7 +35,7 @@ import java.util.List;
  * ScalarFunction 'millisecond_timestamp'.
  */
 public class MilliSecondTimestamp extends ScalarFunction
-        implements BinaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args {
+        implements BinaryExpression, ExplicitlyCastableSignature, 
PropagateNullable {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(BigIntType.INSTANCE).args(DateTimeV2Type.WILDCARD));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MilliSecondsAdd.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MilliSecondsAdd.java
index 7bc0cd62e4c..2a0f248321d 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MilliSecondsAdd.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MilliSecondsAdd.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.BigIntType;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'MilliSeconds_add'.
  */
 public class MilliSecondsAdd extends ScalarFunction implements 
BinaryExpression, ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        PropagateNullable, DateAddSubMonotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList
             
.of(FunctionSignature.ret(DateTimeV2Type.WILDCARD).args(DateTimeV2Type.WILDCARD,
 BigIntType.INSTANCE));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MilliSecondsDiff.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MilliSecondsDiff.java
index 83ab925850e..3f07927f920 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MilliSecondsDiff.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MilliSecondsDiff.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import org.apache.doris.nereids.trees.expressions.functions.DateDiffMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
@@ -37,7 +37,7 @@ import java.util.List;
  * ScalarFunction 'milliseconds_diff'. This class is generated by 
GenerateFunction.
  */
 public class MilliSecondsDiff extends ScalarFunction implements 
BinaryExpression, ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateDiffMonotonic {
+        PropagateNullable, DateDiffMonotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             FunctionSignature.ret(BigIntType.INSTANCE)
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MilliSecondsSub.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MilliSecondsSub.java
index b3541542f27..cdf1053bcbc 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MilliSecondsSub.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MilliSecondsSub.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.BigIntType;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'MilliSeconds_sub'.
  */
 public class MilliSecondsSub extends ScalarFunction implements 
BinaryExpression, ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        PropagateNullable, DateAddSubMonotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList
             
.of(FunctionSignature.ret(DateTimeV2Type.WILDCARD).args(DateTimeV2Type.WILDCARD,
 BigIntType.INSTANCE));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Minute.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Minute.java
index 7be2e2ad20e..3ef8c40d540 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Minute.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Minute.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.Monotonic;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.DateLiteral;
 import org.apache.doris.nereids.trees.expressions.literal.DateTimeLiteral;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
@@ -41,7 +41,7 @@ import java.util.List;
  * ScalarFunction 'minute'. This class is generated by GenerateFunction.
  */
 public class Minute extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args, Monotonic {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable, Monotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(TinyIntType.INSTANCE).args(DateTimeV2Type.WILDCARD),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MinutesAdd.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MinutesAdd.java
index f1fed3e922a..a7d63118378 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MinutesAdd.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MinutesAdd.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.BigIntType;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'minutes_add'.
  */
 public class MinutesAdd extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        PropagateNullable, DateAddSubMonotonic {
 
     public static final List<FunctionSignature> SIGNATURES = 
ImmutableList.of(FunctionSignature
             .ret(DateTimeV2Type.WILDCARD).args(DateTimeV2Type.WILDCARD, 
BigIntType.INSTANCE));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MinutesDiff.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MinutesDiff.java
index c53483c0494..a66b5beb53f 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MinutesDiff.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MinutesDiff.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import org.apache.doris.nereids.trees.expressions.functions.DateDiffMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
@@ -38,7 +38,7 @@ import java.util.List;
  * ScalarFunction 'minutes_diff'. This class is generated by GenerateFunction.
  */
 public class MinutesDiff extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateDiffMonotonic {
+        PropagateNullable, DateDiffMonotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             FunctionSignature.ret(BigIntType.INSTANCE)
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MinutesSub.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MinutesSub.java
index 7cdde5c1f0a..1fcdb32ab9e 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MinutesSub.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MinutesSub.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.BigIntType;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'minutes_sub'.
  */
 public class MinutesSub extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        PropagateNullable, DateAddSubMonotonic {
 
     public static final List<FunctionSignature> SIGNATURES = 
ImmutableList.of(FunctionSignature
             .ret(DateTimeV2Type.WILDCARD).args(DateTimeV2Type.WILDCARD, 
BigIntType.INSTANCE));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Month.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Month.java
index 9abcbbb25ae..e6e9d1bb851 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Month.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Month.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.Monotonic;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.DateLiteral;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
 import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
@@ -39,7 +39,7 @@ import java.util.List;
  * ScalarFunction 'month'. This class is generated by GenerateFunction.
  */
 public class Month extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args, Monotonic {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable, Monotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(TinyIntType.INSTANCE).args(DateV2Type.INSTANCE),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthName.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthName.java
index 36a751fa81f..8bec9d4cf98 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthName.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthName.java
@@ -20,7 +20,7 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'monthname'. This class is generated by GenerateFunction.
  */
 public class MonthName extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(VarcharType.SYSTEM_DEFAULT).args(DateV2Type.INSTANCE),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthsAdd.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthsAdd.java
index 840eda9e539..27c7f684c4d 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthsAdd.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthsAdd.java
@@ -22,7 +22,7 @@ import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputeSignatureForDateArithmetic;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -38,7 +38,7 @@ import java.util.List;
  * ScalarFunction 'months_add'.
  */
 public class MonthsAdd extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        ComputeSignatureForDateArithmetic, 
PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        ComputeSignatureForDateArithmetic, PropagateNullable, 
DateAddSubMonotonic {
 
     //ATTN: must place Datetime before Date, because for castring from string 
like literal, date and datetime has
     // the same precedence, but we prefer datetime to avoid data loss. for 
string literal which could cast to Date
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthsBetween.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthsBetween.java
index d4857d2410a..6c729adf803 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthsBetween.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthsBetween.java
@@ -20,7 +20,7 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
 import org.apache.doris.nereids.trees.expressions.shape.TernaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
@@ -37,7 +37,7 @@ import java.util.List;
  * ScalarFunction 'months_between'.
  */
 public class MonthsBetween extends ScalarFunction
-        implements TernaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args {
+        implements TernaryExpression, ExplicitlyCastableSignature, 
PropagateNullable {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(DoubleType.INSTANCE).args(DateV2Type.INSTANCE, 
DateV2Type.INSTANCE,
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthsDiff.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthsDiff.java
index 92fbdf0e7a9..32735b3931e 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthsDiff.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthsDiff.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import org.apache.doris.nereids.trees.expressions.functions.DateDiffMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
@@ -38,7 +38,7 @@ import java.util.List;
  * ScalarFunction 'months_diff'. This class is generated by GenerateFunction.
  */
 public class MonthsDiff extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateDiffMonotonic {
+        PropagateNullable, DateDiffMonotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(BigIntType.INSTANCE).args(DateV2Type.INSTANCE, 
DateV2Type.INSTANCE),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthsSub.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthsSub.java
index 190e99b28dc..b2848ef76c7 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthsSub.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MonthsSub.java
@@ -22,7 +22,7 @@ import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputeSignatureForDateArithmetic;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -38,7 +38,7 @@ import java.util.List;
  * ScalarFunction 'months_sub'.
  */
 public class MonthsSub extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        ComputeSignatureForDateArithmetic, 
PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        ComputeSignatureForDateArithmetic, PropagateNullable, 
DateAddSubMonotonic {
 
     //ATTN: must place Datetime before Date, because for castring from string 
like literal, date and datetime has
     // the same precedence, but we prefer datetime to avoid data loss. for 
string literal which could cast to Date
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Quarter.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Quarter.java
index 51382f4f39f..c098d068c85 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Quarter.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Quarter.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.Monotonic;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.DateLiteral;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
 import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
@@ -39,7 +39,7 @@ import java.util.List;
  * ScalarFunction 'quarter'. This class is generated by GenerateFunction.
  */
 public class Quarter extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args, Monotonic {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable, Monotonic {
 
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(TinyIntType.INSTANCE).args(DateTimeV2Type.WILDCARD),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/QuartersAdd.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/QuartersAdd.java
index 757b4d8381d..995ce7ac07e 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/QuartersAdd.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/QuartersAdd.java
@@ -22,7 +22,7 @@ import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputeSignatureForDateArithmetic;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -38,7 +38,7 @@ import java.util.List;
  * ScalarFunction 'quarters_add'.
  */
 public class QuartersAdd extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        ComputeSignatureForDateArithmetic, 
PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        ComputeSignatureForDateArithmetic, PropagateNullable, 
DateAddSubMonotonic {
 
     //ATTN: must place Datetime before Date, because for castring from string 
like literal, date and datetime has
     // the same precedence, but we prefer datetime to avoid data loss. for 
string literal which could cast to Date
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/QuartersDiff.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/QuartersDiff.java
index 30a4358882c..d13b49db683 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/QuartersDiff.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/QuartersDiff.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import org.apache.doris.nereids.trees.expressions.functions.DateDiffMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
@@ -38,7 +38,7 @@ import java.util.List;
  * ScalarFunction 'quarters_diff'.
  */
 public class QuartersDiff extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateDiffMonotonic {
+        PropagateNullable, DateDiffMonotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(BigIntType.INSTANCE).args(DateV2Type.INSTANCE, 
DateV2Type.INSTANCE),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/QuartersSub.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/QuartersSub.java
index 8c3943b9d43..249b934a4af 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/QuartersSub.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/QuartersSub.java
@@ -22,7 +22,7 @@ import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputeSignatureForDateArithmetic;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -38,7 +38,7 @@ import java.util.List;
  * ScalarFunction 'quarters_sub'.
  */
 public class QuartersSub extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        ComputeSignatureForDateArithmetic, 
PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        ComputeSignatureForDateArithmetic, PropagateNullable, 
DateAddSubMonotonic {
 
     //ATTN: must place Datetime before Date, because for castring from string 
like literal, date and datetime has
     // the same precedence, but we prefer datetime to avoid data loss. for 
string literal which could cast to Date
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Second.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Second.java
index 9d892911a6f..d572547a0df 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Second.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Second.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.Monotonic;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.DateLiteral;
 import org.apache.doris.nereids.trees.expressions.literal.DateTimeLiteral;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
@@ -41,7 +41,7 @@ import java.util.List;
  * ScalarFunction 'second'. This class is generated by GenerateFunction.
  */
 public class Second extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args, Monotonic {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable, Monotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(TinyIntType.INSTANCE).args(DateTimeV2Type.WILDCARD),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SecondTimestamp.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SecondTimestamp.java
index a2b6dcd6b8f..c9721e2fa5b 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SecondTimestamp.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SecondTimestamp.java
@@ -20,7 +20,7 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.BigIntType;
@@ -35,7 +35,7 @@ import java.util.List;
  * ScalarFunction 'second_timestamp'.
  */
 public class SecondTimestamp extends ScalarFunction
-        implements BinaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args {
+        implements BinaryExpression, ExplicitlyCastableSignature, 
PropagateNullable {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(BigIntType.INSTANCE).args(DateTimeV2Type.WILDCARD));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SecondsAdd.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SecondsAdd.java
index b087a0fdc5d..a91902c42e6 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SecondsAdd.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SecondsAdd.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.BigIntType;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'minutes_add'.
  */
 public class SecondsAdd extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        PropagateNullable, DateAddSubMonotonic {
 
     public static final List<FunctionSignature> SIGNATURES = 
ImmutableList.of(FunctionSignature
             .ret(DateTimeV2Type.WILDCARD).args(DateTimeV2Type.WILDCARD, 
BigIntType.INSTANCE));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SecondsDiff.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SecondsDiff.java
index 920faa6ccfa..aab4fb18054 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SecondsDiff.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SecondsDiff.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import org.apache.doris.nereids.trees.expressions.functions.DateDiffMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
@@ -38,7 +38,7 @@ import java.util.List;
  * ScalarFunction 'seconds_diff'. This class is generated by GenerateFunction.
  */
 public class SecondsDiff extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateDiffMonotonic {
+        PropagateNullable, DateDiffMonotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             FunctionSignature.ret(BigIntType.INSTANCE)
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SecondsSub.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SecondsSub.java
index 4bf5511e566..7791f7271f5 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SecondsSub.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SecondsSub.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.BigIntType;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'Seconds_sub'.
  */
 public class SecondsSub extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        PropagateNullable, DateAddSubMonotonic {
 
     public static final List<FunctionSignature> SIGNATURES = 
ImmutableList.of(FunctionSignature
             .ret(DateTimeV2Type.WILDCARD).args(DateTimeV2Type.WILDCARD, 
BigIntType.INSTANCE));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Time.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Time.java
index 8c18e1b8b0c..a04771e50e7 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Time.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Time.java
@@ -20,7 +20,7 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -35,7 +35,7 @@ import java.util.List;
  * ScalarFunction 'time'. This class is generated by GenerateFunction.
  */
 public class Time extends ScalarFunction
-        implements BinaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args {
+        implements BinaryExpression, ExplicitlyCastableSignature, 
PropagateNullable {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(TimeV2Type.WILDCARD).args(DateTimeV2Type.WILDCARD));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/TimeDiff.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/TimeDiff.java
index 49bc7ebbd29..7602743ec5c 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/TimeDiff.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/TimeDiff.java
@@ -20,7 +20,7 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'timediff'. This class is generated by GenerateFunction.
  */
 public class TimeDiff extends ScalarFunction
-        implements BinaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args {
+        implements BinaryExpression, ExplicitlyCastableSignature, 
PropagateNullable {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             FunctionSignature.ret(TimeV2Type.WILDCARD)
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Timestamp.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Timestamp.java
index 09488f8bbe9..e2d7b5280da 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Timestamp.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Timestamp.java
@@ -20,7 +20,7 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -34,7 +34,7 @@ import java.util.List;
  * ScalarFunction 'timestamp'. This class is generated by GenerateFunction.
  */
 public class Timestamp extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable {
     // When enable_date_conversion is true, we prefer to V2 signature.
     // This preference follows original planner. refer to
     // ScalarType.getDefaultDateType()
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ToDays.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ToDays.java
index 2c476b742d3..9308fd5556c 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ToDays.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ToDays.java
@@ -20,7 +20,7 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateV2Type;
@@ -35,7 +35,7 @@ import java.util.List;
  * ScalarFunction 'to_days'. This class is generated by GenerateFunction.
  */
 public class ToDays extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(IntegerType.INSTANCE).args(DateV2Type.INSTANCE)
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ToMonday.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ToMonday.java
index 85d3d123aa4..101b7b6f46d 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ToMonday.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ToMonday.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.Monotonic;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'to_monday'. This class is generated by GenerateFunction.
  */
 public class ToMonday extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args, Monotonic {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable, Monotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(DateV2Type.INSTANCE).args(DateV2Type.INSTANCE),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Week.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Week.java
index d2f527a9118..5815ad56786 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Week.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Week.java
@@ -20,7 +20,7 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
 import org.apache.doris.nereids.types.DateV2Type;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'week'. This class is generated by GenerateFunction.
  */
 public class Week extends ScalarFunction
-        implements ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args {
+        implements ExplicitlyCastableSignature, PropagateNullable {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(TinyIntType.INSTANCE).args(DateV2Type.INSTANCE),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/WeekOfYear.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/WeekOfYear.java
index dd1ff845986..04a704bf9a6 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/WeekOfYear.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/WeekOfYear.java
@@ -20,7 +20,7 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'weekofyear'. This class is generated by GenerateFunction.
  */
 public class WeekOfYear extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(TinyIntType.INSTANCE).args(DateV2Type.INSTANCE),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Weekday.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Weekday.java
index 2aa1247f3a6..56dc20b97cb 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Weekday.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Weekday.java
@@ -20,7 +20,7 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'weekday'. This class is generated by GenerateFunction.
  */
 public class Weekday extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(TinyIntType.INSTANCE).args(DateV2Type.INSTANCE),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/WeeksAdd.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/WeeksAdd.java
index 3cd0fcaa9b2..35f3f3d4f48 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/WeeksAdd.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/WeeksAdd.java
@@ -22,7 +22,7 @@ import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputeSignatureForDateArithmetic;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -38,7 +38,7 @@ import java.util.List;
  * ScalarFunction 'weeks_add'.
  */
 public class WeeksAdd extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        ComputeSignatureForDateArithmetic, 
PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        ComputeSignatureForDateArithmetic, PropagateNullable, 
DateAddSubMonotonic {
 
     //ATTN: must place Datetime before Date, because for castring from string 
like literal, date and datetime has
     // the same precedence, but we prefer datetime to avoid data loss. for 
string literal which could cast to Date
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/WeeksDiff.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/WeeksDiff.java
index 6ac8a45a8ef..cc884d44911 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/WeeksDiff.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/WeeksDiff.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import org.apache.doris.nereids.trees.expressions.functions.DateDiffMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
@@ -38,7 +38,7 @@ import java.util.List;
  * ScalarFunction 'weeks_diff'. This class is generated by GenerateFunction.
  */
 public class WeeksDiff extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateDiffMonotonic {
+        PropagateNullable, DateDiffMonotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(BigIntType.INSTANCE).args(DateV2Type.INSTANCE, 
DateV2Type.INSTANCE),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/WeeksSub.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/WeeksSub.java
index ee817b5cf75..2a4263b8a53 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/WeeksSub.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/WeeksSub.java
@@ -22,7 +22,7 @@ import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputeSignatureForDateArithmetic;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -38,7 +38,7 @@ import java.util.List;
  * ScalarFunction 'weeks_sub'.
  */
 public class WeeksSub extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        ComputeSignatureForDateArithmetic, 
PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        ComputeSignatureForDateArithmetic, PropagateNullable, 
DateAddSubMonotonic {
 
     //ATTN: must place Datetime before Date, because for castring from string 
like literal, date and datetime has
     // the same precedence, but we prefer datetime to avoid data loss. for 
string literal which could cast to Date
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Year.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Year.java
index 2168e0378c5..a811cc3b8d0 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Year.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Year.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.Monotonic;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -37,7 +37,7 @@ import java.util.List;
  * ScalarFunction 'year'. This class is generated by GenerateFunction.
  */
 public class Year extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args, Monotonic {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable, Monotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(SmallIntType.INSTANCE).args(DateV2Type.INSTANCE),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearOfWeek.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearOfWeek.java
index ce076b3b4b2..300d8f5c83f 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearOfWeek.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearOfWeek.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.Monotonic;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateV2Type;
@@ -36,7 +36,7 @@ import java.util.List;
  * ScalarFunction 'year_of_week'. This class is generated by GenerateFunction.
  */
 public class YearOfWeek extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args, Monotonic {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable, Monotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(SmallIntType.INSTANCE).args(DateV2Type.INSTANCE));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearWeek.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearWeek.java
index 60937af2d32..2c68a745c45 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearWeek.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearWeek.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.Monotonic;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -37,7 +37,7 @@ import java.util.List;
  * ScalarFunction 'yearweek'. This class is generated by GenerateFunction.
  */
 public class YearWeek extends ScalarFunction
-        implements ExplicitlyCastableSignature, 
PropagateNullableOnDateOrTimeLikeV2Args, Monotonic {
+        implements ExplicitlyCastableSignature, PropagateNullable, Monotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(IntegerType.INSTANCE).args(DateV2Type.INSTANCE),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearsAdd.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearsAdd.java
index 2cf79b0a0df..7a6dd1df8e2 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearsAdd.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearsAdd.java
@@ -22,7 +22,7 @@ import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputeSignatureForDateArithmetic;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -38,7 +38,7 @@ import java.util.List;
  * ScalarFunction 'days_add'.
  */
 public class YearsAdd extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        ComputeSignatureForDateArithmetic, 
PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        ComputeSignatureForDateArithmetic, PropagateNullable, 
DateAddSubMonotonic {
 
     //ATTN: must place Datetime before Date, because for castring from string 
like literal, date and datetime has
     // the same precedence, but we prefer datetime to avoid data loss. for 
string literal which could cast to Date
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearsDiff.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearsDiff.java
index e4cbca3a6cf..060daf4fc57 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearsDiff.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearsDiff.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import org.apache.doris.nereids.trees.expressions.functions.DateDiffMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.literal.Literal;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
@@ -38,7 +38,7 @@ import java.util.List;
  * ScalarFunction 'years_diff'. This class is generated by GenerateFunction.
  */
 public class YearsDiff extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        PropagateNullableOnDateOrTimeLikeV2Args, DateDiffMonotonic {
+        PropagateNullable, DateDiffMonotonic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(BigIntType.INSTANCE).args(DateV2Type.INSTANCE, 
DateV2Type.INSTANCE),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearsSub.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearsSub.java
index 0eccac944ea..38c40848c51 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearsSub.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/YearsSub.java
@@ -22,7 +22,7 @@ import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputeSignatureForDateArithmetic;
 import 
org.apache.doris.nereids.trees.expressions.functions.DateAddSubMonotonic;
 import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
-import 
org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateOrTimeLikeV2Args;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DateTimeV2Type;
@@ -38,7 +38,7 @@ import java.util.List;
  * ScalarFunction 'days_add'.
  */
 public class YearsSub extends ScalarFunction implements BinaryExpression, 
ExplicitlyCastableSignature,
-        ComputeSignatureForDateArithmetic, 
PropagateNullableOnDateOrTimeLikeV2Args, DateAddSubMonotonic {
+        ComputeSignatureForDateArithmetic, PropagateNullable, 
DateAddSubMonotonic {
 
     //ATTN: must place Datetime before Date, because for castring from string 
like literal, date and datetime has
     // the same precedence, but we prefer datetime to avoid data loss. for 
string literal which could cast to Date
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DataType.java 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DataType.java
index a6db5f210cc..59bb7f5db86 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DataType.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DataType.java
@@ -600,10 +600,6 @@ public abstract class DataType {
         return isDateType() || isDateTimeType() || isDateV2Type() || 
isDateTimeV2Type();
     }
 
-    public boolean isDateV2LikeType() {
-        return isDateV2Type() || isDateTimeV2Type();
-    }
-
     public boolean isTimeType() {
         return this instanceof TimeV2Type;
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to