You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by kx...@apache.org on 2023/08/01 14:38:48 UTC

[doris] 02/08: [fix](vertical compaction) compaction block reader should return error when reading next block failed (#22431)

This is an automated email from the ASF dual-hosted git repository.

kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git

commit c281ac461cdceef6310d8a1aa597307d70eb58a8
Author: huanghaibin <28...@qq.com>
AuthorDate: Tue Aug 1 14:09:18 2023 +0800

    [fix](vertical compaction) compaction block reader should return error when reading next block failed (#22431)
---
 be/src/vec/olap/block_reader.cpp          | 2 +-
 be/src/vec/olap/olap_data_convertor.cpp   | 4 ++--
 be/src/vec/olap/vertical_block_reader.cpp | 3 ++-
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/be/src/vec/olap/block_reader.cpp b/be/src/vec/olap/block_reader.cpp
index b37459974c..36fe335632 100644
--- a/be/src/vec/olap/block_reader.cpp
+++ b/be/src/vec/olap/block_reader.cpp
@@ -384,7 +384,7 @@ Status BlockReader::_unique_key_next_block(Block* block, bool* eof) {
                                                          std::make_shared<DataTypeUInt8>(),
                                                          "__DORIS_COMPACTION_FILTER__"};
         block->insert(column_with_type_and_name);
-        Block::filter_block(block, target_columns.size(), target_columns.size());
+        RETURN_IF_ERROR(Block::filter_block(block, target_columns.size(), target_columns.size()));
         _stats.rows_del_filtered += target_block_row - block->rows();
         DCHECK(block->try_get_by_name("__DORIS_COMPACTION_FILTER__") == nullptr);
     }
diff --git a/be/src/vec/olap/olap_data_convertor.cpp b/be/src/vec/olap/olap_data_convertor.cpp
index a62a07a15e..a4965e8421 100644
--- a/be/src/vec/olap/olap_data_convertor.cpp
+++ b/be/src/vec/olap/olap_data_convertor.cpp
@@ -185,7 +185,7 @@ OlapBlockDataConvertor::create_olap_column_data_convertor(const TabletColumn& co
 
 void OlapBlockDataConvertor::set_source_content(const vectorized::Block* block, size_t row_pos,
                                                 size_t num_rows) {
-    assert(block && num_rows > 0 && row_pos + num_rows <= block->rows() &&
+    DCHECK(block && num_rows > 0 && row_pos + num_rows <= block->rows() &&
            block->columns() == _convertors.size());
     size_t cid = 0;
     for (const auto& typed_column : *block) {
@@ -197,7 +197,7 @@ void OlapBlockDataConvertor::set_source_content(const vectorized::Block* block,
 void OlapBlockDataConvertor::set_source_content_with_specifid_columns(
         const vectorized::Block* block, size_t row_pos, size_t num_rows,
         std::vector<uint32_t> cids) {
-    assert(block && num_rows > 0 && row_pos + num_rows <= block->rows() &&
+    DCHECK(block && num_rows > 0 && row_pos + num_rows <= block->rows() &&
            block->columns() <= _convertors.size());
     for (auto i : cids) {
         _convertors[i]->set_source_column(block->get_by_position(i), row_pos, num_rows);
diff --git a/be/src/vec/olap/vertical_block_reader.cpp b/be/src/vec/olap/vertical_block_reader.cpp
index 5aac3034a2..17355135fe 100644
--- a/be/src/vec/olap/vertical_block_reader.cpp
+++ b/be/src/vec/olap/vertical_block_reader.cpp
@@ -476,7 +476,8 @@ Status VerticalBlockReader::_unique_key_next_block(Block* block, bool* eof) {
                                                              std::make_shared<DataTypeUInt8>(),
                                                              "__DORIS_COMPACTION_FILTER__"};
             block->insert(column_with_type_and_name);
-            Block::filter_block(block, target_columns.size(), target_columns.size());
+            RETURN_IF_ERROR(
+                    Block::filter_block(block, target_columns.size(), target_columns.size()));
             _stats.rows_del_filtered += block_rows - block->rows();
             DCHECK(block->try_get_by_name("__DORIS_COMPACTION_FILTER__") == nullptr);
         }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org