[improvement](vec)(Join) Mem reuse to speed up join operator (#7905)

1. Reuse the mem of output block in vec join node
2. Add the function `replicate` in column
This commit is contained in:
HappenLee
2022-01-31 22:14:12 +08:00
committed by GitHub
parent 68c4bb34e6
commit 358bd79fb1
16 changed files with 129 additions and 24 deletions

View File

@ -324,6 +324,20 @@ ColumnPtr ColumnVector<T>::replicate(const IColumn::Offsets& offsets) const {
return res;
}
template <typename T>
void ColumnVector<T>::replicate(const uint32_t* counts, size_t target_size, IColumn& column) const {
size_t size = data.size();
if (size == 0) return;
auto& res = reinterpret_cast<ColumnVector<T>&>(column);
typename Self::Container& res_data = res.get_data();
res_data.reserve(target_size);
for (size_t i = 0; i < size; ++i) {
res_data.add_num_element_without_reserve(data[i], counts[i]);
}
}
template <typename T>
void ColumnVector<T>::get_extremes(Field& min, Field& max) const {
size_t size = data.size();