diff --git a/src/backend/gporca/libgpopt/include/gpopt/base/CWindowOids.h b/src/backend/gporca/libgpopt/include/gpopt/base/CWindowOids.h index ba120eac015..6d20b4948c2 100644 --- a/src/backend/gporca/libgpopt/include/gpopt/base/CWindowOids.h +++ b/src/backend/gporca/libgpopt/include/gpopt/base/CWindowOids.h @@ -60,6 +60,8 @@ class CWindowOids : public CRefCount CWindowOids(CMemoryPool *mp, OID row_number_oid, OID rank_oid, OID dense_rank_oid); + ~CWindowOids() override; + // accessor of oid value of "row_number" function OID OidRowNumber() const; IMDId *MDIdRowNumber() const; diff --git a/src/backend/gporca/libgpopt/src/base/CWindowOids.cpp b/src/backend/gporca/libgpopt/src/base/CWindowOids.cpp index da744a018d9..e2f326d3aaf 100644 --- a/src/backend/gporca/libgpopt/src/base/CWindowOids.cpp +++ b/src/backend/gporca/libgpopt/src/base/CWindowOids.cpp @@ -18,6 +18,13 @@ CWindowOids::CWindowOids(CMemoryPool *mp, OID row_number_oid, OID rank_oid, m_MDDenseRank = GPOS_NEW(mp) CMDIdGPDB(IMDId::EmdidGeneral, m_oidDenseRank); } +CWindowOids::~CWindowOids() +{ + CRefCount::SafeRelease(m_MDIdRowNumber); + CRefCount::SafeRelease(m_MDIdRank); + CRefCount::SafeRelease(m_MDDenseRank); +} + OID CWindowOids::OidRowNumber() const {