diff --git a/dbms/src/Storages/DeltaMerge/tests/gtest_segment_bitmap.cpp b/dbms/src/Storages/DeltaMerge/tests/gtest_segment_bitmap.cpp index ef917f00cbb..2de63d1f169 100644 --- a/dbms/src/Storages/DeltaMerge/tests/gtest_segment_bitmap.cpp +++ b/dbms/src/Storages/DeltaMerge/tests/gtest_segment_bitmap.cpp @@ -1359,4 +1359,43 @@ try } CATCH +TEST_P(SegmentBitmapFilterTest, VersionFilter_Stable2) +try +{ + writeSegmentGeneric("d_tiny:[0, 10):shuffle:ts_1|d_tiny:[3, 13):shuffle:ts_2|d_tiny:[6, " + "16):shuffle:ts_3|merge_delta|d_mem:[2, 7):ts_4"); + { + auto [seg, snap] = getSegmentForRead(SEG_ID); + auto cfs = snap->delta->getColumnFiles(); + ASSERT_EQ(cfs.size(), 1); + ASSERT_TRUE(cfs[0]->isInMemoryFile()) << cfs[0]->toString(); + } + + verifyVersionChain(VerifyVersionChainOption{ + .seg_id = SEG_ID, + .caller_line = __LINE__, + .read_ts = 4, + .expected_bitmap = "11000000000000100100101010111111111", + }); + verifyVersionChain(VerifyVersionChainOption{ + .seg_id = SEG_ID, + .caller_line = __LINE__, + .read_ts = 3, + .expected_bitmap = "11101010100100100100101010111100000", + }); + verifyVersionChain(VerifyVersionChainOption{ + .seg_id = SEG_ID, + .caller_line = __LINE__, + .read_ts = 2, + .expected_bitmap = "11101010101001001001010101000000000", + }); + verifyVersionChain(VerifyVersionChainOption{ + .seg_id = SEG_ID, + .caller_line = __LINE__, + .read_ts = 1, + .expected_bitmap = "11110101010010010010000000000000000", + }); +} +CATCH + } // namespace DB::DM::tests