diff --git a/be/src/common/config.cpp b/be/src/common/config.cpp index 1bef84520eb86d..08bf67595fcacd 100644 --- a/be/src/common/config.cpp +++ b/be/src/common/config.cpp @@ -1426,6 +1426,10 @@ DEFINE_mInt32(check_tablet_delete_bitmap_interval_seconds, "300"); DEFINE_mInt32(check_tablet_delete_bitmap_score_top_n, "10"); DEFINE_mBool(enable_check_tablet_delete_bitmap_score, "true"); +// whether to prune rows with delete sign = 1 in base compaction +// ATTN: this config is only for test +DEFINE_mBool(prune_delete_sign_when_base_compaction, "false"); + // clang-format off #ifdef BE_TEST // test s3 diff --git a/be/src/common/config.h b/be/src/common/config.h index 9a7da04e8afb01..19b73d3db51984 100644 --- a/be/src/common/config.h +++ b/be/src/common/config.h @@ -1512,6 +1512,10 @@ DECLARE_mInt32(check_tablet_delete_bitmap_interval_seconds); DECLARE_mInt32(check_tablet_delete_bitmap_score_top_n); DECLARE_mBool(enable_check_tablet_delete_bitmap_score); +// whether to prune rows with delete sign = 1 in base compaction +// ATTN: this config is only for test +DECLARE_mBool(prune_delete_sign_when_base_compaction); + #ifdef BE_TEST // test s3 DECLARE_String(test_s3_resource); diff --git a/be/src/olap/tablet_reader.cpp b/be/src/olap/tablet_reader.cpp index 416d0fea476b32..3abfb66147c050 100644 --- a/be/src/olap/tablet_reader.cpp +++ b/be/src/olap/tablet_reader.cpp @@ -657,7 +657,8 @@ Status TabletReader::_init_delete_condition(const ReaderParams& read_params) { // Delete sign could not be applied when delete on cumu compaction is enabled, bucause it is meant for delete with predicates. // If delete design is applied on cumu compaction, it will lose effect when doing base compaction. // `_delete_sign_available` indicates the condition where we could apply delete signs to data. - _delete_sign_available = (read_params.reader_type == ReaderType::READER_BASE_COMPACTION || + _delete_sign_available = ((read_params.reader_type == ReaderType::READER_BASE_COMPACTION && + config::prune_delete_sign_when_base_compaction) || read_params.reader_type == ReaderType::READER_COLD_DATA_COMPACTION || read_params.reader_type == ReaderType::READER_CHECKSUM);