The PDML operator does not call the member's destructor, resulting in the operator's member RtDef not being destructed, causing a memory leak

This commit is contained in:
yishenglanlingzui 2024-12-02 11:15:09 +00:00 committed by ob-robot
parent 4ad457ced3
commit d68413c2e3
3 changed files with 18 additions and 0 deletions

View File

@ -107,6 +107,12 @@ public:
virtual int inner_get_next_row();
virtual int inner_open();
virtual int inner_close();
virtual void destroy()
{
// destroy
del_rtdef_.~ObDelRtDef();
ObTableModifyOp::destroy();
}
private:
ObPDMLOpDataDriver data_driver_;
ObDelRtDef del_rtdef_;

View File

@ -104,6 +104,12 @@ public:
virtual int inner_get_next_row();
virtual int inner_open();
virtual int inner_close();
virtual void destroy()
{
// destroy
ins_rtdef_.~ObInsRtDef();
ObTableModifyOp::destroy();
}
protected:
ObPDMLOpDataDriver data_driver_;
ObInsRtDef ins_rtdef_;

View File

@ -89,6 +89,12 @@ public:
virtual int inner_get_next_row();
virtual int inner_open();
virtual int inner_close();
virtual void destroy()
{
// destroy
upd_rtdef_.~ObUpdRtDef();
ObTableModifyOp::destroy();
}
private:
int update_row_to_das(const ObDASTabletLoc *tablet_loc);
private: