From 322dc2a1049bf7ec4b649919843b417eb6cfb651 Mon Sep 17 00:00:00 2001 From: Pxl Date: Mon, 30 Jan 2023 18:01:26 +0800 Subject: [PATCH] [Bug](function) fix now(int) use_default_implementation_for_nulls && fix dround signature (#16238) --- .../functions/function_date_or_datetime_computation.cpp | 2 +- .../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>; using FunctionNowWithPrecision = - FunctionCurrentDateOrDateTime>; + FunctionCurrentDateOrDateTime, false>; using FunctionCurrentTimestampWithPrecision = FunctionCurrentDateOrDateTime>; 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 +template 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(); } @@ -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 9efcd45d07..e4294323da 100644 --- a/be/src/vec/functions/math.cpp +++ b/be/src/vec/functions/math.cpp @@ -431,6 +431,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(); factory.register_function(); factory.register_function();