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

yiguolei 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 0c0053d2d27 [Refactor](vec) remove the useless code in column vector 
(#34432)
0c0053d2d27 is described below

commit 0c0053d2d2711f8e002cefa08c662f76231c67b6
Author: HappenLee <[email protected]>
AuthorDate: Mon May 6 22:22:32 2024 +0800

    [Refactor](vec) remove the useless code in column vector (#34432)
---
 be/src/pipeline/exec/repeat_operator.cpp           |  2 +-
 be/src/vec/columns/column_nullable.h               | 14 ++++----
 be/src/vec/columns/column_vector.h                 | 41 ++++------------------
 .../vec/exec/data_gen_functions/vnumbers_tvf.cpp   |  2 +-
 be/src/vec/exec/vrepeat_node.cpp                   |  2 +-
 .../vec/exprs/table_function/vexplode_bitmap.cpp   |  4 +--
 .../vec/exprs/table_function/vexplode_json_array.h |  5 ++-
 .../vec/exprs/table_function/vexplode_numbers.cpp  |  4 +--
 be/src/vec/functions/function_hash.cpp             |  3 +-
 9 files changed, 25 insertions(+), 52 deletions(-)

diff --git a/be/src/pipeline/exec/repeat_operator.cpp 
b/be/src/pipeline/exec/repeat_operator.cpp
index fcf59f36543..48cc427d85b 100644
--- a/be/src/pipeline/exec/repeat_operator.cpp
+++ b/be/src/pipeline/exec/repeat_operator.cpp
@@ -165,7 +165,7 @@ Status RepeatLocalState::add_grouping_id_column(std::size_t 
rows, std::size_t& c
         auto* column_ptr = columns[cur_col].get();
         DCHECK(!p._output_slots[cur_col]->is_nullable());
         auto* col = 
assert_cast<vectorized::ColumnVector<vectorized::Int64>*>(column_ptr);
-        col->insert_raw_integers(val, rows);
+        col->insert_many_vals(val, rows);
         cur_col++;
     }
     return Status::OK();
diff --git a/be/src/vec/columns/column_nullable.h 
b/be/src/vec/columns/column_nullable.h
index 8842cc67ef2..9309136b501 100644
--- a/be/src/vec/columns/column_nullable.h
+++ b/be/src/vec/columns/column_nullable.h
@@ -148,18 +148,18 @@ public:
     void insert_many_from_not_nullable(const IColumn& src, size_t position, 
size_t length);
 
     void insert_many_fix_len_data(const char* pos, size_t num) override {
-        _get_null_map_column().fill(0, num);
+        _get_null_map_column().insert_many_vals(0, num);
         get_nested_column().insert_many_fix_len_data(pos, num);
     }
 
     void insert_many_raw_data(const char* pos, size_t num) override {
-        _get_null_map_column().fill(0, num);
+        _get_null_map_column().insert_many_vals(0, num);
         get_nested_column().insert_many_raw_data(pos, num);
     }
 
     void insert_many_dict_data(const int32_t* data_array, size_t start_index, 
const StringRef* dict,
                                size_t data_num, uint32_t dict_num) override {
-        _get_null_map_column().fill(0, data_num);
+        _get_null_map_column().insert_many_vals(0, data_num);
         get_nested_column().insert_many_dict_data(data_array, start_index, 
dict, data_num,
                                                   dict_num);
     }
@@ -169,13 +169,13 @@ public:
         if (UNLIKELY(num == 0)) {
             return;
         }
-        _get_null_map_column().fill(0, num);
+        _get_null_map_column().insert_many_vals(0, num);
         get_nested_column().insert_many_continuous_binary_data(data, offsets, 
num);
     }
 
     void insert_many_binary_data(char* data_array, uint32_t* len_array,
                                  uint32_t* start_offset_array, size_t num) 
override {
-        _get_null_map_column().fill(0, num);
+        _get_null_map_column().insert_many_vals(0, num);
         get_nested_column().insert_many_binary_data(data_array, len_array, 
start_offset_array, num);
     }
 
@@ -193,13 +193,13 @@ public:
 
     void insert_not_null_elements(size_t num) {
         get_nested_column().insert_many_defaults(num);
-        _get_null_map_column().fill(0, num);
+        _get_null_map_column().insert_many_vals(0, num);
         _has_null = false;
     }
 
     void insert_null_elements(int num) {
         get_nested_column().insert_many_defaults(num);
-        _get_null_map_column().fill(1, num);
+        _get_null_map_column().insert_many_vals(1, num);
         _has_null = true;
     }
 
diff --git a/be/src/vec/columns/column_vector.h 
b/be/src/vec/columns/column_vector.h
index ff1aed42071..a43e17f88bf 100644
--- a/be/src/vec/columns/column_vector.h
+++ b/be/src/vec/columns/column_vector.h
@@ -151,15 +151,6 @@ private:
     /// Sugar constructor.
     ColumnVector(std::initializer_list<T> il) : data {il} {}
 
-    void insert_many_default_type(const char* data_ptr, size_t num) {
-        auto old_size = data.size();
-        data.resize(old_size + num);
-        T* input_val_ptr = (T*)data_ptr;
-        for (int i = 0; i < num; i++) {
-            data[old_size + i] = input_val_ptr[i];
-        }
-    }
-
 public:
     bool is_numeric() const override { return IsNumber<T>; }
 
@@ -177,14 +168,7 @@ public:
         data.push_back(unaligned_load<T>(pos));
     }
 
