Fix memory leak because fix memory expansion
This commit is contained in:
@ -362,7 +362,16 @@ int ObGroupLookupOp::set_lookup_scan_group(int64_t group_id)
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
int ObGroupLookupOp::revert_iter()
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
if (OB_FAIL(ObLocalIndexLookupOp::revert_iter())) {
|
||||
LOG_WARN("revert ObLocalIndexLookupOp fail",K(ret));
|
||||
} else {
|
||||
group_iter_.reset();
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
OB_SERIALIZE_MEMBER((ObDASGroupScanOp, ObDASScanOp), iter_, cur_group_idx_, group_size_);
|
||||
|
||||
|
||||
@ -54,6 +54,8 @@ public:
|
||||
ObExpr *group_id_expr);
|
||||
virtual int switch_lookup_scan_group() override;
|
||||
virtual int set_lookup_scan_group(int64_t group_id) override;
|
||||
|
||||
int revert_iter();
|
||||
public:
|
||||
ObGroupScanIter group_iter_;
|
||||
};
|
||||
|
||||
@ -1197,6 +1197,7 @@ int ObLocalIndexLookupOp::revert_iter()
|
||||
LOG_WARN("revert scan iterator failed", K(ret));
|
||||
}
|
||||
//release the memory hold by local index lookup op
|
||||
|
||||
rowkey_iter_ = NULL;
|
||||
lookup_iter_ = NULL;
|
||||
scan_param_.destroy_schema_guard();
|
||||
|
||||
@ -39,7 +39,8 @@ int ObGroupResultRows::init(const common::ObIArray<ObExpr *> &exprs,
|
||||
reuse_alloc_ = new(reuse_alloc_buf_) common::ObArenaAllocator();
|
||||
reuse_alloc_->set_attr(attr);
|
||||
}
|
||||
rows_ = static_cast<LastDASStoreRow *>(reuse_alloc_->alloc(max_size * sizeof(LastDASStoreRow)));
|
||||
//rows_ = static_cast<LastDASStoreRow *>(reuse_alloc_->alloc(max_size * sizeof(LastDASStoreRow)));
|
||||
rows_ = static_cast<LastDASStoreRow *>(das_op_allocator.alloc(max_size * sizeof(LastDASStoreRow)));
|
||||
if (NULL == rows_) {
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
LOG_WARN("fail to alloc memory", K(max_size), K(ret));
|
||||
|
||||
Reference in New Issue
Block a user