From 8f0a8291d1626b21e7a794d5e84202913bcce1ec Mon Sep 17 00:00:00 2001 From: haitaoyang Date: Mon, 24 Jun 2024 12:33:04 +0000 Subject: [PATCH] Fix use wrong allocator --- src/storage/access/ob_multiple_merge.cpp | 28 ++++++++++++------------ src/storage/access/ob_multiple_merge.h | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/storage/access/ob_multiple_merge.cpp b/src/storage/access/ob_multiple_merge.cpp index cd21cb5a1f..43d765e46c 100644 --- a/src/storage/access/ob_multiple_merge.cpp +++ b/src/storage/access/ob_multiple_merge.cpp @@ -84,21 +84,21 @@ ObMultipleMerge::~ObMultipleMerge() } if (nullptr != block_row_store_) { block_row_store_->~ObBlockRowStore(); - if (OB_NOT_NULL(long_life_allocator_)) { - long_life_allocator_->free(block_row_store_); + if (OB_NOT_NULL(access_ctx_->stmt_allocator_)) { + access_ctx_->stmt_allocator_->free(block_row_store_); } block_row_store_ = nullptr; } if (nullptr != group_by_cell_) { group_by_cell_->~ObGroupByCell(); - if (OB_NOT_NULL(long_life_allocator_)) { - long_life_allocator_->free(group_by_cell_); + if (OB_NOT_NULL(access_ctx_->stmt_allocator_)) { + access_ctx_->stmt_allocator_->free(group_by_cell_); } group_by_cell_ = nullptr; } if (nullptr != skip_bit_) { - if (OB_NOT_NULL(long_life_allocator_)) { - long_life_allocator_->free(skip_bit_); + if (OB_NOT_NULL(access_ctx_->stmt_allocator_)) { + access_ctx_->stmt_allocator_->free(skip_bit_); } skip_bit_ = nullptr; } @@ -184,7 +184,7 @@ int ObMultipleMerge::init( OB_FAIL(access_ctx_->alloc_iter_pool(access_param_->iter_param_.is_use_column_store()))) { LOG_WARN("Failed to init iter pool", K(ret)); } else if (FALSE_IT(stmt_iter_pool_ = access_ctx_->get_stmt_iter_pool())) { - } else if (OB_ISNULL(skip_bit_ = to_bit_vector(long_life_allocator_->alloc(ObBitVector::memory_size(batch_size))))) { + } else if (OB_ISNULL(skip_bit_ = to_bit_vector(access_ctx_->stmt_allocator_->alloc(ObBitVector::memory_size(batch_size))))) { ret = common::OB_ALLOCATE_MEMORY_FAILED; LOG_WARN("Failed to alloc skip bit", K(ret), K(batch_size)); } else { @@ -270,7 +270,7 @@ int ObMultipleMerge::switch_table( STORAGE_LOG(WARN, "fail to prepare read tables", K(ret)); } else if (OB_FAIL(alloc_row_store(context, param))) { LOG_WARN("fail to alloc row store", K(ret)); - } else if (OB_ISNULL(skip_bit_ = to_bit_vector(long_life_allocator_->alloc(ObBitVector::memory_size(batch_size))))) { + } else if (OB_ISNULL(skip_bit_ = to_bit_vector(access_ctx_->stmt_allocator_->alloc(ObBitVector::memory_size(batch_size))))) { ret = common::OB_ALLOCATE_MEMORY_FAILED; LOG_WARN("Failed to alloc skip bit", K(ret), K(batch_size)); } else { @@ -880,21 +880,21 @@ void ObMultipleMerge::inner_reset() { if (nullptr != block_row_store_) { block_row_store_->~ObBlockRowStore(); - if (OB_NOT_NULL(long_life_allocator_)) { - long_life_allocator_->free(block_row_store_); + if (OB_NOT_NULL(access_ctx_->stmt_allocator_)) { + access_ctx_->stmt_allocator_->free(block_row_store_); } block_row_store_ = nullptr; } if (nullptr != group_by_cell_) { group_by_cell_->~ObGroupByCell(); - if (OB_NOT_NULL(long_life_allocator_)) { - long_life_allocator_->free(group_by_cell_); + if (OB_NOT_NULL(access_ctx_->stmt_allocator_)) { + access_ctx_->stmt_allocator_->free(group_by_cell_); } group_by_cell_ = nullptr; } if (nullptr != skip_bit_) { - if (OB_NOT_NULL(long_life_allocator_)) { - long_life_allocator_->free(skip_bit_); + if (OB_NOT_NULL(access_ctx_->stmt_allocator_)) { + access_ctx_->stmt_allocator_->free(skip_bit_); } skip_bit_ = nullptr; } diff --git a/src/storage/access/ob_multiple_merge.h b/src/storage/access/ob_multiple_merge.h index de40ad4c61..613e8626ca 100644 --- a/src/storage/access/ob_multiple_merge.h +++ b/src/storage/access/ob_multiple_merge.h @@ -150,7 +150,7 @@ protected: ObBlockRowStore *block_row_store_; ObGroupByCell *group_by_cell_; sql::ObBitVector *skip_bit_; - ObIAllocator *long_life_allocator_; + ObIAllocator *long_life_allocator_; // used for memory which will be chached in ObGlobalIterPool ObStoreRowIterPool *stmt_iter_pool_; common::ObSEArray out_project_cols_; ObLobDataReader lob_reader_;