[improvement][agg]Process aggregated results in the vectorized way (#11084)
This commit is contained in:
@ -78,6 +78,28 @@ void ColumnVector<T>::serialize_vec_with_null_map(std::vector<StringRef>& keys,
|
||||
}
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void ColumnVector<T>::deserialize_vec(std::vector<StringRef>& keys, const size_t num_rows) {
|
||||
for (size_t i = 0; i != num_rows; ++i) {
|
||||
keys[i].data = deserialize_and_insert_from_arena(keys[i].data);
|
||||
keys[i].size -= sizeof(T);
|
||||
}
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void ColumnVector<T>::deserialize_vec_with_null_map(std::vector<StringRef>& keys,
|
||||
const size_t num_rows,
|
||||
const uint8_t* null_map) {
|
||||
for (size_t i = 0; i < num_rows; ++i) {
|
||||
if (null_map[i] == 0) {
|
||||
keys[i].data = deserialize_and_insert_from_arena(keys[i].data);
|
||||
keys[i].size -= sizeof(T);
|
||||
} else {
|
||||
insert_default();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void ColumnVector<T>::update_hash_with_value(size_t n, SipHash& hash) const {
|
||||
hash.update(data[n]);
|
||||
|
||||
Reference in New Issue
Block a user