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 <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
