fix bug: memory leak happened on *transf_param_ in ObTransformerTempTable
This commit is contained in:
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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_;
|
||||
|
||||
Reference in New Issue
Block a user