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]
