This is an automated email from the ASF dual-hosted git repository. eldenmoon pushed a commit to branch variant-sparse in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/variant-sparse by this push: new 01ad180efe7 fix 2 (#45538) 01ad180efe7 is described below commit 01ad180efe7edcf235d23ff705c3aa10a233afcc Author: lihangyu <lihan...@selectdb.com> AuthorDate: Tue Dec 17 17:46:21 2024 +0800 fix 2 (#45538) --- .../rowset/segment_v2/vertical_segment_writer.cpp | 1 + be/src/vec/columns/column_object.cpp | 22 +++++++--------------- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp b/be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp index 6abc2f5c16e..714ed6b7d6e 100644 --- a/be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp +++ b/be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp @@ -1506,6 +1506,7 @@ Status VerticalSegmentWriter::_write_footer() { _footer.set_num_rows(_row_count); // Footer := SegmentFooterPB, FooterPBSize(4), FooterPBChecksum(4), MagicNumber(4) + LOG(INFO) << "footer " << _footer.DebugString(); std::string footer_buf; if (!_footer.SerializeToString(&footer_buf)) { return Status::InternalError("failed to serialize segment footer"); diff --git a/be/src/vec/columns/column_object.cpp b/be/src/vec/columns/column_object.cpp index 2cb1e013f8c..13ef6eb8d71 100644 --- a/be/src/vec/columns/column_object.cpp +++ b/be/src/vec/columns/column_object.cpp @@ -2067,7 +2067,6 @@ Status ColumnObject::finalize(FinalizeMode mode) { if (mode == FinalizeMode::WRITE_MODE) { // pick sparse columns std::set<std::string_view> selected_path; - std::vector<std::string_view> remaining_path; if (subcolumns.size() > MAX_SUBCOLUMNS) { // pick subcolumns sort by size of none null values std::unordered_map<std::string_view, size_t> none_null_value_sizes; @@ -2089,25 +2088,18 @@ Status ColumnObject::finalize(FinalizeMode mode) { for (size_t i = 0; i < std::min(MAX_SUBCOLUMNS, sorted_by_size.size()); ++i) { selected_path.insert(sorted_by_size[i].first); } - - // 4. put remaining subcolumns to remaining_subcolumns - for (const auto& entry : sorted_by_size) { - if (selected_path.find(entry.first) == selected_path.end()) { - remaining_path.emplace_back(entry.first); - } - } - } - // add selected subcolumns to new_subcolumns - for (auto&& entry : subcolumns) { - if (selected_path.find(entry->path.get_path()) != selected_path.end()) { - new_subcolumns.add(entry->path, entry->data); + } else { + // all subcolumns should be selected, thus remaining subcolumns should be empty + for (auto&& entry : subcolumns) { + selected_path.insert(entry->path.get_path()); } } - std::map<std::string_view, Subcolumn> remaing_subcolumns; - // merge remaining subcolumns to sparse_column + // add selected subcolumns to new_subcolumns, otherwise add to remaining_subcolumns for (auto&& entry : subcolumns) { if (selected_path.find(entry->path.get_path()) != selected_path.end()) { + new_subcolumns.add(entry->path, entry->data); + } else { remaing_subcolumns.emplace(entry->path.get_path(), entry->data); } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org