fix bug: memory leak happened on *transf_param_ in ObTransformerTempTable

This commit is contained in:
jingtaoye35
2023-01-12 04:12:02 +00:00
committed by ob-robot
parent d6a558b94a
commit 7705a1f276
2 changed files with 12 additions and 5 deletions

View File

@ -34,11 +34,9 @@ namespace sql
ObTransformTempTable::~ObTransformTempTable()
{
for (int64_t i = 0; NULL != trans_param_ && i < trans_param_->materialize_stmts_.count(); ++i) {
if (NULL != trans_param_->materialize_stmts_.at(i)) {
trans_param_->materialize_stmts_.at(i)->~MaterializeStmts();
trans_param_->materialize_stmts_.at(i) = NULL;
}
if (OB_NOT_NULL(trans_param_)) {
trans_param_->~TempTableTransParam();
trans_param_ = NULL;
}
}

View File

@ -101,6 +101,15 @@ public:
:trans_stmt_(NULL),
trans_type_(T_MATERIALIZE)
{}
virtual ~TempTableTransParam()
{
for (int64_t i = 0; i < materialize_stmts_.count(); ++i) {
if (OB_NOT_NULL(materialize_stmts_.at(i))) {
materialize_stmts_.at(i)->~MaterializeStmts();
materialize_stmts_.at(i) = NULL;
}
}
}
Ob2DArray<MaterializeStmts *> materialize_stmts_;
ObSelectStmt *trans_stmt_;
ObItemType trans_type_;