提交 9e5dd61a 编写于 作者: E Entong Shen

Refactor and cleanup of memory management of the new optimizer.

This commit eliminates the global new/delete overrides that were causing
compatibility problems (the Allocators.(h/cpp/inl) files have been
completely removed). The GPOS `New()` macro is retained and works the
same way, but has been renamed `GPOS_NEW()` to avoid confusion and
possible name collisions. `GPOS_NEW()` works only for allocating
singleton objects. For allocating arrays, `GPOS_NEW_ARRAY()` is
provided. Because we no longer override the global delete,
objects/arrays allocated by `GPOS_NEW()` and `GPOS_NEW_ARRAY()` must now
be deleted by the new functions `GPOS_DELETE()` and
`GPOS_DELETE_ARRAY()` respectively. All code in GPOS has been
retrofitted for these changes, but Orca and other code that depends on
GPOS should also be changed.

Note that `GPOS_NEW()` and `GPOS_NEW_ARRAY()` should both be
exception-safe and not leak memory when a constructor throws.

Closes #166
上级 1022be29
......@@ -22,8 +22,8 @@
</configurations>
<dependencies>
<dependency org="emc" name="optimizer" rev="1.612" conf="osx106_x86->osx106_x86_32;rhel5_x86_64->rhel5_x86_64;suse10_x86_64->suse10_x86_64;suse11_x86_64->suse10_x86_64" />
<dependency org="emc" name="libgpos" rev="1.129" conf="osx106_x86->osx106_x86_32;rhel5_x86_64->rhel5_x86_64;suse10_x86_64->suse10_x86_64;suse11_x86_64->suse10_x86_64" />
<dependency org="emc" name="optimizer" rev="1.614" conf="osx106_x86->osx106_x86_32;rhel5_x86_64->rhel5_x86_64;suse10_x86_64->suse10_x86_64;suse11_x86_64->suse10_x86_64" />
<dependency org="emc" name="libgpos" rev="1.131" conf="osx106_x86->osx106_x86_32;rhel5_x86_64->rhel5_x86_64;suse10_x86_64->suse10_x86_64;suse11_x86_64->suse10_x86_64" />
<dependency org="xerces" name="xerces-c" rev="3.1.1-p1" conf="osx106_x86->osx106_x86_32;rhel5_x86_64->rhel5_x86_64;suse10_x86_64->suse10_x86_64;suse11_x86_64->suse10_x86_64" />
<dependency org="OpenSSL" name="openssl" rev="0.9.8zg" conf="osx106_x86->osx105_x86;aix5_ppc_32->aix5_ppc_32;aix5_ppc_64->aix5_ppc_64;hpux_ia64->hpux_ia64;rhel5_x86_32->rhel5_x86_32;rhel5_x86_64->rhel5_x86_64;rhel6_x86_64->rhel6_x86_64;sol10_x86_32->sol10_x86_32;sol10_x86_64->sol10_x86_64;sol10_sparc_32->sol10_sparc_32;sol10_sparc_64->sol10_sparc_64;suse10_x86_64->suse10_x86_64;suse11_x86_64->suse11_x86_64" />
<dependency org="emc" name="DDBoostSDK" rev="3.0.0.3-446710" conf="rhel5_x86_64->rhel5_x86_64" />
......
//---------------------------------------------------------------------------
// Greenplum Database
// Copyright (C) 2013 EMC Corp.
//
// @filename:
// Allocators.h
//
// @doc:
// Memory allocation/deallocation operators
//
// @test:
//
//---------------------------------------------------------------------------
#include "gpopt/Allocators.h"
#include "gpos/memory/CMemoryPoolManager.h"
using namespace gpos;
//---------------------------------------------------------------------------
// @function:
// new
//
// @doc:
// Overloaded throwing global singleton new operator
//
//---------------------------------------------------------------------------
void* operator new
(
SIZE_T cSize
)
throw(BAD_ALLOC)
{
return NewImpl
(
CMemoryPoolManager::Pmpm()->PmpGlobal(),
cSize,
NULL, // szFileName
0, // ulLine
IMemoryPool::EatSingleton
);
}
//---------------------------------------------------------------------------
// @function:
// new[]
//
// @doc:
// Overloaded throwing global array new operator
//
//---------------------------------------------------------------------------
void* operator new []
(
SIZE_T cSize
)
throw(BAD_ALLOC)
{
return NewImpl
(
CMemoryPoolManager::Pmpm()->PmpGlobal(),
cSize,
NULL, // szFileName
0, // ulLine
IMemoryPool::EatArray
);
}
//---------------------------------------------------------------------------
// @function:
// new
//
// @doc:
// Overloaded non-throwing global singleton new operator
//
//---------------------------------------------------------------------------
void *operator new
(
SIZE_T cSize,
const NO_THROW &
)
throw()
{
return NewImplNoThrow
(
CMemoryPoolManager::Pmpm()->PmpGlobal(),
cSize,
NULL, // szFileName
0, // ulLine
IMemoryPool::EatSingleton
);
}
//---------------------------------------------------------------------------
// @function:
// new
//
// @doc:
// Overloaded non-throwing global array new operator
//
//---------------------------------------------------------------------------
void* operator new []
(
SIZE_T cSize,
const NO_THROW &
)
throw()
{
return NewImplNoThrow
(
CMemoryPoolManager::Pmpm()->PmpGlobal(),
cSize,
NULL, // szFileName
0, // ulLine
IMemoryPool::EatArray
);
}
//---------------------------------------------------------------------------
// @function:
// new
//
// @doc:
// overloaded placement new operator
//
//---------------------------------------------------------------------------
void *
operator new
(
SIZE_T cSize,
IMemoryPool *pmp,
const CHAR *szFilename,
ULONG ulLine
)
{
return NewImpl(pmp, cSize, szFilename, ulLine, IMemoryPool::EatSingleton);
}
//---------------------------------------------------------------------------
// @function:
// new[]
//
// @doc:
// Overload for array allocation; raises OOM exception if
// unable to allocate
//
//---------------------------------------------------------------------------
void *
operator new []
(
SIZE_T cSize,
IMemoryPool *pmp,
const CHAR *szFilename,
ULONG ulLine
)
{
return NewImpl(pmp, cSize, szFilename, ulLine, IMemoryPool::EatArray);
}
//---------------------------------------------------------------------------
// @function:
// delete
//
// @doc:
// Overload for singleton deletion
//
//---------------------------------------------------------------------------
void
operator delete
(
void *pv
)
throw()
{
DeleteImpl(pv, IMemoryPool::EatSingleton);
}
//---------------------------------------------------------------------------
// @function:
// delete
//
// @doc:
// Placement delete; only used if constructor throws
//
//---------------------------------------------------------------------------
void
operator delete
(
void *pv,
IMemoryPool *, // pmp,
const CHAR *, // szFilename,
ULONG // ulLine
)
{
DeleteImpl(pv, IMemoryPool::EatSingleton);
}
//---------------------------------------------------------------------------
// @function:
// delete []
//
// @doc:
// Overload for array deletion
//
//---------------------------------------------------------------------------
void
operator delete []
(
void *pv
)
throw()
{
DeleteImpl(pv, IMemoryPool::EatArray);
}
//---------------------------------------------------------------------------
// @function:
// delete []
//
// @doc:
// Placement delete []; only used if constructor throws
//
//---------------------------------------------------------------------------
void
operator delete []
(
void *pv,
IMemoryPool *, // pmp,
const CHAR *, // szFilename,
ULONG // ulLine
)
{
DeleteImpl(pv, IMemoryPool::EatArray);
}
//---------------------------------------------------------------------------
// @function:
// delete
//
// @doc:
// Non-throwing singleton delete operator
//
//---------------------------------------------------------------------------
void
operator delete
(
void* pv,
const gpos::NO_THROW&
)
throw()
{
DeleteImplNoThrow(pv, IMemoryPool::EatSingleton);
}
//---------------------------------------------------------------------------
// @function:
// delete
//
// @doc:
// Non-throwing array delete operator
//
//---------------------------------------------------------------------------
void
operator delete []
(
void* pv,
const gpos::NO_THROW&
)
throw()
{
DeleteImplNoThrow(pv, IMemoryPool::EatArray);
}
......@@ -13,7 +13,6 @@
//
//---------------------------------------------------------------------------
#include "gpopt/Allocators.h"
#include "gpopt/CGPOptimizer.h"
#include "gpopt/utils/COptTasks.h"
......
......@@ -19,12 +19,12 @@ include $(top_builddir)/src/backend/gpopt/gpopt.mk
SUBDIRS = config translate relcache utils
OBJS = Allocators.o CGPOptimizer.o gpdbwrappers.o
OBJS = CGPOptimizer.o gpdbwrappers.o
include $(top_srcdir)/src/backend/common.mk
ifeq (Darwin, $(UNAME))
LDLIBFLAGS = -dynamiclib -flat_namespace -undefined dynamic_lookup -Wl,-unexported_symbols_list -Wl,unexported_symbols_list.txt
LDLIBFLAGS = -dynamiclib -flat_namespace -undefined dynamic_lookup -Wl
endif
ifeq (Linux, $(UNAME))
......
......@@ -373,7 +373,7 @@ CConfigParamMapping::PbsPack
ULONG ulXforms // number of available xforms
)
{
CBitSet *pbs = New(pmp) CBitSet(pmp, EopttraceSentinel);
CBitSet *pbs = GPOS_NEW(pmp) CBitSet(pmp, EopttraceSentinel);
for (ULONG ul = 0; ul < GPOS_ARRAY_SIZE(m_elem); ul++)
{
......
......@@ -858,7 +858,7 @@ Query *
gpdb::PqueryFlattenJoinAliasVar
(
Query *pquery,
ULONG ulQueryLevel
gpos::ULONG ulQueryLevel
)
{
GP_WRAP_START;
......@@ -2372,7 +2372,7 @@ gpdb::Pdistrpolicy
return NULL;
}
BOOL
gpos::BOOL
gpdb::FChildPartDistributionMismatch
(
Relation rel
......@@ -2386,7 +2386,7 @@ gpdb::FChildPartDistributionMismatch
return false;
}
BOOL
gpos::BOOL
gpdb::FChildTriggers
(
Oid oid,
......@@ -2969,7 +2969,7 @@ gpdb::OptTasksFaultInjector
return FaultInjectorTypeNotSpecified;
}
ULONG
gpos::ULONG
gpdb::UlLeafPartitions
(
Oid oidRelation
......
......@@ -44,13 +44,13 @@ CCTEListEntry::CCTEListEntry
{
GPOS_ASSERT(NULL != pcte && NULL != pdxlnCTEProducer);
m_phmszcteinfo = New(pmp) HMSzCTEInfo(pmp);
m_phmszcteinfo = GPOS_NEW(pmp) HMSzCTEInfo(pmp);
Query *pqueryCTE = (Query*) pcte->ctequery;
#ifdef GPOS_DEBUG
BOOL fResult =
#endif
m_phmszcteinfo->FInsert(pcte->ctename, New(pmp) SCTEProducerInfo(pdxlnCTEProducer, pqueryCTE->targetList));
m_phmszcteinfo->FInsert(pcte->ctename, GPOS_NEW(pmp) SCTEProducerInfo(pdxlnCTEProducer, pqueryCTE->targetList));
GPOS_ASSERT(fResult);
}
......@@ -77,7 +77,7 @@ CCTEListEntry::CCTEListEntry
GPOS_ASSERT(NULL != pdrgpdxln);
GPOS_ASSERT(pdrgpdxln->UlLength() == gpdb::UlListLength(plCTE));
m_phmszcteinfo = New(pmp) HMSzCTEInfo(pmp);
m_phmszcteinfo = GPOS_NEW(pmp) HMSzCTEInfo(pmp);
const ULONG ulCTEs = pdrgpdxln->UlLength();
for (ULONG ul = 0; ul < ulCTEs; ul++)
......@@ -89,7 +89,7 @@ CCTEListEntry::CCTEListEntry
#ifdef GPOS_DEBUG
BOOL fResult =
#endif
m_phmszcteinfo->FInsert(pcte->ctename, New(pmp) SCTEProducerInfo(pdxlnCTEProducer, pqueryCTE->targetList));
m_phmszcteinfo->FInsert(pcte->ctename, GPOS_NEW(pmp) SCTEProducerInfo(pdxlnCTEProducer, pqueryCTE->targetList));
GPOS_ASSERT(fResult);
GPOS_ASSERT(NULL != m_phmszcteinfo->PtLookup(pcte->ctename));
......@@ -166,7 +166,7 @@ CCTEListEntry::AddCTEProducer
#ifdef GPOS_DEBUG
BOOL fResult =
#endif
m_phmszcteinfo->FInsert(pcte->ctename, New(pmp) SCTEProducerInfo(pdxlnCTEProducer, pqueryCTE->targetList));
m_phmszcteinfo->FInsert(pcte->ctename, GPOS_NEW(pmp) SCTEProducerInfo(pdxlnCTEProducer, pqueryCTE->targetList));
GPOS_ASSERT(fResult);
}
......
......@@ -55,9 +55,9 @@ CContextDXLToPlStmt::CContextDXLToPlStmt
m_pintocl(NULL),
m_pdistrpolicy(NULL)
{
m_phmuldxltrctxSharedScan = New(m_pmp) HMUlDxltrctx(m_pmp);
m_phmulcteconsumerinfo = New(m_pmp) HMUlCTEConsumerInfo(m_pmp);
m_pdrgpulNumSelectors = New(m_pmp) DrgPul(m_pmp);
m_phmuldxltrctxSharedScan = GPOS_NEW(m_pmp) HMUlDxltrctx(m_pmp);
m_phmulcteconsumerinfo = GPOS_NEW(m_pmp) HMUlCTEConsumerInfo(m_pmp);
m_pdrgpulNumSelectors = GPOS_NEW(m_pmp) DrgPul(m_pmp);
}
//---------------------------------------------------------------------------
......@@ -171,11 +171,11 @@ CContextDXLToPlStmt::AddCTEConsumerInfo
List *plPlanCTE = ListMake1(pshscan);
ULONG *pulKey = New(m_pmp) ULONG(ulCteId);
ULONG *pulKey = GPOS_NEW(m_pmp) ULONG(ulCteId);
#ifdef GPOS_DEBUG
BOOL fResult =
#endif
m_phmulcteconsumerinfo->FInsert(pulKey, New(m_pmp) SCTEConsumerInfo(plPlanCTE));
m_phmulcteconsumerinfo->FInsert(pulKey, GPOS_NEW(m_pmp) SCTEConsumerInfo(plPlanCTE));
GPOS_ASSERT(fResult);
}
......@@ -297,7 +297,7 @@ CContextDXLToPlStmt::IncrementPartitionSelectors
const ULONG ulLen = m_pdrgpulNumSelectors->UlLength();
for (ULONG ul = ulLen; ul <= ulScanId; ul++)
{
ULONG *pul = New(m_pmp) ULONG(0);
ULONG *pul = GPOS_NEW(m_pmp) ULONG(0);
m_pdrgpulNumSelectors->Append(pul);
}
......@@ -396,7 +396,7 @@ CContextDXLToPlStmt::AddSharedScanTranslationContext
CDXLTranslateContext *pdxltrctx
)
{
ULONG *pul = New(m_pmp) ULONG(ulSpoolId);
ULONG *pul = GPOS_NEW(m_pmp) ULONG(ulSpoolId);
#ifdef GPOS_DEBUG
BOOL fInserted =
......
......@@ -36,8 +36,8 @@ CDXLTranslateContext::CDXLTranslateContext
m_fChildAggNode(fChildAggNode)
{
// initialize hash table
m_phmulte = New(m_pmp) HMUlTe(m_pmp);
m_phmcolparam = New(m_pmp) HMColParam(m_pmp);
m_phmulte = GPOS_NEW(m_pmp) HMUlTe(m_pmp);
m_phmcolparam = GPOS_NEW(m_pmp) HMColParam(m_pmp);
}
//---------------------------------------------------------------------------
......@@ -58,8 +58,8 @@ CDXLTranslateContext::CDXLTranslateContext
m_pmp(pmp),
m_fChildAggNode(fChildAggNode)
{
m_phmulte = New(m_pmp) HMUlTe(m_pmp);
m_phmcolparam = New(m_pmp) HMColParam(m_pmp);
m_phmulte = GPOS_NEW(m_pmp) HMUlTe(m_pmp);
m_phmcolparam = GPOS_NEW(m_pmp) HMColParam(m_pmp);
CopyParamHashmap(phmOriginal);
}
......@@ -112,7 +112,7 @@ CDXLTranslateContext::CopyParamHashmap
CMappingElementColIdParamId *pmecolidparamid = const_cast<CMappingElementColIdParamId *>(hashmapiter.Pt());
const ULONG ulColId = pmecolidparamid->UlColId();
ULONG *pulKey = New(m_pmp) ULONG(ulColId);
ULONG *pulKey = GPOS_NEW(m_pmp) ULONG(ulColId);
pmecolidparamid->AddRef();
m_phmcolparam->FInsert(pulKey, pmecolidparamid);
}
......@@ -170,14 +170,14 @@ CDXLTranslateContext::InsertMapping
)
{
// copy key
ULONG *pulKey = New(m_pmp) ULONG(ulColId);
ULONG *pulKey = GPOS_NEW(m_pmp) ULONG(ulColId);
// insert colid->target entry mapping in the hash map
BOOL fResult = m_phmulte->FInsert(pulKey, pte);
if (!fResult)
{
delete pulKey;
GPOS_DELETE(pulKey);
}
}
......@@ -197,7 +197,7 @@ CDXLTranslateContext::FInsertParamMapping
)
{
// copy key
ULONG *pulKey = New(m_pmp) ULONG(ulColId);
ULONG *pulKey = GPOS_NEW(m_pmp) ULONG(ulColId);
// insert colid->target entry mapping in the hash map
return m_phmcolparam->FInsert(pulKey, pmecolidparamid);
......
......@@ -37,7 +37,7 @@ CDXLTranslateContextBaseTable::CDXLTranslateContextBaseTable
m_iRel(0)
{
// initialize hash table
m_phmuli = New(m_pmp) HMUlI(m_pmp);
m_phmuli = GPOS_NEW(m_pmp) HMUlI(m_pmp);
}
//---------------------------------------------------------------------------
......@@ -162,8 +162,8 @@ CDXLTranslateContextBaseTable::FInsertMapping
)
{
// copy key and value
ULONG *pulKey = New(m_pmp) ULONG(ulDXLColId);
INT *piValue = New(m_pmp) INT(iAttno);
ULONG *pulKey = GPOS_NEW(m_pmp) ULONG(ulDXLColId);
INT *piValue = GPOS_NEW(m_pmp) INT(iAttno);
// insert colid-idx mapping in the hash map
......
......@@ -88,10 +88,10 @@ CMappingColIdVarQuery::FInsertMapping
GPOS_ASSERT(NULL == m_ptemap->PtLookup(&ulColId));
// create mapping element
CMappingElementColIdTE *pmappingelement = New (m_pmp) CMappingElementColIdTE(ulColId, m_ulQueryLevel, pte);
CMappingElementColIdTE *pmappingelement = GPOS_NEW(m_pmp) CMappingElementColIdTE(ulColId, m_ulQueryLevel, pte);
// insert ColId->TE mapping
ULONG *pulKey1 = New(m_pmp) ULONG(ulColId);
ULONG *pulKey1 = GPOS_NEW(m_pmp) ULONG(ulColId);
BOOL fRes1 = m_ptemap->FInsert(pulKey1, pmappingelement);
GPOS_ASSERT(fRes1);
......
......@@ -31,7 +31,7 @@ CMappingParamIdScalarId::CMappingParamIdScalarId
:
m_pmp(pmp)
{
m_phmps = New(m_pmp) HMParamScalar(m_pmp);
m_phmps = GPOS_NEW(m_pmp) HMParamScalar(m_pmp);
}
//---------------------------------------------------------------------------
......@@ -68,7 +68,7 @@ CMappingParamIdScalarId::FInsertMapping
)
{
// copy key
ULONG *pulKey = New(m_pmp) ULONG(ulParamId);
ULONG *pulKey = GPOS_NEW(m_pmp) ULONG(ulParamId);
// insert mapping in the hash map
return m_phmps->FInsert(pulKey, pscid);
......
......@@ -45,7 +45,7 @@ CMappingVarColId::CMappingVarColId
:
m_pmp(pmp)
{
m_pmvcmap = New(m_pmp) CMVCMap(m_pmp);
m_pmvcmap = GPOS_NEW(m_pmp) CMVCMap(m_pmp);
}
//---------------------------------------------------------------------------
......@@ -80,7 +80,7 @@ CMappingVarColId::Pgpdbattoptcol
ulVarNo = OUTER;
}
CGPDBAttInfo *pgpdbattinfo = New(m_pmp) CGPDBAttInfo(ulAbsQueryLevel, ulVarNo, pvar->varattno);
CGPDBAttInfo *pgpdbattinfo = GPOS_NEW(m_pmp) CGPDBAttInfo(ulAbsQueryLevel, ulVarNo, pvar->varattno);
CGPDBAttOptCol *pgpdbattoptcol = m_pmvcmap->PtLookup(pgpdbattinfo);
if (NULL == pgpdbattoptcol)
......@@ -156,14 +156,14 @@ CMappingVarColId::Insert
GPOS_ASSERT(ulVarNo > 0);
// create key
CGPDBAttInfo *pgpdbattinfo = New(m_pmp) CGPDBAttInfo(ulQueryLevel, ulVarNo, iAttNo);
CGPDBAttInfo *pgpdbattinfo = GPOS_NEW(m_pmp) CGPDBAttInfo(ulQueryLevel, ulVarNo, iAttNo);
// create value
COptColInfo *poptcolinfo = New(m_pmp) COptColInfo(ulColId, pstrColName);
COptColInfo *poptcolinfo = GPOS_NEW(m_pmp) COptColInfo(ulColId, pstrColName);
// key is part of value, bump up refcount
pgpdbattinfo->AddRef();
CGPDBAttOptCol *pgpdbattoptcol = New(m_pmp) CGPDBAttOptCol(pgpdbattinfo, poptcolinfo);
CGPDBAttOptCol *pgpdbattoptcol = GPOS_NEW(m_pmp) CGPDBAttOptCol(pgpdbattinfo, poptcolinfo);
#ifdef GPOS_DEBUG
BOOL fResult =
......@@ -286,7 +286,7 @@ CMappingVarColId::Load
);
ul ++;
delete(pstrColName);
GPOS_DELETE(pstrColName);
}
}
......@@ -463,7 +463,7 @@ CMappingVarColId::PmapvarcolidCopy
)
const
{
CMappingVarColId *pmapvarcolid = New(m_pmp) CMappingVarColId(m_pmp);
CMappingVarColId *pmapvarcolid = GPOS_NEW(m_pmp) CMappingVarColId(m_pmp);
// iterate over full map
CMVCMapIter mvcmi(this->m_pmvcmap);
......@@ -476,10 +476,10 @@ CMappingVarColId::PmapvarcolidCopy
if (pgpdbattinfo->UlQueryLevel() <= ulQueryLevel)
{
// include all variables defined at same query level or before
CGPDBAttInfo *pgpdbattinfoNew = New(m_pmp) CGPDBAttInfo(pgpdbattinfo->UlQueryLevel(), pgpdbattinfo->UlVarNo(), pgpdbattinfo->IAttNo());
COptColInfo *poptcolinfoNew = New(m_pmp) COptColInfo(poptcolinfo->UlColId(), New(m_pmp) CWStringConst(m_pmp, poptcolinfo->PstrColName()->Wsz()));
CGPDBAttInfo *pgpdbattinfoNew = GPOS_NEW(m_pmp) CGPDBAttInfo(pgpdbattinfo->UlQueryLevel(), pgpdbattinfo->UlVarNo(), pgpdbattinfo->IAttNo());
COptColInfo *poptcolinfoNew = GPOS_NEW(m_pmp) COptColInfo(poptcolinfo->UlColId(), GPOS_NEW(m_pmp) CWStringConst(m_pmp, poptcolinfo->PstrColName()->Wsz()));
pgpdbattinfoNew->AddRef();
CGPDBAttOptCol *pgpdbattoptcolNew = New(m_pmp) CGPDBAttOptCol(pgpdbattinfoNew, poptcolinfoNew);
CGPDBAttOptCol *pgpdbattoptcolNew = GPOS_NEW(m_pmp) CGPDBAttOptCol(pgpdbattinfoNew, poptcolinfoNew);
// insert into hashmap
#ifdef GPOS_DEBUG
......@@ -508,7 +508,7 @@ CMappingVarColId::PmapvarcolidCopy
)
const
{
CMappingVarColId *pmapvarcolid = New(pmp) CMappingVarColId(pmp);
CMappingVarColId *pmapvarcolid = GPOS_NEW(pmp) CMappingVarColId(pmp);
// iterate over full map
CMVCMapIter mvcmi(this->m_pmvcmap);
......@@ -518,10 +518,10 @@ CMappingVarColId::PmapvarcolidCopy
const CGPDBAttInfo *pgpdbattinfo = pgpdbattoptcol->Pgpdbattinfo();
const COptColInfo *poptcolinfo = pgpdbattoptcol->Poptcolinfo();
CGPDBAttInfo *pgpdbattinfoNew = New(pmp) CGPDBAttInfo(pgpdbattinfo->UlQueryLevel(), pgpdbattinfo->UlVarNo(), pgpdbattinfo->IAttNo());
COptColInfo *poptcolinfoNew = New(pmp) COptColInfo(poptcolinfo->UlColId(), New(pmp) CWStringConst(pmp, poptcolinfo->PstrColName()->Wsz()));
CGPDBAttInfo *pgpdbattinfoNew = GPOS_NEW(pmp) CGPDBAttInfo(pgpdbattinfo->UlQueryLevel(), pgpdbattinfo->UlVarNo(), pgpdbattinfo->IAttNo());
COptColInfo *poptcolinfoNew = GPOS_NEW(pmp) COptColInfo(poptcolinfo->UlColId(), GPOS_NEW(pmp) CWStringConst(pmp, poptcolinfo->PstrColName()->Wsz()));
pgpdbattinfoNew->AddRef();
CGPDBAttOptCol *pgpdbattoptcolNew = New(pmp) CGPDBAttOptCol(pgpdbattinfoNew, poptcolinfoNew);
CGPDBAttOptCol *pgpdbattoptcolNew = GPOS_NEW(pmp) CGPDBAttOptCol(pgpdbattinfoNew, poptcolinfoNew);
// insert into hashmap
#ifdef GPOS_DEBUG
......@@ -558,7 +558,7 @@ CMappingVarColId::PmapvarcolidRemap
// construct a mapping old cols -> new cols
HMUlUl *phmulul = CTranslatorUtils::PhmululMap(pmp, pdrgpulOld, pdrgpulNew);
CMappingVarColId *pmapvarcolid = New(pmp) CMappingVarColId(pmp);
CMappingVarColId *pmapvarcolid = GPOS_NEW(pmp) CMappingVarColId(pmp);
CMVCMapIter mvcmi(this->m_pmvcmap);
while (mvcmi.FAdvance())
......@@ -567,7 +567,7 @@ CMappingVarColId::PmapvarcolidRemap
const CGPDBAttInfo *pgpdbattinfo = pgpdbattoptcol->Pgpdbattinfo();
const COptColInfo *poptcolinfo = pgpdbattoptcol->Poptcolinfo();
CGPDBAttInfo *pgpdbattinfoNew = New(pmp) CGPDBAttInfo(pgpdbattinfo->UlQueryLevel(), pgpdbattinfo->UlVarNo(), pgpdbattinfo->IAttNo());
CGPDBAttInfo *pgpdbattinfoNew = GPOS_NEW(pmp) CGPDBAttInfo(pgpdbattinfo->UlQueryLevel(), pgpdbattinfo->UlVarNo(), pgpdbattinfo->IAttNo());
ULONG ulColId = poptcolinfo->UlColId();
ULONG *pulColIdNew = phmulul->PtLookup(&ulColId);
if (NULL != pulColIdNew)
......@@ -575,9 +575,9 @@ CMappingVarColId::PmapvarcolidRemap
ulColId = *pulColIdNew;
}
COptColInfo *poptcolinfoNew = New(pmp) COptColInfo(ulColId, New(pmp) CWStringConst(pmp, poptcolinfo->PstrColName()->Wsz()));
COptColInfo *poptcolinfoNew = GPOS_NEW(pmp) COptColInfo(ulColId, GPOS_NEW(pmp) CWStringConst(pmp, poptcolinfo->PstrColName()->Wsz()));
pgpdbattinfoNew->AddRef();
CGPDBAttOptCol *pgpdbattoptcolNew = New(pmp) CGPDBAttOptCol(pgpdbattinfoNew, poptcolinfoNew);
CGPDBAttOptCol *pgpdbattoptcolNew = GPOS_NEW(pmp) CGPDBAttOptCol(pgpdbattinfoNew, poptcolinfoNew);
#ifdef GPOS_DEBUG
BOOL fResult =
......
......@@ -863,7 +863,7 @@ CQueryMutators::PteAggregateOrPercentileExpr
{
Aggref *paggref = (Aggref*) pnode;
CMDIdGPDB *pmdidAgg = New(pmp) CMDIdGPDB(paggref->aggfnoid);
CMDIdGPDB *pmdidAgg = GPOS_NEW(pmp) CMDIdGPDB(paggref->aggfnoid);
const IMDAggregate *pmdagg = pmda->Pmdagg(pmdidAgg);
pmdidAgg->Release();
......@@ -1802,7 +1802,7 @@ CQueryMutators::PnodeWindowPrLMutator
WindowRef *pwindowref = (WindowRef*) gpdb::PvCopyObject(pnode);
// get the function name and add it to the target list
CMDIdGPDB *pmdidFunc = New(pctxWindowPrLMutator->m_pmp) CMDIdGPDB(pwindowref->winfnoid);
CMDIdGPDB *pmdidFunc = GPOS_NEW(pctxWindowPrLMutator->m_pmp) CMDIdGPDB(pwindowref->winfnoid);
const CWStringConst *pstr = CMDAccessorUtils::PstrWindowFuncName(pctxWindowPrLMutator->m_pmda, pmdidFunc);
pmdidFunc->Release();
......
......@@ -42,7 +42,7 @@ CStateDXLToQuery::CStateDXLToQuery
m_plTEColumns(NIL),
m_plColumnNames(NIL)
{
m_pdrgpulColIds = New(m_pmp) DrgPul(m_pmp);
m_pdrgpulColIds = GPOS_NEW(m_pmp) DrgPul(m_pmp);
}
......@@ -80,7 +80,7 @@ CStateDXLToQuery::AddOutputColumnEntry
GPOS_ASSERT((ULONG) gpdb::UlListLength(m_plTEColumns) == m_pdrgpulColIds->UlLength());
m_plTEColumns = gpdb::PlAppendElement(m_plTEColumns, pte);
m_plColumnNames = gpdb::PlAppendElement(m_plColumnNames, szColumnName);
m_pdrgpulColIds->Append(New(m_pmp) ULONG(ulColId));
m_pdrgpulColIds->Append(GPOS_NEW(m_pmp) ULONG(ulColId));
}
......
......@@ -118,7 +118,7 @@ CTranslatorDXLToPlStmt::CTranslatorDXLToPlStmt
m_ulSegments(ulSegments),
m_ulPartitionSelectorCounter(0)
{
m_pdxlsctranslator = New (m_pmp) CTranslatorDXLToScalar(m_pmp, m_pmda, m_ulSegments);
m_pdxlsctranslator = GPOS_NEW(m_pmp) CTranslatorDXLToScalar(m_pmp, m_pmda, m_ulSegments);
InitTranslators();
}
......@@ -132,7 +132,7 @@ CTranslatorDXLToPlStmt::CTranslatorDXLToPlStmt
//---------------------------------------------------------------------------
CTranslatorDXLToPlStmt::~CTranslatorDXLToPlStmt()
{
delete m_pdxlsctranslator;
GPOS_DELETE(m_pdxlsctranslator);
}
//---------------------------------------------------------------------------
......@@ -218,7 +218,7 @@ CTranslatorDXLToPlStmt::PplstmtFromDXL
CDXLTranslateContext dxltrctx(m_pmp, false);
DrgPdxltrctx *pdrgpdxltrctxPrevSiblings = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctxPrevSiblings = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
Plan *pplan = PplFromDXL(pdxln, &dxltrctx, NULL, pdrgpdxltrctxPrevSiblings);
pdrgpdxltrctxPrevSiblings->Release();
......@@ -1439,7 +1439,7 @@ CTranslatorDXLToPlStmt::TranslateIndexConditions
)
{
// array of index qual info
DrgPindexqualinfo *pdrgpindexqualinfo = New(m_pmp) DrgPindexqualinfo(m_pmp);
DrgPindexqualinfo *pdrgpindexqualinfo = GPOS_NEW(m_pmp) DrgPindexqualinfo(m_pmp);
// build colid->var mapping
CMappingColIdVarPlStmt mapcidvarplstmt(m_pmp, pdxltrctxbt, pdrgpdxltrctxPrevSiblings, pdxltrctxOut, m_pctxdxltoplstmt, pplanParent);
......@@ -1514,7 +1514,7 @@ CTranslatorDXLToPlStmt::TranslateIndexConditions
GPOS_ASSERT(!fRecheck);
// create index qual
pdrgpindexqualinfo->Append(New(m_pmp) CIndexQualInfo(iAttno, (OpExpr *)pexprIndexCond, (OpExpr *)pexprOrigIndexCond, (StrategyNumber) iSN, oidIndexSubtype));
pdrgpindexqualinfo->Append(GPOS_NEW(m_pmp) CIndexQualInfo(iAttno, (OpExpr *)pexprIndexCond, (OpExpr *)pexprOrigIndexCond, (StrategyNumber) iSN, oidIndexSubtype));
}
// the index quals much be ordered by attribute number
......@@ -1614,7 +1614,7 @@ CTranslatorDXLToPlStmt::PlimitFromDXLLimit
// NOTE: Limit node has only the left plan while the right plan is left empty
Plan *pplanLeft = PplFromDXL(pdxlnChildPlan, &dxltrctxLeft, pplan, pdrgpdxltrctxPrevSiblings);
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(&dxltrctxLeft);
pplan->targetlist = PlTargetListFromProjList
......@@ -1709,12 +1709,12 @@ CTranslatorDXLToPlStmt::PhjFromDXLHJ
Plan *pplanLeft = PplFromDXL(pdxlnLeft, &dxltrctxLeft, pplan, pdrgpdxltrctxPrevSiblings);
// the right side of the join is the one where the hash phase is done
DrgPdxltrctx *pdrgpdxltrctxWithSiblings = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctxWithSiblings = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctxWithSiblings->Append(&dxltrctxLeft);
pdrgpdxltrctxWithSiblings->AppendArray(pdrgpdxltrctxPrevSiblings);
Plan *pplanRight = (Plan*) PhhashFromDXL(pdxlnRight, &dxltrctxRight, pplan, pdrgpdxltrctxWithSiblings);
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(const_cast<CDXLTranslateContext*>(&dxltrctxLeft));
pdrgpdxltrctx->Append(const_cast<CDXLTranslateContext*>(&dxltrctxRight));
// translate proj list and filter
......@@ -2063,7 +2063,7 @@ CTranslatorDXLToPlStmt::PnljFromDXLNLJ
// because inner child depends on variables coming from outer child
pj->prefetch_inner = !pdxlnlj->FIndexNLJ();
DrgPdxltrctx *pdrgpdxltrctxWithSiblings = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctxWithSiblings = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
Plan *pplanLeft = NULL;
Plan *pplanRight = NULL;
if (pdxlnlj->FIndexNLJ())
......@@ -2090,7 +2090,7 @@ CTranslatorDXLToPlStmt::PnljFromDXLNLJ
// translate left child after right child translation is complete
pplanLeft = PplFromDXL(pdxlnLeft, &dxltrctxLeft, pplan, pdrgpdxltrctxWithSiblings);
}
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(&dxltrctxLeft);
pdrgpdxltrctx->Append(&dxltrctxRight);
......@@ -2186,13 +2186,13 @@ CTranslatorDXLToPlStmt::PmjFromDXLMJ
Plan *pplanLeft = PplFromDXL(pdxlnLeft, &dxltrctxLeft, pplan, pdrgpdxltrctxPrevSiblings);
DrgPdxltrctx *pdrgpdxltrctxWithSiblings = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctxWithSiblings = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctxWithSiblings->Append(&dxltrctxLeft);
pdrgpdxltrctxWithSiblings->AppendArray(pdrgpdxltrctxPrevSiblings);
Plan *pplanRight = PplFromDXL(pdxlnRight, &dxltrctxRight, pplan, pdrgpdxltrctxWithSiblings);
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(const_cast<CDXLTranslateContext*>(&dxltrctxLeft));
pdrgpdxltrctx->Append(const_cast<CDXLTranslateContext*>(&dxltrctxRight));
......@@ -2387,7 +2387,7 @@ CTranslatorDXLToPlStmt::PplanMotionFromDXLMotion
Plan *pplanChild = PplFromDXL(pdxlnChild, &dxltrctxChild, pplan, pdrgpdxltrctxPrevSiblings);
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(const_cast<CDXLTranslateContext*>(&dxltrctxChild));
// translate proj list and filter
......@@ -2586,7 +2586,7 @@ CTranslatorDXLToPlStmt::PplanResultHashFilters
Plan *pplanChild = PplFromDXL(pdxlnChild, &dxltrctxChild, pplan, pdrgpdxltrctxPrevSiblings);
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(const_cast<CDXLTranslateContext*>(&dxltrctxChild));
// translate proj list and filter
......@@ -2717,7 +2717,7 @@ CTranslatorDXLToPlStmt::PaggFromDXLAgg
Plan *pplanChild = PplFromDXL(pdxlnChild, &dxltrctxChild, pplan, pdrgpdxltrctxPrevSiblings);
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(const_cast<CDXLTranslateContext*>(&dxltrctxChild));
// translate proj list and filter
......@@ -2837,7 +2837,7 @@ CTranslatorDXLToPlStmt::PwindowFromDXLWindow
CDXLTranslateContext dxltrctxChild(m_pmp, true, pdxltrctxOut->PhmColParam());
Plan *pplanChild = PplFromDXL(pdxlnChild, &dxltrctxChild, pplan, pdrgpdxltrctxPrevSiblings);
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(const_cast<CDXLTranslateContext*>(&dxltrctxChild));
// translate proj list and filter
......@@ -2952,7 +2952,7 @@ CTranslatorDXLToPlStmt::Pwindowframe
pwindowframe->exclude = CTranslatorUtils::Windowexclusion(pdxlwf->Edxlfes());
// translate the CDXLNodes representing the leading and trailing edge
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(pdxltrctxChild);
CMappingColIdVarPlStmt mapcidvarplstmt = CMappingColIdVarPlStmt
......@@ -3037,7 +3037,7 @@ CTranslatorDXLToPlStmt::PsortFromDXLSort
Plan *pplanChild = PplFromDXL(pdxlnChild, &dxltrctxChild, pplan, pdrgpdxltrctxPrevSiblings);
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(const_cast<CDXLTranslateContext*>(&dxltrctxChild));
// translate proj list and filter
......@@ -3283,7 +3283,7 @@ CTranslatorDXLToPlStmt::PresultFromDXLResult
List *plQuals = NULL;
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(const_cast<CDXLTranslateContext*>(&dxltrctxChild));
// translate proj list and filter
......@@ -3364,8 +3364,8 @@ CTranslatorDXLToPlStmt::PplanPartitionSelector
pplan->nMotionNodes = 0;
CDXLNode *pdxlnChild = NULL;
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctxWithSiblings = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctxWithSiblings = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
CDXLTranslateContext dxltrctxChild(m_pmp, false, pdxltrctxOut->PhmColParam());
......@@ -3596,7 +3596,7 @@ CTranslatorDXLToPlStmt::PappendFromDXLAppend
pplan->targetlist = gpdb::PlAppendElement(pplan->targetlist, pte);
}
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(const_cast<CDXLTranslateContext*>(pdxltrctxOut));
// translate filter
......@@ -3665,7 +3665,7 @@ CTranslatorDXLToPlStmt::PmatFromDXLMaterialize
Plan *pplanChild = PplFromDXL(pdxlnChild, &dxltrctxChild, pplan, pdrgpdxltrctxPrevSiblings);
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(const_cast<CDXLTranslateContext*>(&dxltrctxChild));
// translate proj list and filter
......@@ -3757,7 +3757,7 @@ CTranslatorDXLToPlStmt::PshscanFromDXLSharedScan
{
// translate shared scan child
CDXLNode *pdxlnChild = (*pdxlnSharedScan)[EdxlshscanIndexChild];
pdxltrctxChild = New(m_pmp) CDXLTranslateContext(m_pmp, false, pdxltrctxOut->PhmColParam());
pdxltrctxChild = GPOS_NEW(m_pmp) CDXLTranslateContext(m_pmp, false, pdxltrctxOut->PhmColParam());
Plan *pplanChild = PplFromDXL(pdxlnChild, pdxltrctxChild, pplan, pdrgpdxltrctxPrevSiblings);
......@@ -3779,7 +3779,7 @@ CTranslatorDXLToPlStmt::PshscanFromDXLSharedScan
CDXLNode *pdxlnPrL = (*pdxlnSharedScan)[EdxlshscanIndexProjList];
CDXLNode *pdxlnFilter = (*pdxlnSharedScan)[EdxlshscanIndexFilter];
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(pdxltrctxChild);
// translate proj list and filter
......@@ -3851,7 +3851,7 @@ CTranslatorDXLToPlStmt::PshscanFromDXLCTEProducer
Plan *pplanChild = PplFromDXL(pdxlnChild, &dxltrctxChild, pplan, pdrgpdxltrctxPrevSiblings);
GPOS_ASSERT(NULL != pplanChild && "child plan cannot be NULL");
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(&dxltrctxChild);
// translate proj list
pplan->targetlist = PlTargetListFromProjList
......@@ -4153,7 +4153,7 @@ CTranslatorDXLToPlStmt::PplanSequence
CDXLNode *pdxlnPrL = (*pdxlnSequence)[0];
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(const_cast<CDXLTranslateContext*>(&dxltrctxChild));
// translate proj list
......@@ -4411,19 +4411,19 @@ CTranslatorDXLToPlStmt::PplanDML
switch (pdxlop->EdxlDmlOpType())
{
case Edxldmldelete:
case gpdxl::Edxldmldelete:
{
m_cmdtype = CMD_DELETE;
aclmode = ACL_DELETE;
break;
}
case Edxldmlupdate:
case gpdxl::Edxldmlupdate:
{
m_cmdtype = CMD_UPDATE;
aclmode = ACL_UPDATE;
break;
}
case Edxldmlinsert:
case gpdxl::Edxldmlinsert:
{
m_cmdtype = CMD_INSERT;
aclmode = ACL_INSERT;
......@@ -4462,7 +4462,7 @@ CTranslatorDXLToPlStmt::PplanDML
Plan *pplanChild = PplFromDXL(pdxlnChild, &dxltrctxChild, pplan, pdrgpdxltrctxPrevSiblings);
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(&dxltrctxChild);
// translate proj list
......@@ -4643,7 +4643,7 @@ CTranslatorDXLToPlStmt::PplanSplit
Plan *pplanChild = PplFromDXL(pdxlnChild, &dxltrctxChild, pplan, pdrgpdxltrctxPrevSiblings);
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(&dxltrctxChild);
// translate proj list and filter
......@@ -4770,7 +4770,7 @@ CTranslatorDXLToPlStmt::PplanAssert
List *plQuals = NULL;
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(const_cast<CDXLTranslateContext*>(&dxltrctxChild));
// translate proj list
......@@ -4831,7 +4831,7 @@ CTranslatorDXLToPlStmt::PplanRowTrigger
Plan *pplanChild = PplFromDXL(pdxlnChild, &dxltrctxChild, pplan, pdrgpdxltrctxPrevSiblings);
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(&dxltrctxChild);
// translate proj list and filter
......@@ -5423,7 +5423,7 @@ CTranslatorDXLToPlStmt::TranslateHashExprList
List *plHashExpr = NIL;
List *plHashExprTypes = NIL;
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(pdxltrctxChild);
const ULONG ulArity = pdxlnHashExprList->UlArity();
......@@ -5712,7 +5712,7 @@ CTranslatorDXLToPlStmt::PplanCTAS
Plan *pplan = PplFromDXL(pdxlnChild, &dxltrctxChild, pplanParent, pdrgpdxltrctxPrevSiblings);
// fix target list to match the required column names
DrgPdxltrctx *pdrgpdxltrctx = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctx = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
pdrgpdxltrctx->Append(&dxltrctxChild);
List *plTargetList = PlTargetListFromProjList
......
......@@ -57,7 +57,7 @@ CTranslatorDXLToQuery::CTranslatorDXLToQuery
m_ulSortgrouprefCounter(0),
m_ulSegments(ulSegments)
{
m_pdxlsctranslator = New (m_pmp) CTranslatorDXLToScalar(m_pmp, m_pmda, m_ulSegments);
m_pdxlsctranslator = GPOS_NEW(m_pmp) CTranslatorDXLToScalar(m_pmp, m_pmda, m_ulSegments);
}
//---------------------------------------------------------------------------
......@@ -70,7 +70,7 @@ CTranslatorDXLToQuery::CTranslatorDXLToQuery
//---------------------------------------------------------------------------
CTranslatorDXLToQuery::~CTranslatorDXLToQuery()
{
delete m_pdxlsctranslator;
GPOS_DELETE(m_pdxlsctranslator);
}
//---------------------------------------------------------------------------
......@@ -92,7 +92,7 @@ CTranslatorDXLToQuery::PqueryFromDXL
)
{
// initialize the colid->var mapping
CMappingColIdVarQuery *pmapcidvarquery = New (m_pmp) CMappingColIdVarQuery(m_pmp, ptemap, ulQueryLevel);
CMappingColIdVarQuery *pmapcidvarquery = GPOS_NEW(m_pmp) CMappingColIdVarQuery(m_pmp, ptemap, ulQueryLevel);
GPOS_ASSERT(NULL != pdxln);
......@@ -130,7 +130,7 @@ CTranslatorDXLToQuery::PqueryFromDXL
// TODO: June 14 2011, We currently assume that all queries are of the type select.
pquery->commandType = CMD_SELECT;
delete pmapcidvarquery;
GPOS_DELETE(pmapcidvarquery);
if (m_pdxlsctranslator->FHasSubqueries())
{
......@@ -160,7 +160,7 @@ CTranslatorDXLToQuery::PqueryFromDXLSubquery
{
// initialize the colid->var mapping
CMappingColIdVarQuery *pmapcidvarquery = New (m_pmp) CMappingColIdVarQuery(m_pmp, ptemap, ulQueryLevel);
CMappingColIdVarQuery *pmapcidvarquery = GPOS_NEW (m_pmp) CMappingColIdVarQuery(m_pmp, ptemap, ulQueryLevel);
GPOS_ASSERT(NULL != pdxln);
......@@ -179,7 +179,7 @@ CTranslatorDXLToQuery::PqueryFromDXLSubquery
pquery->commandType = CMD_SELECT;
delete pmapcidvarquery;
GPOS_DELETE(pmapcidvarquery);
if (m_pdxlsctranslator->FHasSubqueries())
{
......@@ -207,7 +207,7 @@ CTranslatorDXLToQuery::SetSubqueryOutput
)
{
GPOS_ASSERT(NULL != pquery);
CStateDXLToQuery *pstatedxltoqueryOutput = New(m_pmp) CStateDXLToQuery(m_pmp);
CStateDXLToQuery *pstatedxltoqueryOutput = GPOS_NEW(m_pmp) CStateDXLToQuery(m_pmp);
List *plTE = NIL;
ULONG ulResno = 1;
......@@ -257,7 +257,7 @@ CTranslatorDXLToQuery::SetSubqueryOutput
}
pstatedxltoquery->Reload(pstatedxltoqueryOutput);
delete pstatedxltoqueryOutput;
GPOS_DELETE(pstatedxltoqueryOutput);
pquery->targetList = plTE;
}
......@@ -281,7 +281,7 @@ CTranslatorDXLToQuery::SetQueryOutput
{
GPOS_ASSERT(NULL != pdrgpdxlnQueryOutput && NULL != pquery);
CStateDXLToQuery *pstatedxltoqueryOutput = New(m_pmp) CStateDXLToQuery(m_pmp);
CStateDXLToQuery *pstatedxltoqueryOutput = GPOS_NEW(m_pmp) CStateDXLToQuery(m_pmp);
List *plTE = NIL;
......@@ -344,7 +344,7 @@ CTranslatorDXLToQuery::SetQueryOutput
}
pstatedxltoquery->Reload(pstatedxltoqueryOutput);
delete pstatedxltoqueryOutput;
GPOS_DELETE(pstatedxltoqueryOutput);
pquery->targetList = plTE;
}
......@@ -544,10 +544,10 @@ CTranslatorDXLToQuery::TranslateSetOp
{
CDXLNode *pdxlnChild = (*pdxln)[ul];
CStateDXLToQuery *pstatedxltoqueryChild = New(m_pmp) CStateDXLToQuery(m_pmp);
CStateDXLToQuery *pstatedxltoqueryChild = GPOS_NEW(m_pmp) CStateDXLToQuery(m_pmp);
RangeTblRef *prtrefChild = PrtrefFromDXLLgOp(pdxlnChild, pquery, pstatedxltoqueryChild, pmapcidvarquery);
MarkUnusedColumns(pquery, prtrefChild, pstatedxltoqueryChild, pdxlop->Pdrgpul(ul) /*array of colids of the first child*/);
delete pstatedxltoqueryChild;
GPOS_DELETE(pstatedxltoqueryChild);
if (0 == ul)
{
......@@ -610,7 +610,7 @@ CTranslatorDXLToQuery::MarkUnusedColumns
Query *pqueryDerTbl = prte->subquery;
// maintain the list of used columns in a bit set
CBitSet *pds = New(m_pmp) CBitSet(m_pmp);
CBitSet *pds = GPOS_NEW(m_pmp) CBitSet(m_pmp);
const ULONG ulLen = pdrgpulColids->UlLength();
for (ULONG ul = 0; ul < ulLen; ul++)
{
......@@ -717,7 +717,7 @@ CTranslatorDXLToQuery::TranslateGroupByColumns
TargetEntry *pte = const_cast<TargetEntry *>(pmapcidvarquery->Pte(ulGroupingCol));
OID oid = gpdb::OidExprType((Node*) pte->expr);
CMDIdGPDB *pmdid = New(m_pmp) CMDIdGPDB(oid);
CMDIdGPDB *pmdid = GPOS_NEW(m_pmp) CMDIdGPDB(oid);
const IMDType *pmdtype = m_pmda->Pmdtype(pmdid);
pmdid->Release();
......
......@@ -448,7 +448,7 @@ CTranslatorDXLToScalar::PaggrefFromDXLNodeScAggref
paggref->agglevelsup = 0;
paggref->location = -1;
CMDIdGPDB *pmdidAgg = New(m_pmp) CMDIdGPDB(paggref->aggfnoid);
CMDIdGPDB *pmdidAgg = GPOS_NEW(m_pmp) CMDIdGPDB(paggref->aggfnoid);
const IMDAggregate *pmdagg = m_pmda->Pmdagg(pmdidAgg);
pmdidAgg->Release();
......@@ -618,7 +618,7 @@ CTranslatorDXLToScalar::PparamFromDXLNodeScInitPlan
// Since an init plan is not a scalar node, we create a new DXLTranslator to handle its translation
CContextDXLToPlStmt *pctxdxltoplstmt = (dynamic_cast<CMappingColIdVarPlStmt*>(pmapcidvar))->Pctxdxltoplstmt();
CTranslatorDXLToPlStmt trdxltoplstmt(m_pmp, m_pmda, pctxdxltoplstmt, m_ulSegments);
DrgPdxltrctx *pdrgpdxltrctxPrevSiblings = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctxPrevSiblings = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
Plan *pplanChild = trdxltoplstmt.PplFromDXL(pdxlnChild, pdxltrctxOut, pplan, pdrgpdxltrctxPrevSiblings);
pdrgpdxltrctxPrevSiblings->Release();
......@@ -695,7 +695,7 @@ CTranslatorDXLToScalar::PsubplanFromDXLNodeScSubPlan
if (NULL == dxltrctxSubplan.Pmecolidparamid(ulColid))
{
// keep outer reference mapping to the original column for subsequent subplans
CMappingElementColIdParamId *pmecolidparamid = New (m_pmp) CMappingElementColIdParamId(ulColid, pctxdxltoplstmt->UlNextParamId(), pmdid);
CMappingElementColIdParamId *pmecolidparamid = GPOS_NEW(m_pmp) CMappingElementColIdParamId(ulColid, pctxdxltoplstmt->UlNextParamId(), pmdid);
#ifdef GPOS_DEBUG
BOOL fInserted =
......@@ -728,7 +728,7 @@ CTranslatorDXLToScalar::PsubplanFromDXLNodeScSubPlan
(dynamic_cast<CMappingColIdVarPlStmt*>(pmapcidvar))->Pctxdxltoplstmt(),
m_ulSegments
);
DrgPdxltrctx *pdrgpdxltrctxPrevSiblings = New(m_pmp) DrgPdxltrctx(m_pmp);
DrgPdxltrctx *pdrgpdxltrctxPrevSiblings = GPOS_NEW(m_pmp) DrgPdxltrctx(m_pmp);
Plan *pplanChild = trdxltoplstmt.PplFromDXL(pdxlnChild, &dxltrctxSubplan, pplan, pdrgpdxltrctxPrevSiblings);
pdrgpdxltrctxPrevSiblings->Release();
......@@ -874,7 +874,7 @@ CTranslatorDXLToScalar::TranslateSubplanParams
IMDId *pmdidType = pmecolidparamid->PmdidType();
pmdidType->AddRef();
CDXLScalarIdent *pdxlopIdent = New(m_pmp) CDXLScalarIdent(m_pmp, pdxlcr, pmdidType);
CDXLScalarIdent *pdxlopIdent = GPOS_NEW(m_pmp) CDXLScalarIdent(m_pmp, pdxlcr, pmdidType);
Expr *parg = (Expr *) pmapcidvar->PvarFromDXLNodeScId(pdxlopIdent);
// not found in mapping, it must be an external parameter
......@@ -935,7 +935,7 @@ CTranslatorDXLToScalar::SzSubplanAlias
ULONG ulPlanId
)
{
CWStringDynamic *pstr = New (m_pmp) CWStringDynamic(m_pmp);
CWStringDynamic *pstr = GPOS_NEW(m_pmp) CWStringDynamic(m_pmp);
pstr->AppendFormat(GPOS_WSZ_LIT("SubPlan %d"), ulPlanId);
const WCHAR *wsz = pstr->Wsz();
......@@ -943,7 +943,7 @@ CTranslatorDXLToScalar::SzSubplanAlias
CHAR *sz = (CHAR *) gpdb::GPDBAlloc(ulMaxLength);
gpos::clib::LWcsToMbs(sz, const_cast<WCHAR *>(wsz), ulMaxLength);
sz[ulMaxLength - 1] = '\0';
delete pstr;
GPOS_DELETE(pstr);
return sz;
}
......@@ -1010,10 +1010,10 @@ CTranslatorDXLToScalar::PsublinkFromDXLNodeSubqueryExists
CDXLNode *pdxlnChild = (*pdxlnSubqueryExists)[0];
CTranslatorDXLToQuery trdxlquery(m_pmp, m_pmda, m_ulSegments);
CStateDXLToQuery *pstatedxltoquery = New(m_pmp) CStateDXLToQuery(m_pmp);
CStateDXLToQuery *pstatedxltoquery = GPOS_NEW(m_pmp) CStateDXLToQuery(m_pmp);
// empty list of output columns
DrgPdxln *pdrgpdxlnOutputCols = New(m_pmp) DrgPdxln(m_pmp);
DrgPdxln *pdrgpdxlnOutputCols = GPOS_NEW(m_pmp) DrgPdxln(m_pmp);
CMappingColIdVarQuery *pmapcidvarquery = dynamic_cast<CMappingColIdVarQuery *>(pmapcidvar);
TEMap *ptemapCopy = CTranslatorUtils::PtemapCopy(m_pmp, pmapcidvarquery->Ptemap());
......@@ -1028,7 +1028,7 @@ CTranslatorDXLToScalar::PsublinkFromDXLNodeSubqueryExists
// clean up
pdrgpdxlnOutputCols->Release();
delete pstatedxltoquery;
GPOS_DELETE(pstatedxltoquery);
CRefCount::SafeRelease(ptemapCopy);
SubLink *psublink = MakeNode(SubLink);
......@@ -1090,7 +1090,7 @@ CTranslatorDXLToScalar::PsublinkFromDXLNodeQuantifiedSubquery
CTranslatorDXLToQuery trdxlquery(m_pmp, m_pmda, m_ulSegments);
CMappingColIdVarQuery *pmapcidvarquery = dynamic_cast<CMappingColIdVarQuery *>(pmapcidvar);
CStateDXLToQuery *pstatedxltoquery = New(m_pmp) CStateDXLToQuery(m_pmp);
CStateDXLToQuery *pstatedxltoquery = GPOS_NEW(m_pmp) CStateDXLToQuery(m_pmp);
TEMap *ptemapCopy = CTranslatorUtils::PtemapCopy(m_pmp, pmapcidvarquery->Ptemap());
......@@ -1127,7 +1127,7 @@ CTranslatorDXLToScalar::PsublinkFromDXLNodeQuantifiedSubquery
// clean up
ptemapCopy->Release();
delete pstatedxltoquery;
GPOS_DELETE(pstatedxltoquery);
return psublink;
}
......@@ -1152,7 +1152,7 @@ CTranslatorDXLToScalar::PsublinkFromDXLNodeScalarSubquery
CDXLNode *pdxlnChild = (*pdxlnSubquery)[0];
CTranslatorDXLToQuery trdxlquery(m_pmp, m_pmda, m_ulSegments);
CStateDXLToQuery *pstatedxltoquery = New(m_pmp) CStateDXLToQuery(m_pmp);
CStateDXLToQuery *pstatedxltoquery = GPOS_NEW(m_pmp) CStateDXLToQuery(m_pmp);
CMappingColIdVarQuery *pmapcidvarquery = dynamic_cast<CMappingColIdVarQuery *>(pmapcidvar);
TEMap *ptemapCopy = CTranslatorUtils::PtemapCopy(m_pmp, pmapcidvarquery->Ptemap());
......@@ -1168,7 +1168,7 @@ CTranslatorDXLToScalar::PsublinkFromDXLNodeScalarSubquery
// clean up
CRefCount::SafeRelease(ptemapCopy);
delete pstatedxltoquery;
GPOS_DELETE(pstatedxltoquery);
SubLink *psublink = MakeNode(SubLink);
psublink->subLinkType = EXPR_SUBLINK;
......
__ZdaPv
__ZdaPvRKSt9nothrow_t
__ZdlPv
__ZdlPvRKSt9nothrow_t
__ZdlPvS_
__Znam
__ZnamRKSt9nothrow_t
__Znwm
__ZnwmPv
__ZnwmRKSt9nothrow_t
......@@ -93,7 +93,7 @@ CConstExprEvaluatorProxy::PdxlnEvaluateExpr
Const *pconstResult = (Const *)pexprResult;
CDXLDatum *pdxldatum = CTranslatorScalarToDXL::Pdxldatum(m_pmp, m_pmda, pconstResult);
CDXLNode *pdxlnResult = New(m_pmp) CDXLNode(m_pmp, New(m_pmp) CDXLScalarConstValue(m_pmp, pdxldatum));
CDXLNode *pdxlnResult = GPOS_NEW(m_pmp) CDXLNode(m_pmp, GPOS_NEW(m_pmp) CDXLScalarConstValue(m_pmp, pdxldatum));
gpdb::GPDBFree(pexprResult);
gpdb::GPDBFree(pexpr);
......
此差异已折叠。
此差异已折叠。
......@@ -159,7 +159,7 @@ namespace gpdb {
// replace Vars that reference JOIN outputs with references to the original
// relation variables instead
Query *PqueryFlattenJoinAliasVar(Query *pquery, ULONG ulQueryLevel);
Query *PqueryFlattenJoinAliasVar(Query *pquery, gpos::ULONG ulQueryLevel);
// is aggregate ordered
bool FOrderedAgg(Oid aggid);
......@@ -490,11 +490,11 @@ namespace gpdb {
// return true if the table is partitioned and hash-distributed, and one of
// the child partitions is randomly distributed
BOOL FChildPartDistributionMismatch(Relation rel);
gpos::BOOL FChildPartDistributionMismatch(Relation rel);
// return true if the table is partitioned and any of the child partitions
// have a trigger of the given type
BOOL FChildTriggers(Oid oid, int triggerType);
gpos::BOOL FChildTriggers(Oid oid, int triggerType);
// does a relation exist with the given oid
bool FRelationExists(Oid oid);
......@@ -611,7 +611,7 @@ namespace gpdb {
FaultInjectorType_e OptTasksFaultInjector(FaultInjectorIdentifier_e identifier);
// return the number of leaf partition for a given table oid
ULONG UlLeafPartitions(Oid oidRelation);
gpos::ULONG UlLeafPartitions(Oid oidRelation);
} //namespace gpdb
......
......@@ -58,7 +58,7 @@ namespace gpdxl
virtual
~COptColInfo()
{
delete m_pstr;
GPOS_DELETE(m_pstr);
}
// accessors
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册