You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2023/01/31 15:39:14 UTC

[doris] 16/20: [Bug](function) fix now(int) use_default_implementation_for_nulls && fix dround signature (#16238)

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 <px...@qq.com>
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: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org