This is an automated email from the ASF dual-hosted git repository.
zhangchen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 2638ad0550 [fix](compaction) rowid_conversion should ignore deleted
row on normal compaction (#24005)
2638ad0550 is described below
commit 2638ad055099057178e9c3f5fd1837e644ab1a26
Author: huanghaibin <[email protected]>
AuthorDate: Fri Sep 8 19:44:24 2023 +0800
[fix](compaction) rowid_conversion should ignore deleted row on normal
compaction (#24005)
---
be/src/vec/olap/block_reader.cpp | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/be/src/vec/olap/block_reader.cpp b/be/src/vec/olap/block_reader.cpp
index 2342c9faf9..b7a640ab4a 100644
--- a/be/src/vec/olap/block_reader.cpp
+++ b/be/src/vec/olap/block_reader.cpp
@@ -377,8 +377,16 @@ Status BlockReader::_unique_key_next_block(Block* block,
bool* eof) {
reinterpret_cast<ColumnInt8*>(target_columns[delete_sign_idx].get())
->get_data()
.data();
+ int delete_count = 0;
for (int i = 0; i < target_block_row; ++i) {
- filter_data[i] = delete_data[i] == 0;
+ bool sign = (delete_data[i] == 0);
+ filter_data[i] = sign;
+ if (UNLIKELY(!sign)) {
+ if (UNLIKELY(_reader_context.record_rowids)) {
+ _block_row_locations[i].row_id = -1;
+ delete_count++;
+ }
+ }
}
ColumnWithTypeAndName column_with_type_and_name {_delete_filter_column,
@@ -388,6 +396,9 @@ Status BlockReader::_unique_key_next_block(Block* block,
bool* eof) {
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);
+ if (UNLIKELY(_reader_context.record_rowids)) {
+ DCHECK_EQ(_block_row_locations.size(), block->rows() +
delete_count);
+ }
}
return Status::OK();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]