[Bug](function) fix now(int) use_default_implementation_for_nulls && fix dround signature (#16238)
This commit is contained in:
@ -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 =
|
||||
|
||||
@ -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 {};
|
||||
}
|
||||
|
||||
|
||||
@ -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<FunctionAcos>();
|
||||
factory.register_function<FunctionAsin>();
|
||||
factory.register_function<FunctionAtan>();
|
||||
|
||||
Reference in New Issue
Block a user