-    // note(wb) type of data_ptr element should be same with current 
column_vector's T
-    void insert_many_in_copy_way(const char* data_ptr, size_t num) {
-        auto old_size = data.size();
-        data.resize(old_size + num);
-        memcpy(data.data() + old_size, data_ptr, num * sizeof(T));
-    }
-
-    void insert_raw_integers(T val, size_t n) {
+    void insert_many_vals(T val, size_t n) {
         auto old_size = data.size();
         data.resize(old_size + n);
         std::fill(data.data() + old_size, data.data() + old_size + n, val);
@@ -238,12 +222,14 @@ public:
         } else if (IColumn::is_date_time) {
             insert_datetime_column(data_ptr, num);
         } else {
-            insert_many_in_copy_way(data_ptr, num);
+            insert_many_raw_data(data_ptr, num);
         }
     }
 
-    void insert_many_raw_data(const char* pos, size_t num) override {
-        insert_many_in_copy_way(pos, num);
+    void insert_many_raw_data(const char* data_ptr, size_t num) override {
+        auto old_size = data.size();
+        data.resize(old_size + num);
+        memcpy(data.data() + old_size, data_ptr, num * sizeof(T));
     }
 
     void insert_default() override { data.push_back(T()); }
@@ -296,7 +282,7 @@ public:
         } else {
             if (this->is_date_type() || this->is_datetime_type()) {
                 char buf[64];
-                const VecDateTimeValue& date_val = (const 
VecDateTimeValue&)data[idx];
+                const auto& date_val = (const VecDateTimeValue&)data[idx];
                 auto len = date_val.to_buffer(buf);
                 hash = HashUtil::zlib_crc_hash(buf, len, hash);
             } else {
@@ -382,19 +368,6 @@ public:
     void insert_indices_from(const IColumn& src, const uint32_t* indices_begin,
                              const uint32_t* indices_end) override;
 
-    void fill(const value_type& element, size_t num) {
-        auto old_size = data.size();
-        auto new_size = old_size + num;
-        data.resize(new_size);
-        if constexpr (sizeof(value_type) == 1) {
-            memset(&data[old_size], element, sizeof(value_type) * num);
-        } else {
-            for (size_t i = 0; i < num; ++i) {
-                data[old_size + i] = element;
-            }
-        }
-    }
-
     ColumnPtr filter(const IColumn::Filter& filt, ssize_t result_size_hint) 
const override;
     size_t filter(const IColumn::Filter& filter) override;
 
diff --git a/be/src/vec/exec/data_gen_functions/vnumbers_tvf.cpp 
b/be/src/vec/exec/data_gen_functions/vnumbers_tvf.cpp
index 4422ff0338c..d33d02aa953 100644
--- a/be/src/vec/exec/data_gen_functions/vnumbers_tvf.cpp
+++ b/be/src/vec/exec/data_gen_functions/vnumbers_tvf.cpp
@@ -62,7 +62,7 @@ Status VNumbersTVF::get_next(RuntimeState* state, 
vectorized::Block* block, bool
         auto* column_res = assert_cast<ColumnInt64*>(columns[i].get()); 
//BIGINT
         int64_t end_value = std::min((int64_t)(_next_number + batch_size), 
_total_numbers);
         if (_use_const) {
-            column_res->insert_raw_integers(_const_value, end_value - 
_next_number);
+            column_res->insert_many_vals(_const_value, end_value - 
_next_number);
         } else {
             column_res->insert_range_of_integer(_next_number, end_value);
         }
diff --git a/be/src/vec/exec/vrepeat_node.cpp b/be/src/vec/exec/vrepeat_node.cpp
index 1a919d2aa9e..8265600a924 100644
--- a/be/src/vec/exec/vrepeat_node.cpp
+++ b/be/src/vec/exec/vrepeat_node.cpp
@@ -172,7 +172,7 @@ Status VRepeatNode::add_grouping_id_column(std::size_t 
rows, std::size_t& cur_co
         DCHECK(!_output_slots[cur_col]->is_nullable());
 
         auto* col = assert_cast<ColumnVector<Int64>*>(column_ptr);
-        col->insert_raw_integers(val, rows);
+        col->insert_many_vals(val, rows);
         cur_col++;
     }
     return Status::OK();
diff --git a/be/src/vec/exprs/table_function/vexplode_bitmap.cpp 
b/be/src/vec/exprs/table_function/vexplode_bitmap.cpp
index 7973d9e1cba..e6e4c843075 100644
--- a/be/src/vec/exprs/table_function/vexplode_bitmap.cpp
+++ b/be/src/vec/exprs/table_function/vexplode_bitmap.cpp
@@ -78,12 +78,12 @@ void 
VExplodeBitmapTableFunction::get_same_many_values(MutableColumnPtr& column,
         if (_is_nullable) {
             assert_cast<ColumnInt64*>(
                     
assert_cast<ColumnNullable*>(column.get())->get_nested_column_ptr().get())
-                    ->fill(**_cur_iter, length);
+                    ->insert_many_vals(**_cur_iter, length);
             assert_cast<ColumnUInt8*>(
                     
assert_cast<ColumnNullable*>(column.get())->get_null_map_column_ptr().get())
                     ->insert_many_defaults(length);
         } else {
-            assert_cast<ColumnInt64*>(column.get())->fill(**_cur_iter, length);
+            
assert_cast<ColumnInt64*>(column.get())->insert_many_vals(**_cur_iter, length);
         }
     }
 }
diff --git a/be/src/vec/exprs/table_function/vexplode_json_array.h 
b/be/src/vec/exprs/table_function/vexplode_json_array.h
index a47956ff177..968fa5e91a4 100644
--- a/be/src/vec/exprs/table_function/vexplode_json_array.h
+++ b/be/src/vec/exprs/table_function/vexplode_json_array.h
@@ -100,8 +100,7 @@ struct ParsedDataInt : public ParsedData<int64_t> {
 
     void insert_many_same_value_from_parsed_data(MutableColumnPtr& column, 
int64_t cur_offset,
                                                  int length) override {
-        assert_cast<ColumnInt64*>(column.get())
-                ->insert_raw_integers(_backup_data[cur_offset], length);
+        
assert_cast<ColumnInt64*>(column.get())->insert_many_vals(_backup_data[cur_offset],
 length);
     }
 };
 
@@ -132,7 +131,7 @@ struct ParsedDataDouble : public ParsedData<double> {
     void insert_many_same_value_from_parsed_data(MutableColumnPtr& column, 
int64_t cur_offset,
                                                  int length) override {
         assert_cast<ColumnFloat64*>(column.get())
-                ->insert_raw_integers(_backup_data[cur_offset], length);
+                ->insert_many_vals(_backup_data[cur_offset], length);
     }
 };
 
diff --git a/be/src/vec/exprs/table_function/vexplode_numbers.cpp 
b/be/src/vec/exprs/table_function/vexplode_numbers.cpp
index 42f8aa9360e..dbfb8d3edc1 100644
--- a/be/src/vec/exprs/table_function/vexplode_numbers.cpp
+++ b/be/src/vec/exprs/table_function/vexplode_numbers.cpp
@@ -99,12 +99,12 @@ void 
VExplodeNumbersTableFunction::get_same_many_values(MutableColumnPtr& column
         if (_is_nullable) {
             assert_cast<ColumnInt32*>(
                     
assert_cast<ColumnNullable*>(column.get())->get_nested_column_ptr().get())
-                    ->insert_raw_integers(_cur_offset, length);
+                    ->insert_many_vals(_cur_offset, length);
             assert_cast<ColumnUInt8*>(
                     
assert_cast<ColumnNullable*>(column.get())->get_null_map_column_ptr().get())
                     ->insert_many_defaults(length);
         } else {
-            
assert_cast<ColumnInt32*>(column.get())->insert_raw_integers(_cur_offset, 
length);
+            
assert_cast<ColumnInt32*>(column.get())->insert_many_vals(_cur_offset, length);
         }
     }
 }
diff --git a/be/src/vec/functions/function_hash.cpp 
b/be/src/vec/functions/function_hash.cpp
index 195dff94836..972d2eb0b9d 100644
--- a/be/src/vec/functions/function_hash.cpp
+++ b/be/src/vec/functions/function_hash.cpp
@@ -67,7 +67,8 @@ struct MurmurHash3Impl {
         auto& to_column = assert_cast<ColumnVector<ReturnType>&>(col_to);
         if constexpr (first) {
             if constexpr (std::is_same_v<ReturnType, Int32>) {
-                to_column.fill(static_cast<Int32>(HashUtil::MURMUR3_32_SEED), 
input_rows_count);
+                
to_column.insert_many_vals(static_cast<Int32>(HashUtil::MURMUR3_32_SEED),
+                                           input_rows_count);
             } else {
                 to_column.insert_many_defaults(input_rows_count);
             }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to