[Improvement](join) optimization for build_side_output_column (#30826)

optimization for build_side_output_column
This commit is contained in:
Pxl
2024-02-19 14:08:09 +08:00
committed by yiguolei
parent ed30b658bb
commit bb4575a392
29 changed files with 82 additions and 268 deletions

View File

@ -458,26 +458,6 @@ ColumnPtr ColumnMap::replicate(const Offsets& offsets) const {
return res;
}
void ColumnMap::replicate(const uint32_t* indices, size_t target_size, IColumn& column) const {
auto& res = reinterpret_cast<ColumnMap&>(column);
auto keys_array =
ColumnArray::create(keys_column->assume_mutable(), offsets_column->assume_mutable());
auto result_array = ColumnArray::create(res.keys_column->assume_mutable(),
res.offsets_column->assume_mutable());
keys_array->replicate(indices, target_size, result_array->assume_mutable_ref());
result_array = ColumnArray::create(res.values_column->assume_mutable(),
res.offsets_column->clone_empty());
auto values_array =
ColumnArray::create(values_column->assume_mutable(), offsets_column->assume_mutable());
/// FIXME: To reuse the replicate of ColumnArray, the offsets column was replicated twice
values_array->replicate(indices, target_size, result_array->assume_mutable_ref());
}
MutableColumnPtr ColumnMap::get_shrinked_column() {
MutableColumns new_columns(2);