get kv from tablet
This commit is contained in:
@ -112,6 +112,7 @@ protected:
|
||||
ObSSTable sstable_;
|
||||
storage::ObDDLMemtable ddl_kv_;
|
||||
storage::ObDDLKVHandle ddl_kvs_;
|
||||
ObDDLKV *ddl_kv_ptr_;
|
||||
ObSSTableIndexBuilder *root_index_builder_;
|
||||
ObSSTableIndexBuilder *merge_root_index_builder_;
|
||||
ObMicroBlockData root_block_data_buf_;
|
||||
@ -319,6 +320,7 @@ void TestIndexBlockDataPrepare::TearDown()
|
||||
partial_sstable_.reset();
|
||||
ddl_kv_.reset();
|
||||
ddl_kvs_.reset();
|
||||
ddl_kv_ptr_ = nullptr;
|
||||
cg_read_info_handle_.reset();
|
||||
if (nullptr != root_block_data_buf_.buf_) {
|
||||
allocator_.free((void *)root_block_data_buf_.buf_);
|
||||
@ -1181,6 +1183,9 @@ void TestIndexBlockDataPrepare::prepare_merge_ddl_kvs()
|
||||
ASSERT_EQ(OB_SUCCESS, tablet_handle.get_obj()->get_ddl_kv_mgr(ddl_kv_mgr_handle, true /*CREATE*/));
|
||||
ddl_kv_mgr_handle.get_obj()->set_ddl_kv(0, ddl_kvs_);
|
||||
ddl_kv_mgr_handle.get_obj()->freeze_ddl_kv(ddl_start_scn, sstable_.get_data_version(), 4000, ddl_start_scn);
|
||||
ddl_kv_ptr_ = ddl_kvs_.get_obj();
|
||||
tablet_handle.get_obj()->ddl_kvs_ = &ddl_kv_ptr_;
|
||||
tablet_handle.get_obj()->ddl_kv_count_ = 1;
|
||||
SMART_VAR(ObSSTableSecMetaIterator, meta_iter) {
|
||||
ObDatumRange query_range;
|
||||
query_range.set_whole_range();
|
||||
|
||||
@ -110,6 +110,8 @@ void TestDDLMergeRowMultiScanner::SetUp()
|
||||
|
||||
void TestDDLMergeRowMultiScanner::TearDown()
|
||||
{
|
||||
tablet_handle_.get_obj()->ddl_kv_count_ = 0;
|
||||
tablet_handle_.get_obj()->ddl_kvs_ = nullptr;
|
||||
tablet_handle_.reset();
|
||||
TestIndexBlockDataPrepare::TearDown();
|
||||
}
|
||||
|
||||
@ -107,6 +107,8 @@ void TestDDLMergeRowScanner::SetUp()
|
||||
|
||||
void TestDDLMergeRowScanner::TearDown()
|
||||
{
|
||||
tablet_handle_.get_obj()->ddl_kv_count_ = 0;
|
||||
tablet_handle_.get_obj()->ddl_kvs_ = nullptr;
|
||||
tablet_handle_.reset();
|
||||
TestIndexBlockDataPrepare::TearDown();
|
||||
}
|
||||
|
||||
@ -81,6 +81,8 @@ void TestIndexSSTableEstimator::SetUp()
|
||||
void TestIndexSSTableEstimator::TearDown()
|
||||
{
|
||||
destroy_query_param();
|
||||
tablet_handle_.get_obj()->ddl_kv_count_ = 0;
|
||||
tablet_handle_.get_obj()->ddl_kvs_ = nullptr;
|
||||
tablet_handle_.reset();
|
||||
TestIndexBlockDataPrepare::TearDown();
|
||||
}
|
||||
|
||||
@ -84,6 +84,8 @@ void TestMultiVersionIndexSSTableEstimator::SetUp()
|
||||
void TestMultiVersionIndexSSTableEstimator::TearDown()
|
||||
{
|
||||
destroy_query_param();
|
||||
tablet_handle_.get_obj()->ddl_kv_count_ = 0;
|
||||
tablet_handle_.get_obj()->ddl_kvs_ = nullptr;
|
||||
tablet_handle_.reset();
|
||||
TestIndexBlockDataPrepare::TearDown();
|
||||
}
|
||||
|
||||
@ -1192,23 +1192,15 @@ int ObDDLMergeBlockRowIterator::get_readable_ddl_kvs(const ObIndexBlockIterParam
|
||||
} else {
|
||||
ObTablet *cur_tablet = const_cast<ObTablet *>(iter_param.tablet_);
|
||||
const uint16_t sstable_cg_idx = iter_param.sstable_->get_key().get_column_group_id();
|
||||
ObDDLKvMgrHandle ddl_kv_mgr_handle;
|
||||
ObArray<ObDDLKVHandle> ddl_kvs_handle;
|
||||
ObArray<ObDDLKV *> ddl_kvs;
|
||||
if (OB_ISNULL(cur_tablet)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("tablet is null", K(ret), KP(cur_tablet));
|
||||
} else if (OB_FAIL(cur_tablet->get_ddl_kv_mgr(ddl_kv_mgr_handle))) {
|
||||
if (OB_ENTRY_NOT_EXIST == ret) {
|
||||
ret = OB_SUCCESS;
|
||||
LOG_INFO("ddl kv mgr not exist", K(ret), K(iter_param), KPC(cur_tablet));
|
||||
} else if (OB_FAIL(cur_tablet->get_ddl_kvs(ddl_kvs))) {
|
||||
LOG_WARN("failed to get ddl kvs array from tablet", K(ret));
|
||||
} else {
|
||||
LOG_WARN("get ddl kv mgr failed", K(ret), K(iter_param), KPC(cur_tablet));
|
||||
}
|
||||
} else if (OB_FAIL(ddl_kv_mgr_handle.get_obj()->get_ddl_kvs(false/*not frozen_only*/, ddl_kvs_handle))) {
|
||||
LOG_WARN("get freezed ddl kv failed", K(ret), K(ddl_kv_mgr_handle));
|
||||
} else {
|
||||
for (int64_t i = 0; OB_SUCC(ret) && i < ddl_kvs_handle.count(); ++i) {
|
||||
ObDDLKV *ddl_kv = ddl_kvs_handle.at(i).get_obj();
|
||||
for (int64_t i = 0; OB_SUCC(ret) && i < ddl_kvs.count(); ++i) {
|
||||
ObDDLKV *ddl_kv = ddl_kvs.at(i);
|
||||
bool skip = false;
|
||||
for (int64_t j = 0; OB_SUCC(ret) && j < ddl_kv->get_ddl_memtables().count(); ++j) {
|
||||
ObDDLMemtable *cur_ddl_memtable = ddl_kv->get_ddl_memtables().at(j);
|
||||
|
||||
@ -5585,6 +5585,7 @@ void ObLSTabletService::dump_diag_info_for_old_row_loss(
|
||||
access_param.iter_param_.tablet_id_ = data_table.tablet_iter_.get_tablet()->get_tablet_meta().tablet_id_;
|
||||
access_param.iter_param_.read_info_ = read_info;
|
||||
access_param.iter_param_.out_cols_project_ = &out_col_pros;
|
||||
access_param.iter_param_.set_tablet_handle(data_table.get_tablet_handle());
|
||||
|
||||
ObStoreRowIterator *getter = nullptr;
|
||||
ObITable *table = nullptr;
|
||||
|
||||
Reference in New Issue
Block a user