[Improvement](join) optimize join probing phase (#13357)

This commit is contained in:
Gabriel
2022-10-18 12:37:17 +08:00
committed by GitHub
parent 18f2db6064
commit cd3450bd9d
18 changed files with 722 additions and 575 deletions

View File

@ -478,15 +478,17 @@ ColumnPtr ColumnVector<T>::replicate(const IColumn::Offsets& offsets) const {
}
template <typename T>
void ColumnVector<T>::replicate(const uint32_t* counts, size_t target_size, IColumn& column) const {
size_t size = data.size();
void ColumnVector<T>::replicate(const uint32_t* counts, size_t target_size, IColumn& column,
size_t begin, int count_sz) const {
size_t size = count_sz < 0 ? data.size() : count_sz;
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) {
size_t end = begin + size;
for (size_t i = begin; i < end; ++i) {
res_data.add_num_element_without_reserve(data[i], counts[i]);
}
}