Skip to content

Commit

Permalink
[Bug](function) fix now(int) use_default_implementation_for_nulls && …
Browse files Browse the repository at this point in the history
…fix dround signature (#16238)
  • Loading branch information
BiteTheDDDDt authored Jan 30, 2023
1 parent c59a8cb commit 322dc2a
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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 =
Expand Down
8 changes: 6 additions & 2 deletions be/src/vec/functions/function_date_or_datetime_computation.h
Original file line number Diff line number Diff line change
Expand Up @@ -583,7 +583,7 @@ class FunctionDateOrDateTimeComputation : public IFunction {
}
};

template <typename FunctionImpl>
template <typename FunctionImpl, bool DefaultNullable = true>
class FunctionCurrentDateOrDateTime : public IFunction {
public:
static constexpr bool has_variadic_argument =
Expand All @@ -596,14 +596,18 @@ class FunctionCurrentDateOrDateTime : public IFunction {

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>();
}

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 {};
}

Expand Down
1 change: 1 addition & 0 deletions be/src/vec/functions/math.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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>();
Expand Down

0 comments on commit 322dc2a

Please sign in to comment.