fix builder trim empty roots when rewriting macro blocks
This commit is contained in:
parent
3dfd2fff98
commit
c9d2d3bdf5
@ -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());
|
||||
|
@ -689,7 +689,10 @@ int ObSSTableIndexBuilder::init_meta_iter(ObMacroMetaIter &iter)
|
||||
if (IS_NOT_INIT) {
|
||||
ret = OB_NOT_INIT;
|
||||
STORAGE_LOG(WARN, "invalid sstable builder", K(ret), K_(is_inited));
|
||||
} else if (FALSE_IT(sort_roots())) {
|
||||
} else if (OB_FAIL(trim_empty_roots())) {
|
||||
STORAGE_LOG(WARN, "fail to trim empty roots", K(ret));
|
||||
} else if (OB_FAIL(sort_roots())) {
|
||||
STORAGE_LOG(WARN, "fail to sort roots", K(ret));
|
||||
} else if (OB_FAIL(iter.init(roots_, index_store_desc_.get_desc().is_cg()))) {
|
||||
STORAGE_LOG(WARN, "fail to init iter", K(ret));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user