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

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


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new 9f76dde717d [opt](Nereids) remove Nondeterministic trait from date 
related functions (#26444) (#26568)
9f76dde717d is described below

commit 9f76dde717da52c4d88b5c7ca588080dad44b077
Author: morrySnow <101034200+morrys...@users.noreply.github.com>
AuthorDate: Wed Nov 8 15:31:28 2023 +0800

    [opt](Nereids) remove Nondeterministic trait from date related functions 
(#26444) (#26568)
---
 .../apache/doris/analysis/ExpressionFunctions.java |  7 +------
 .../expressions/functions/Nondeterministic.java    |  8 --------
 .../functions/executable/DateTimeAcquire.java      | 23 +++++++++++-----------
 .../trees/expressions/functions/scalar/Random.java |  5 +++++
 .../functions/scalar/UnixTimestamp.java            | 10 +---------
 .../trees/expressions/functions/scalar/Uuid.java   |  5 +++++
 .../expressions/functions/scalar/UuidNumeric.java  |  5 +++++
 .../nereids_p0/datatype/test_date_acquire.groovy   |  2 +-
 8 files changed, 30 insertions(+), 35 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ExpressionFunctions.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ExpressionFunctions.java
index a45954a9b93..ea63a8ffabe 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ExpressionFunctions.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ExpressionFunctions.java
@@ -52,13 +52,8 @@ public enum ExpressionFunctions {
     private static final Logger LOG = 
LogManager.getLogger(ExpressionFunctions.class);
     private ImmutableMultimap<String, FEFunctionInvoker> functions;
     public static final Set<String> unfixedFn = ImmutableSet.of(
-            "now",
-            "current_time",
-            "current_date",
-            "utc_timestamp",
             "uuid",
-            "random",
-            "unix_timestamp"
+            "random"
     );
 
     private ExpressionFunctions() {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/Nondeterministic.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/Nondeterministic.java
index 88955c0c4da..56aa5ebb3b9 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/Nondeterministic.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/Nondeterministic.java
@@ -17,8 +17,6 @@
 
 package org.apache.doris.nereids.trees.expressions.functions;
 
-import org.apache.doris.qe.ConnectContext;
-
 /**
  * Nondeterministic functions.
  *
@@ -26,10 +24,4 @@ import org.apache.doris.qe.ConnectContext;
  *
  */
 public interface Nondeterministic extends ExpressionTrait {
-    @Override
-    default boolean foldable() {
-        return ConnectContext.get() == null
-                || ConnectContext.get().getSessionVariable() == null
-                || 
ConnectContext.get().getSessionVariable().isEnableFoldNondeterministicFn();
-    }
 }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/executable/DateTimeAcquire.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/executable/DateTimeAcquire.java
index e5dca783fd4..17403bd83c0 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/executable/DateTimeAcquire.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/executable/DateTimeAcquire.java
@@ -86,18 +86,19 @@ public class DateTimeAcquire {
         return 
DateLiteral.fromJavaDateType(LocalDateTime.now(DateUtils.getTimeZone()));
     }
 
-    /**
-     * date acquire function: current_time
-     */
-    @ExecFunction(name = "curtime", argTypes = {}, returnType = "DATETIME")
-    public static Expression curTime() {
-        return 
DateTimeLiteral.fromJavaDateType(LocalDateTime.now(DateUtils.getTimeZone()));
-    }
+    // comment these function temporally until we support TimeLiteral
+    // /**
+    //  * date acquire function: current_time
+    //  */
+    // @ExecFunction(name = "curtime", argTypes = {}, returnType = "TIME")
+    // public static Expression curTime() {
+    //     return 
DateTimeLiteral.fromJavaDateType(LocalDateTime.now(DateUtils.getTimeZone()));
+    // }
 
-    @ExecFunction(name = "current_time", argTypes = {}, returnType = 
"DATETIME")
-    public static Expression currentTime() {
-        return 
DateTimeLiteral.fromJavaDateType(LocalDateTime.now(DateUtils.getTimeZone()));
-    }
+    // @ExecFunction(name = "current_time", argTypes = {}, returnType = "TIME")
+    // public static Expression currentTime() {
+    //     return 
DateTimeLiteral.fromJavaDateType(LocalDateTime.now(DateUtils.getTimeZone()));
+    // }
 
     /**
      * date transformation function: unix_timestamp
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Random.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Random.java
index 1ee251c305d..29530adfa0a 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Random.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Random.java
@@ -70,6 +70,11 @@ public class Random extends ScalarFunction
         }
     }
 
+    @Override
+    public boolean foldable() {
+        return false;
+    }
+
     /**
      * withChildren.
      */
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/UnixTimestamp.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/UnixTimestamp.java
index 20958dd45af..bdeabb74c89 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/UnixTimestamp.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/UnixTimestamp.java
@@ -40,7 +40,7 @@ import java.util.List;
  * ScalarFunction 'unix_timestamp'. This class is generated by 
GenerateFunction.
  */
 public class UnixTimestamp extends ScalarFunction
-        implements Nondeterministic, ExplicitlyCastableSignature, 
PropagateNullableOnDateLikeV2Args {
+        implements ExplicitlyCastableSignature, 
PropagateNullableOnDateLikeV2Args, Nondeterministic {
 
     private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             FunctionSignature.ret(IntegerType.INSTANCE).args(),
@@ -101,14 +101,6 @@ public class UnixTimestamp extends ScalarFunction
         }
     }
 
-    @Override
-    public boolean foldable() {
-        if (children.size() != 0) {
-            return true;
-        }
-        return Nondeterministic.super.foldable();
-    }
-
     @Override
     public List<FunctionSignature> getSignatures() {
         return SIGNATURES;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Uuid.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Uuid.java
index 2f0f162b5fc..89492907832 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Uuid.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Uuid.java
@@ -46,6 +46,11 @@ public class Uuid extends ScalarFunction
         super("uuid");
     }
 
+    @Override
+    public boolean foldable() {
+        return false;
+    }
+
     @Override
     public <R, C> R accept(ExpressionVisitor<R, C> visitor, C context) {
         return visitor.visitUuid(this, context);
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/UuidNumeric.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/UuidNumeric.java
index 3e2267b4370..bbbd2e81a99 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/UuidNumeric.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/UuidNumeric.java
@@ -46,6 +46,11 @@ public class UuidNumeric extends ScalarFunction
         super("uuid_numeric");
     }
 
+    @Override
+    public boolean foldable() {
+        return false;
+    }
+
     @Override
     public <R, C> R accept(ExpressionVisitor<R, C> visitor, C context) {
         return visitor.visitUuidNumeric(this, context);
diff --git 
a/regression-test/suites/nereids_p0/datatype/test_date_acquire.groovy 
b/regression-test/suites/nereids_p0/datatype/test_date_acquire.groovy
index b6afad759d3..981b28eac40 100644
--- a/regression-test/suites/nereids_p0/datatype/test_date_acquire.groovy
+++ b/regression-test/suites/nereids_p0/datatype/test_date_acquire.groovy
@@ -20,7 +20,7 @@ suite("test_date_acquire") {
     sql 'set enable_fallback_to_original_planner=false'
     sql 'set enable_fold_nondeterministic_fn=true'
 
-    String res = sql 'explain select now(), now(3), curdate(), current_date(), 
curtime(), current_time(), current_timestamp(), current_timestamp(3)'
+    String res = sql 'explain select now(), now(3), curdate(), current_date(), 
current_timestamp(), current_timestamp(3)'
     res = res.split('VUNION')[1]
     assertFalse(res.contains("()") || res.contains("(3)"))
 


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

Reply via email to