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]