From a17f917618979e2121fa5f44c3f3d475f8a0e0da Mon Sep 17 00:00:00 2001 From: simonjoylet Date: Thu, 19 Oct 2023 08:40:01 +0000 Subject: [PATCH] [CP] ddl kv use first ddl sstable to get compressor type when available --- .../storage/blocksstable/ob_index_block_data_prepare.h | 2 +- src/storage/ddl/ob_tablet_ddl_kv.cpp | 10 ++++------ src/storage/ddl/ob_tablet_ddl_kv.h | 6 ++---- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/mittest/mtlenv/storage/blocksstable/ob_index_block_data_prepare.h b/mittest/mtlenv/storage/blocksstable/ob_index_block_data_prepare.h index 7944f939d..c60b55adc 100644 --- a/mittest/mtlenv/storage/blocksstable/ob_index_block_data_prepare.h +++ b/mittest/mtlenv/storage/blocksstable/ob_index_block_data_prepare.h @@ -532,7 +532,7 @@ void TestIndexBlockDataPrepare::prepare_ddl_kv() share::SCN ddl_start_scn; ddl_start_scn.convert_from_ts(ObTimeUtility::current_time()); - ASSERT_EQ(OB_SUCCESS, ddl_kv_.init(*tablet_handle.get_obj(), ddl_start_scn, sstable_.get_data_version(), ddl_start_scn, 4000, false/*require_ddl_sstable*/)); + ASSERT_EQ(OB_SUCCESS, ddl_kv_.init(*tablet_handle.get_obj(), ddl_start_scn, sstable_.get_data_version(), ddl_start_scn, 4000)); SMART_VAR(ObSSTableSecMetaIterator, meta_iter) { ObDatumRange query_range; diff --git a/src/storage/ddl/ob_tablet_ddl_kv.cpp b/src/storage/ddl/ob_tablet_ddl_kv.cpp index ffcd364da..440776dfe 100755 --- a/src/storage/ddl/ob_tablet_ddl_kv.cpp +++ b/src/storage/ddl/ob_tablet_ddl_kv.cpp @@ -52,8 +52,7 @@ ObBlockMetaTree::~ObBlockMetaTree() int ObBlockMetaTree::init(ObTablet &tablet, const ObITable::TableKey &table_key, const share::SCN &ddl_start_scn, - const int64_t data_format_version, - const bool require_ddl_sstable/* = true */) + const int64_t data_format_version) { int ret = OB_SUCCESS; const ObMemAttr mem_attr(MTL_ID(), "BlockMetaTree"); @@ -70,7 +69,7 @@ int ObBlockMetaTree::init(ObTablet &tablet, LOG_WARN("init block tree failed", K(ret)); } else if (OB_FAIL(tablet.get_ddl_sstables(ddl_table_iter))) { LOG_WARN("get ddl sstable handles failed", K(ret)); - } else if (require_ddl_sstable && OB_FAIL(ddl_table_iter.get_boundary_table(false/*is_last*/, first_ddl_sstable))) { + } else if (ddl_table_iter.count() > 0 && OB_FAIL(ddl_table_iter.get_boundary_table(false/*is_last*/, first_ddl_sstable))) { LOG_WARN("failed to get boundary table", K(ret)); } else if (OB_FAIL(ObTabletDDLUtil::prepare_index_data_desc(tablet, table_key.get_snapshot_version(), @@ -452,8 +451,7 @@ int ObDDLKV::init(ObTablet &tablet, const SCN &ddl_start_scn, const int64_t snapshot_version, const SCN &last_freezed_scn, - const int64_t data_format_version, - const bool require_ddl_sstable/* = true */) + const int64_t data_format_version) { int ret = OB_SUCCESS; @@ -482,7 +480,7 @@ int ObDDLKV::init(ObTablet &tablet, ddl_param.snapshot_version_ = snapshot_version; ddl_param.data_format_version_ = data_format_version; ObTabletCreateSSTableParam sstable_param; - if (OB_FAIL(block_meta_tree_.init(tablet, ddl_param.table_key_, ddl_start_scn, data_format_version, require_ddl_sstable))) { + if (OB_FAIL(block_meta_tree_.init(tablet, ddl_param.table_key_, ddl_start_scn, data_format_version))) { LOG_WARN("init mem index sstable failed", K(ret), K(ddl_param)); } else if (OB_FAIL(init_sstable_param(tablet, ddl_param.table_key_, ddl_start_scn, sstable_param))) { LOG_WARN("init sstable param failed", K(ret)); diff --git a/src/storage/ddl/ob_tablet_ddl_kv.h b/src/storage/ddl/ob_tablet_ddl_kv.h index 60de826dd..d78509c79 100644 --- a/src/storage/ddl/ob_tablet_ddl_kv.h +++ b/src/storage/ddl/ob_tablet_ddl_kv.h @@ -52,8 +52,7 @@ public: int init(ObTablet &tablet, const ObITable::TableKey &table_key, const share::SCN &ddl_start_scn, - const int64_t data_format_version, - const bool require_ddl_sstable = true); + const int64_t data_format_version); void destroy(); int insert_macro_block(const ObDDLMacroHandle ¯o_handle, const blocksstable::ObDatumRowkey *rowkey, @@ -120,8 +119,7 @@ public: const share::SCN &ddl_start_scn, const int64_t snapshot_version, const share::SCN &last_freezed_scn, - const int64_t data_format_version, - const bool require_ddl_sstable = true); + const int64_t data_format_version); void reset(); int set_macro_block(ObTablet &tablet, const ObDDLMacroBlock ¯o_block);