diff --git a/src/share/parameter/ob_parameter_seed.ipp b/src/share/parameter/ob_parameter_seed.ipp index 3c9b7f657..1c1d06c7c 100755 --- a/src/share/parameter/ob_parameter_seed.ipp +++ b/src/share/parameter/ob_parameter_seed.ipp @@ -1680,7 +1680,7 @@ TEMP_DEF_BOOL(v4.3, enable_table_with_cg, OB_TENANT_PARAMETER, "False", TEMP_DEF_INT(v4.3, encoding_test_seed, OB_CLUSTER_PARAMETER, "0", "[0,)" "The seed is used to test encoding algorithm. The default is 0, indicating that it is not test, the production environment must keep the default value", ObParameterAttr(Section::OBSERVER, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE)); -TEMP_DEF_BOOL(v4.3, enable_table_without_all_cg, OB_TENANT_PARAMETER, "False", +TEMP_DEF_BOOL(v4.3, enable_table_without_all_cg, OB_TENANT_PARAMETER, "True", "enables creating table without all column_group. The default value is False.", ObParameterAttr(Section::TENANT, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE)); DEF_BOOL(_enable_prefetch_limiting, OB_TENANT_PARAMETER, "False", diff --git a/src/storage/access/ob_sstable_row_getter.cpp b/src/storage/access/ob_sstable_row_getter.cpp index 87cbb1d31..7b34ba399 100644 --- a/src/storage/access/ob_sstable_row_getter.cpp +++ b/src/storage/access/ob_sstable_row_getter.cpp @@ -43,6 +43,7 @@ void ObSSTableRowGetter::reuse() ObStoreRowIterator::reuse(); is_opened_ = false; has_fetched_ = false; + sstable_ = nullptr; prefetcher_.reuse(); read_handle_.reset(); } diff --git a/src/storage/access/ob_sstable_row_multi_getter.cpp b/src/storage/access/ob_sstable_row_multi_getter.cpp index 6a5fa8816..83b5c6581 100644 --- a/src/storage/access/ob_sstable_row_multi_getter.cpp +++ b/src/storage/access/ob_sstable_row_multi_getter.cpp @@ -36,6 +36,7 @@ void ObSSTableRowMultiGetter::reuse() { ObStoreRowIterator::reuse(); is_opened_ = false; + sstable_ = nullptr; prefetcher_.reuse(); } diff --git a/src/storage/access/ob_sstable_row_scanner.cpp b/src/storage/access/ob_sstable_row_scanner.cpp index 7a65be8ef..b48928c9b 100644 --- a/src/storage/access/ob_sstable_row_scanner.cpp +++ b/src/storage/access/ob_sstable_row_scanner.cpp @@ -49,6 +49,7 @@ void ObSSTableRowScanner::reuse() ObStoreRowIterator::reuse(); is_opened_ = false; cur_range_idx_ = -1; + sstable_ = nullptr; if (nullptr != micro_scanner_) { micro_scanner_->reuse(); } diff --git a/src/storage/column_store/ob_cg_scanner.cpp b/src/storage/column_store/ob_cg_scanner.cpp index c71e3967a..f0459f1f2 100644 --- a/src/storage/column_store/ob_cg_scanner.cpp +++ b/src/storage/column_store/ob_cg_scanner.cpp @@ -120,6 +120,8 @@ void ObCGScanner::reuse() if (nullptr != micro_scanner_) { micro_scanner_->reuse(); } + sstable_ = nullptr; + table_wrapper_.reset(); query_index_range_.reset(); prefetcher_.reuse(); is_new_range_ = false; diff --git a/src/storage/column_store/ob_cg_sstable_row_getter.cpp b/src/storage/column_store/ob_cg_sstable_row_getter.cpp index bb33cadb6..af3dc6002 100644 --- a/src/storage/column_store/ob_cg_sstable_row_getter.cpp +++ b/src/storage/column_store/ob_cg_sstable_row_getter.cpp @@ -39,6 +39,8 @@ void ObCGGetter::reset() void ObCGGetter::reuse() { is_inited_ = false; + sstable_ = nullptr; + table_wrapper_.reset(); is_same_data_block_ = false; prefetcher_.reuse(); } @@ -85,8 +87,9 @@ int ObCGGetter::init( } else { ObMicroBlockDataHandle µ_handle = prefetcher_.get_last_data_handle(); is_same_data_block_ = - micro_handle.in_block_state() && + nullptr != sstable_ && sstable->get_key() == sstable_->get_key() && + micro_handle.in_block_state() && 0 == read_handle_.index_block_info_.get_row_range().compare(idx_key.datums_[0].get_int()) && micro_handle.match( read_handle_.index_block_info_.get_macro_id(), @@ -190,6 +193,7 @@ void ObCGSSTableRowGetter::reuse() { is_inited_ = false; row_.reuse(); + co_sstable_ = nullptr; ObStoreRowIterator::reuse(); } diff --git a/src/storage/column_store/ob_co_sstable_rows_filter.cpp b/src/storage/column_store/ob_co_sstable_rows_filter.cpp index 711e406e5..0f1ffef4e 100644 --- a/src/storage/column_store/ob_co_sstable_rows_filter.cpp +++ b/src/storage/column_store/ob_co_sstable_rows_filter.cpp @@ -187,6 +187,7 @@ void ObCOSSTableRowsFilter::reuse() prepared_ = false; subtree_filter_iter_to_locate_ = 0; subtree_filter_iter_to_filter_ = 0; + co_sstable_ = nullptr; } int ObCOSSTableRowsFilter::apply(const ObCSRange &range)