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

morningman pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 92df75c8c8385d7329f3b4794ec543152febd8eb
Author: Pxl <[email protected]>
AuthorDate: Mon Jan 30 18:01:26 2023 +0800

    [Bug](function) fix now(int) use_default_implementation_for_nulls && fix 
dround signature (#16238)
---
 be/src/vec/functions/function_date_or_datetime_computation.cpp | 2 +-
 be/src/vec/functions/function_date_or_datetime_computation.h   | 8 ++++++--
 be/src/vec/functions/math.cpp                                  | 1 +
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/be/src/vec/functions/function_date_or_datetime_computation.cpp 
b/be/src/vec/functions/function_date_or_datetime_computation.cpp
index abaef68c4c..8df40c1fc3 100644
--- a/be/src/vec/functions/function_date_or_datetime_computation.cpp
+++ b/be/src/vec/functions/function_date_or_datetime_computation.cpp
@@ -89,7 +89,7 @@ using FunctionLocalTimestamp =
         
FunctionCurrentDateOrDateTime<CurrentDateTimeImpl<LocalTimestampFunctionName, 
false>>;
 
 using FunctionNowWithPrecision =
-        FunctionCurrentDateOrDateTime<CurrentDateTimeImpl<NowFunctionName, 
true>>;
+        FunctionCurrentDateOrDateTime<CurrentDateTimeImpl<NowFunctionName, 
true>, false>;
 using FunctionCurrentTimestampWithPrecision =
         
FunctionCurrentDateOrDateTime<CurrentDateTimeImpl<CurrentTimestampFunctionName, 
true>>;
 using FunctionLocalTimeWithPrecision =
diff --git a/be/src/vec/functions/function_date_or_datetime_computation.h 
b/be/src/vec/functions/function_date_or_datetime_computation.h
index eba6d17fc7..a4d51c972c 100644
--- a/be/src/vec/functions/function_date_or_datetime_computation.h
+++ b/be/src/vec/functions/function_date_or_datetime_computation.h
@@ -583,7 +583,7 @@ public:
     }
 };
 
-template <typename FunctionImpl>
+template <typename FunctionImpl, bool DefaultNullable = true>
 class FunctionCurrentDateOrDateTime : public IFunction {
 public:
     static constexpr bool has_variadic_argument =
@@ -596,6 +596,8 @@ public:
 
     size_t get_number_of_arguments() const override { return 0; }
 
+    bool use_default_implementation_for_nulls() const override { return 
DefaultNullable; }
+
     DataTypePtr get_return_type_impl(const ColumnsWithTypeAndName& arguments) 
const override {
         return std::make_shared<typename FunctionImpl::ReturnType>();
     }
@@ -603,7 +605,9 @@ public:
     bool is_variadic() const override { return true; }
 
     DataTypes get_variadic_argument_types_impl() const override {
-        if constexpr (has_variadic_argument) return 
FunctionImpl::get_variadic_argument_types();
+        if constexpr (has_variadic_argument) {
+            return FunctionImpl::get_variadic_argument_types();
+        }
         return {};
     }
 
diff --git a/be/src/vec/functions/math.cpp b/be/src/vec/functions/math.cpp
index 67552b0f18..504684ccf7 100644
--- a/be/src/vec/functions/math.cpp
+++ b/be/src/vec/functions/math.cpp
@@ -425,6 +425,7 @@ void register_function_math(SimpleFunctionFactory& factory) 
{
     REGISTER_ROUND_FUNCTIONS(DecimalRoundTwoImpl)
     REGISTER_ROUND_FUNCTIONS(DoubleRoundOneImpl)
     REGISTER_ROUND_FUNCTIONS(DoubleRoundTwoImpl)
+    factory.register_alias("round", "dround");
     factory.register_function<FunctionAcos>();
     factory.register_function<FunctionAsin>();
     factory.register_function<FunctionAtan>();


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

Reply via email to