This is an automated email from the ASF dual-hosted git repository.

xuyang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 0b51e6d8e1 [refractor](FunctionArrayIndex) make the codes more simple
0b51e6d8e1 is described below

commit 0b51e6d8e1759f27c442c15da22b77b7c982aca0
Author: camby <zhuxiaol...@baidu.com>
AuthorDate: Tue Aug 22 17:48:59 2023 +0800

    [refractor](FunctionArrayIndex) make the codes more simple
---
 be/src/vec/functions/array/function_array_index.cpp | 16 +++-------------
 be/src/vec/functions/array/function_array_index.h   |  7 +++++--
 be/src/vec/functions/function_map.cpp               |  2 +-
 3 files changed, 9 insertions(+), 16 deletions(-)

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<FunctionArrayIndex<ArrayContainsAction, 
NameArrayContains>>();
-    factory.register_function<FunctionArrayIndex<ArrayPositionAction, 
NameArrayPosition>>();
-    factory.register_function<FunctionArrayIndex<ArrayCountEqual, 
NameCountEqual>>();
+    factory.register_function<FunctionArrayIndex<ArrayContainsAction>>();
+    factory.register_function<FunctionArrayIndex<ArrayPositionAction>>();
+    factory.register_function<FunctionArrayIndex<ArrayCountEqual>>();
 }
 
 } // 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 <typename ConcreteAction, typename Name>
+template <typename ConcreteAction>
 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<FunctionArrayIndex>(); }
 
     /// 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<ArrayContainsAction, FunctionMapContains<is_key>> 
array_contains;
+    FunctionArrayIndex<ArrayContainsAction> array_contains;
 };
 
 template <bool is_key>


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to