fix builder trim empty roots when rewriting macro blocks

This commit is contained in:
obdev
2024-02-07 04:19:57 +00:00
committed by ob-robot
parent 4b6d4c216f
commit c8d8bb4c25
2 changed files with 19 additions and 1 deletions

View File

@ -828,7 +828,22 @@ TEST_F(TestIndexTree, test_empty_index_tree)
ASSERT_EQ(OB_SUCCESS, data_writer.open(data_desc.get_desc(), data_seq));
// do not insert any data
ASSERT_EQ(OB_SUCCESS, data_writer.close());
ASSERT_EQ(1, sstable_builder.roots_.count());
ObSSTableMergeRes res;
ret = sstable_builder.close(res);
ASSERT_EQ(0, sstable_builder.roots_.count());
ASSERT_EQ(OB_SUCCESS, ret);
ASSERT_TRUE(res.root_desc_.is_empty());
// test rebuild macro blocks
ASSERT_EQ(OB_SUCCESS, data_writer.open(data_desc.get_desc(), data_seq));
// do not insert any data
ASSERT_EQ(OB_SUCCESS, data_writer.close());
ASSERT_EQ(1, sstable_builder.roots_.count());
ObSSTableIndexBuilder::ObMacroMetaIter macro_iter;
sstable_builder.init_meta_iter(macro_iter);
ASSERT_EQ(0, sstable_builder.roots_.count());
ret = sstable_builder.close(res);
ASSERT_EQ(OB_SUCCESS, ret);
ASSERT_TRUE(res.root_desc_.is_empty());