#include #include namespace DB { namespace { struct LogName { static constexpr auto name = "log"; }; #if USE_FASTOPS struct Impl { static constexpr auto name = LogName::name; static constexpr auto rows_per_iteration = 0; static constexpr bool always_returns_float64 = false; template static void execute(const T * src, size_t size, T * dst) { NFastOps::Log(src, size, dst); } }; using FunctionLog = FunctionMathUnary; #else using FunctionLog = FunctionMathUnary>; #endif } REGISTER_FUNCTION(Log) { factory.registerFunction({}, FunctionFactory::CaseInsensitive); factory.registerAlias("ln", "log", FunctionFactory::CaseInsensitive); } }