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