diff --git a/be/src/vec/functions/array/function_array_index.cpp b/be/src/vec/functions/array/function_array_index.cpp index dec7236963..c153d6843f 100644 --- a/be/src/vec/functions/array/function_array_index.cpp +++ b/be/src/vec/functions/array/function_array_index.cpp @@ -21,20 +21,10 @@ namespace doris::vectorized { -struct NameArrayContains { - static constexpr auto name = "array_contains"; -}; -struct NameArrayPosition { - static constexpr auto name = "array_position"; -}; -struct NameCountEqual { - static constexpr auto name = "countequal"; -}; - void register_function_array_index(SimpleFunctionFactory& factory) { - factory.register_function>(); - factory.register_function>(); - factory.register_function>(); + factory.register_function>(); + factory.register_function>(); + factory.register_function>(); } } // namespace doris::vectorized diff --git a/be/src/vec/functions/array/function_array_index.h b/be/src/vec/functions/array/function_array_index.h index 8e4d73687a..6da1381d9a 100644 --- a/be/src/vec/functions/array/function_array_index.h +++ b/be/src/vec/functions/array/function_array_index.h @@ -51,28 +51,31 @@ namespace doris::vectorized { struct ArrayContainsAction { using ResultType = UInt8; + static constexpr auto name = "array_contains"; static constexpr const bool resume_execution = false; static constexpr void apply(ResultType& current, size_t) noexcept { current = 1; } }; struct ArrayPositionAction { using ResultType = Int64; + static constexpr auto name = "array_position"; static constexpr const bool resume_execution = false; static constexpr void apply(ResultType& current, size_t j) noexcept { current = j + 1; } }; struct ArrayCountEqual { using ResultType = Int64; + static constexpr auto name = "countequal"; static constexpr const bool resume_execution = true; static constexpr void apply(ResultType& current, size_t j) noexcept { ++current; } }; -template +template class FunctionArrayIndex : public IFunction { public: using ResultType = typename ConcreteAction::ResultType; - static constexpr auto name = Name::name; + static constexpr auto name = ConcreteAction::name; static FunctionPtr create() { return std::make_shared(); } /// Get function name. diff --git a/be/src/vec/functions/function_map.cpp b/be/src/vec/functions/function_map.cpp index 5206b4f078..3f847b4190 100644 --- a/be/src/vec/functions/function_map.cpp +++ b/be/src/vec/functions/function_map.cpp @@ -295,7 +295,7 @@ public: } private: - FunctionArrayIndex> array_contains; + FunctionArrayIndex array_contains; }; template