Skip to content

Commit

Permalink
sort
Browse files Browse the repository at this point in the history
  • Loading branch information
eldenmoon committed Feb 28, 2025
1 parent 41de760 commit f43564c
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions be/src/olap/rowset/segment_v2/hierarchical_data_reader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -497,6 +497,11 @@ Status SparseColumnMergeReader::init(const ColumnIteratorOptions& opts) {
const auto& path = entry->path.get_path();
_sorted_src_subcolumn_for_sparse.emplace_back(StringRef(path.data(), path.size()), entry);
}

// sort src subcolumns by path
std::sort(
_sorted_src_subcolumn_for_sparse.begin(), _sorted_src_subcolumn_for_sparse.end(),
[](const auto& lhsItem, const auto& rhsItem) { return lhsItem.first < rhsItem.first; });
return Status::OK();
}

Expand Down Expand Up @@ -536,11 +541,10 @@ void SparseColumnMergeReader::_process_data_without_sparse_column(vectorized::Mu
auto& sparse_column_offsets = map_column.get_offsets();
for (size_t i = 0; i != num_rows; ++i) {
// Paths in sorted_src_subcolumn_for_sparse_column are already sorted.
for (const auto& entry : _src_subcolumns_for_sparse) {
const auto& path = entry->path.get_path();
_serialize_nullable_column_to_sparse(entry.get(), sparse_column_keys,
sparse_column_values,
StringRef(path.data(), path.size()), i);
for (const auto& entry : _sorted_src_subcolumn_for_sparse) {
const auto& path = entry.first;
_serialize_nullable_column_to_sparse(entry.second.get(), sparse_column_keys,
sparse_column_values, path, i);
}
sparse_column_offsets.push_back(sparse_column_keys.size());
}
Expand Down

0 comments on commit f43564c

Please sign in to comment.