From da86d2ff650b64db88173858b77c2aba8347a593 Mon Sep 17 00:00:00 2001 From: Kaijie Chen Date: Tue, 11 Jul 2023 15:56:57 +0800 Subject: [PATCH] [fix](mow) fix flush_single_block core in calc_segment_delete_bitmap (#21619) --- be/src/olap/rowset/beta_rowset_writer.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/be/src/olap/rowset/beta_rowset_writer.cpp b/be/src/olap/rowset/beta_rowset_writer.cpp index 3d9be652b1..a56285e8de 100644 --- a/be/src/olap/rowset/beta_rowset_writer.cpp +++ b/be/src/olap/rowset/beta_rowset_writer.cpp @@ -525,6 +525,10 @@ Status BetaRowsetWriter::unfold_variant_column_and_flush_block( const std::shared_ptr& flush_mem_tracker, int64_t* flush_size) { SCOPED_CONSUME_MEM_TRACKER(flush_mem_tracker); + if (block->rows() == 0) { + return Status::OK(); + } + FlushContext ctx; ctx.block = block; if (_context.tablet_schema->is_dynamic_schema()) { @@ -534,6 +538,8 @@ Status BetaRowsetWriter::unfold_variant_column_and_flush_block( ctx.segment_id = std::optional {segment_id}; SCOPED_RAW_TIMER(&_segment_writer_ns); RETURN_IF_ERROR(flush_single_block(block, flush_size, &ctx)); + RETURN_IF_ERROR(_generate_delete_bitmap(segment_id)); + RETURN_IF_ERROR(_segcompaction_if_necessary()); return Status::OK(); } @@ -555,8 +561,6 @@ Status BetaRowsetWriter::flush_single_block(const vectorized::Block* block, int6 DCHECK_EQ(writer.get(), raw_writer); } RETURN_IF_ERROR(_flush_segment_writer(&writer, flush_size)); - RETURN_IF_ERROR(_generate_delete_bitmap(segment_id)); - RETURN_IF_ERROR(_segcompaction_if_necessary()); return Status::OK(); }