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