You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by en...@apache.org on 2015/12/11 02:39:51 UTC

[4/4] incubator-hawq git commit: HAWQ-246. Refactor and cleanup of memory management of the new optimizer.

HAWQ-246. 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 #181


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/9b65a5ad
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/9b65a5ad
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/9b65a5ad

Branch: refs/heads/master
Commit: 9b65a5adcdda343ad9c6c0c087e44b6c02c424c0
Parents: 4b60c6c
Author: Entong Shen <es...@pivotal.io>
Authored: Wed Dec 9 22:02:52 2015 -0800
Committer: Entong Shen <sh...@gmail.com>
Committed: Thu Dec 10 17:39:15 2015 -0800

----------------------------------------------------------------------
 src/backend/gpopt/Allocators.cpp                | 299 ------------
 src/backend/gpopt/CGPOptimizer.cpp              |   1 -
 src/backend/gpopt/Makefile                      |   4 +-
 .../gpopt/config/CConfigParamMapping.cpp        |   2 +-
 src/backend/gpopt/gpdbwrappers.cpp              |   8 +-
 src/backend/gpopt/translate/CCTEListEntry.cpp   |  10 +-
 .../gpopt/translate/CContextDXLToPlStmt.cpp     |  14 +-
 .../gpopt/translate/CDXLTranslateContext.cpp    |  16 +-
 .../translate/CDXLTranslateContextBaseTable.cpp |   6 +-
 .../gpopt/translate/CMappingColIdVarQuery.cpp   |   4 +-
 .../gpopt/translate/CMappingParamIdScalarId.cpp |   4 +-
 .../gpopt/translate/CMappingVarColId.cpp        |  36 +-
 .../gpopt/translate/CStateDXLToQuery.cpp        |   4 +-
 .../gpopt/translate/CTranslatorDXLToPlStmt.cpp  |  72 +--
 .../gpopt/translate/CTranslatorDXLToQuery.cpp   |  26 +-
 .../gpopt/translate/CTranslatorDXLToScalar.cpp  |  26 +-
 .../gpopt/translate/CTranslatorPlStmtToDXL.cpp  | 214 ++++-----
 .../gpopt/translate/CTranslatorQueryToDXL.cpp   | 451 ++++++++++---------
 .../translate/CTranslatorRelcacheToDXL.cpp      | 220 ++++-----
 .../gpopt/translate/CTranslatorScalarToDXL.cpp  | 192 ++++----
 .../gpopt/translate/CTranslatorUtils.cpp        | 156 +++----
 src/backend/gpopt/unexported_symbols_list.txt   |  11 -
 .../gpopt/utils/CConstExprEvaluatorProxy.cpp    |   2 +-
 src/backend/gpopt/utils/COptTasks.cpp           |  86 ++--
 src/include/gpopt/Allocators.h                  | 145 ------
 src/include/gpopt/Allocators.inl                | 287 ------------
 src/include/gpopt/gpdbwrappers.h                |   8 +-
 src/include/gpopt/translate/COptColInfo.h       |   2 +-
 28 files changed, 791 insertions(+), 1515 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9b65a5ad/src/backend/gpopt/Allocators.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/Allocators.cpp b/src/backend/gpopt/Allocators.cpp
deleted file mode 100644
index de762ae..0000000
--- a/src/backend/gpopt/Allocators.cpp
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-//---------------------------------------------------------------------------
-//	@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);
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9b65a5ad/src/backend/gpopt/CGPOptimizer.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/CGPOptimizer.cpp b/src/backend/gpopt/CGPOptimizer.cpp
index ab88232..c0eaa3e 100644
--- a/src/backend/gpopt/CGPOptimizer.cpp
+++ b/src/backend/gpopt/CGPOptimizer.cpp
@@ -29,7 +29,6 @@
 //
 //---------------------------------------------------------------------------
 
-#include "gpopt/Allocators.h"
 #include "gpopt/CGPOptimizer.h"
 #include "gpopt/utils/COptTasks.h"
 

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9b65a5ad/src/backend/gpopt/Makefile
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/Makefile b/src/backend/gpopt/Makefile
index eb58017..b587ffd 100644
--- a/src/backend/gpopt/Makefile
+++ b/src/backend/gpopt/Makefile
@@ -16,12 +16,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
 
 OTHER_TASK = libdxltranslators.$(LDSFX) libgpoptudf.$(LDSFX)
 
 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))

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9b65a5ad/src/backend/gpopt/config/CConfigParamMapping.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/config/CConfigParamMapping.cpp b/src/backend/gpopt/config/CConfigParamMapping.cpp
index 4c54061..beb355e 100644
--- a/src/backend/gpopt/config/CConfigParamMapping.cpp
+++ b/src/backend/gpopt/config/CConfigParamMapping.cpp
@@ -409,7 +409,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++)
 	{

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9b65a5ad/src/backend/gpopt/gpdbwrappers.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/gpdbwrappers.cpp b/src/backend/gpopt/gpdbwrappers.cpp
index 45a7349..8be3fd7 100644
--- a/src/backend/gpopt/gpdbwrappers.cpp
+++ b/src/backend/gpopt/gpdbwrappers.cpp
@@ -888,7 +888,7 @@ Query *
 gpdb::PqueryFlattenJoinAliasVar
 	(
 	Query *pquery,
-	ULONG ulQueryLevel
+	gpos::ULONG ulQueryLevel
 	)
 {
 	GP_WRAP_START;
@@ -2403,7 +2403,7 @@ gpdb::PqrActiveQueryResource(void)
 }
 
 
-BOOL
+gpos::BOOL
 gpdb::FChildPartDistributionMismatch
 	(
 	Relation rel
@@ -2417,7 +2417,7 @@ gpdb::FChildPartDistributionMismatch
     return false;
 }
 
-BOOL
+gpos::BOOL
 gpdb::FChildTriggers
 	(
 	Oid oid,
@@ -3100,7 +3100,7 @@ gpdb::OptTasksFaultInjector
 	return FaultInjectorTypeNotSpecified;
 }
 
-ULONG
+gpos::ULONG
 gpdb::UlLeafPartitions
        (
        Oid oidRelation

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9b65a5ad/src/backend/gpopt/translate/CCTEListEntry.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/translate/CCTEListEntry.cpp b/src/backend/gpopt/translate/CCTEListEntry.cpp
index 077bd55..372b4c5 100644
--- a/src/backend/gpopt/translate/CCTEListEntry.cpp
+++ b/src/backend/gpopt/translate/CCTEListEntry.cpp
@@ -65,13 +65,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);
 }
@@ -98,7 +98,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++)
@@ -110,7 +110,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));
@@ -187,7 +187,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);
 }

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9b65a5ad/src/backend/gpopt/translate/CContextDXLToPlStmt.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/translate/CContextDXLToPlStmt.cpp b/src/backend/gpopt/translate/CContextDXLToPlStmt.cpp
index f886148..bc48575 100644
--- a/src/backend/gpopt/translate/CContextDXLToPlStmt.cpp
+++ b/src/backend/gpopt/translate/CContextDXLToPlStmt.cpp
@@ -71,9 +71,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);
 }
 
 //---------------------------------------------------------------------------
@@ -187,11 +187,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);
 }
@@ -313,7 +313,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);
 	}
 
@@ -412,7 +412,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 =

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9b65a5ad/src/backend/gpopt/translate/CDXLTranslateContext.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/translate/CDXLTranslateContext.cpp b/src/backend/gpopt/translate/CDXLTranslateContext.cpp
index fa2140a..434a800 100644
--- a/src/backend/gpopt/translate/CDXLTranslateContext.cpp
+++ b/src/backend/gpopt/translate/CDXLTranslateContext.cpp
@@ -52,8 +52,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);
 }
 
 //---------------------------------------------------------------------------
@@ -74,8 +74,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);
 }
 
@@ -128,7 +128,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);
 	}
@@ -186,14 +186,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);
 	}
 }
 
@@ -213,7 +213,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);

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9b65a5ad/src/backend/gpopt/translate/CDXLTranslateContextBaseTable.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/translate/CDXLTranslateContextBaseTable.cpp b/src/backend/gpopt/translate/CDXLTranslateContextBaseTable.cpp
index a4a2c1d..7ad61cf 100644
--- a/src/backend/gpopt/translate/CDXLTranslateContextBaseTable.cpp
+++ b/src/backend/gpopt/translate/CDXLTranslateContextBaseTable.cpp
@@ -54,7 +54,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);
 }
 
 //---------------------------------------------------------------------------
@@ -179,8 +179,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
 

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9b65a5ad/src/backend/gpopt/translate/CMappingColIdVarQuery.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/translate/CMappingColIdVarQuery.cpp b/src/backend/gpopt/translate/CMappingColIdVarQuery.cpp
index 37ee8c8..e059f02 100644
--- a/src/backend/gpopt/translate/CMappingColIdVarQuery.cpp
+++ b/src/backend/gpopt/translate/CMappingColIdVarQuery.cpp
@@ -109,10 +109,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);
 

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9b65a5ad/src/backend/gpopt/translate/CMappingParamIdScalarId.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/translate/CMappingParamIdScalarId.cpp b/src/backend/gpopt/translate/CMappingParamIdScalarId.cpp
index e041efc..df1c4ad 100644
--- a/src/backend/gpopt/translate/CMappingParamIdScalarId.cpp
+++ b/src/backend/gpopt/translate/CMappingParamIdScalarId.cpp
@@ -47,7 +47,7 @@ CMappingParamIdScalarId::CMappingParamIdScalarId
 	:
 	m_pmp(pmp)
 {
-	m_phmps = New(m_pmp) HMParamScalar(m_pmp);
+	m_phmps = GPOS_NEW(m_pmp) HMParamScalar(m_pmp);
 }
 
 //---------------------------------------------------------------------------
@@ -84,7 +84,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);

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9b65a5ad/src/backend/gpopt/translate/CMappingVarColId.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/translate/CMappingVarColId.cpp b/src/backend/gpopt/translate/CMappingVarColId.cpp
index 798efcc..4745517 100644
--- a/src/backend/gpopt/translate/CMappingVarColId.cpp
+++ b/src/backend/gpopt/translate/CMappingVarColId.cpp
@@ -67,7 +67,7 @@ CMappingVarColId::CMappingVarColId
 	:
 	m_pmp(pmp)
 {
-	m_pmvcmap = New(m_pmp) CMVCMap(m_pmp);
+	m_pmvcmap = GPOS_NEW(m_pmp) CMVCMap(m_pmp);
 }
 
 //---------------------------------------------------------------------------
@@ -102,7 +102,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)
@@ -178,14 +178,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 =
@@ -308,7 +308,7 @@ CMappingVarColId::Load
 				);
 
 		ul ++;
-		delete(pstrColName);
+		GPOS_DELETE(pstrColName);
 	}
 }
 
@@ -485,7 +485,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);
@@ -498,10 +498,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
@@ -530,7 +530,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);
@@ -540,10 +540,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
@@ -580,7 +580,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())
@@ -589,7 +589,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)
@@ -597,9 +597,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 =

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9b65a5ad/src/backend/gpopt/translate/CStateDXLToQuery.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/translate/CStateDXLToQuery.cpp b/src/backend/gpopt/translate/CStateDXLToQuery.cpp
index 8bd7533..f69a56a 100644
--- a/src/backend/gpopt/translate/CStateDXLToQuery.cpp
+++ b/src/backend/gpopt/translate/CStateDXLToQuery.cpp
@@ -58,7 +58,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);
 }
 
 
@@ -96,7 +96,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));
 }
 
 

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9b65a5ad/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp b/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp
index ec0c511..12ef75f 100644
--- a/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp
+++ b/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp
@@ -134,7 +134,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();
 }
 
@@ -148,7 +148,7 @@ CTranslatorDXLToPlStmt::CTranslatorDXLToPlStmt
 //---------------------------------------------------------------------------
 CTranslatorDXLToPlStmt::~CTranslatorDXLToPlStmt()
 {
-	delete m_pdxlsctranslator;
+	GPOS_DELETE(m_pdxlsctranslator);
 }
 
 //---------------------------------------------------------------------------
@@ -234,7 +234,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();
 
@@ -1511,7 +1511,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);
@@ -1565,7 +1565,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
@@ -1665,7 +1665,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
@@ -1760,12 +1760,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
@@ -2114,7 +2114,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())
@@ -2141,7 +2141,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);
 
@@ -2237,13 +2237,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));
 
@@ -2438,7 +2438,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
@@ -2635,7 +2635,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
@@ -2766,7 +2766,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
@@ -2879,7 +2879,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
@@ -2986,7 +2986,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
@@ -3071,7 +3071,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
@@ -3318,7 +3318,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
@@ -3399,8 +3399,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());
 
@@ -3631,7 +3631,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
@@ -3700,7 +3700,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
@@ -3792,7 +3792,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);
 
@@ -3814,7 +3814,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
@@ -3886,7 +3886,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
@@ -4188,7 +4188,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
@@ -4446,19 +4446,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;
@@ -4497,7 +4497,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
@@ -4678,7 +4678,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
@@ -4805,7 +4805,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
@@ -4866,7 +4866,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
@@ -5458,7 +5458,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();
@@ -5745,7 +5745,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

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9b65a5ad/src/backend/gpopt/translate/CTranslatorDXLToQuery.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/translate/CTranslatorDXLToQuery.cpp b/src/backend/gpopt/translate/CTranslatorDXLToQuery.cpp
index 8cee1d3..260fe63 100644
--- a/src/backend/gpopt/translate/CTranslatorDXLToQuery.cpp
+++ b/src/backend/gpopt/translate/CTranslatorDXLToQuery.cpp
@@ -79,7 +79,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);
 }
 
 //---------------------------------------------------------------------------
@@ -92,7 +92,7 @@ CTranslatorDXLToQuery::CTranslatorDXLToQuery
 //---------------------------------------------------------------------------
 CTranslatorDXLToQuery::~CTranslatorDXLToQuery()
 {
-	delete m_pdxlsctranslator;
+	GPOS_DELETE(m_pdxlsctranslator);
 }
 
 //---------------------------------------------------------------------------
@@ -114,7 +114,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);
 
@@ -152,7 +152,7 @@ CTranslatorDXLToQuery::PqueryFromDXL
 	// TODO: venky; 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())
 	{
@@ -182,7 +182,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);
 
@@ -201,7 +201,7 @@ CTranslatorDXLToQuery::PqueryFromDXLSubquery
 
 	pquery->commandType = CMD_SELECT;
 
-	delete pmapcidvarquery;
+	GPOS_DELETE(pmapcidvarquery);
 
 	if (m_pdxlsctranslator->FHasSubqueries())
 	{
@@ -229,7 +229,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;
@@ -279,7 +279,7 @@ CTranslatorDXLToQuery::SetSubqueryOutput
 	}
 
 	pstatedxltoquery->Reload(pstatedxltoqueryOutput);
-	delete pstatedxltoqueryOutput;
+	GPOS_DELETE(pstatedxltoqueryOutput);
 
 	pquery->targetList = plTE;
 }
@@ -303,7 +303,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;
 
@@ -366,7 +366,7 @@ CTranslatorDXLToQuery::SetQueryOutput
 	}
 
 	pstatedxltoquery->Reload(pstatedxltoqueryOutput);
-	delete pstatedxltoqueryOutput;
+	GPOS_DELETE(pstatedxltoqueryOutput);
 
 	pquery->targetList = plTE;
 }
@@ -566,10 +566,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)
 		{
@@ -632,7 +632,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++)
 	{

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9b65a5ad/src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp b/src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp
index db086b8..7d0b0ce 100644
--- a/src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp
+++ b/src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp
@@ -634,7 +634,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();
 
@@ -711,7 +711,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 =
@@ -744,7 +744,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();
 
@@ -891,7 +891,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
@@ -951,7 +951,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();
 
@@ -959,7 +959,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;
 }
@@ -1026,10 +1026,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());
 
@@ -1044,7 +1044,7 @@ CTranslatorDXLToScalar::PsublinkFromDXLNodeSubqueryExists
 
 	// clean up
 	pdrgpdxlnOutputCols->Release();
-	delete pstatedxltoquery;
+	GPOS_DELETE(pstatedxltoquery);
 	CRefCount::SafeRelease(ptemapCopy);
 
 	SubLink *psublink = MakeNode(SubLink);
@@ -1106,7 +1106,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());
 
@@ -1143,7 +1143,7 @@ CTranslatorDXLToScalar::PsublinkFromDXLNodeQuantifiedSubquery
 
 	// clean up
 	ptemapCopy->Release();
-	delete pstatedxltoquery;
+	GPOS_DELETE(pstatedxltoquery);
 
 	return psublink;
 }
@@ -1168,7 +1168,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());
@@ -1184,7 +1184,7 @@ CTranslatorDXLToScalar::PsublinkFromDXLNodeScalarSubquery
 
 	// clean up
 	CRefCount::SafeRelease(ptemapCopy);
-	delete pstatedxltoquery;
+	GPOS_DELETE(pstatedxltoquery);
 
 	SubLink *psublink = MakeNode(SubLink);
 	psublink->subLinkType = EXPR_SUBLINK;

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9b65a5ad/src/backend/gpopt/translate/CTranslatorPlStmtToDXL.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/translate/CTranslatorPlStmtToDXL.cpp b/src/backend/gpopt/translate/CTranslatorPlStmtToDXL.cpp
index e81b069..7657d4d 100644
--- a/src/backend/gpopt/translate/CTranslatorPlStmtToDXL.cpp
+++ b/src/backend/gpopt/translate/CTranslatorPlStmtToDXL.cpp
@@ -87,7 +87,7 @@ CTranslatorPlStmtToDXL::CTranslatorPlStmtToDXL
 	m_pparammapping(pmapps)
 {
 	GPOS_ASSERT(NULL != m_pplstmt);
-	m_psctranslator = New(m_pmp)
+	m_psctranslator = GPOS_NEW(m_pmp)
 							CTranslatorScalarToDXL
 								(
 								m_pmp,
@@ -101,7 +101,7 @@ CTranslatorPlStmtToDXL::CTranslatorPlStmtToDXL
 								NULL,  // CTE Mapping
 								NULL // pdrgpdxlnCTE
 								);
-	m_phmuldxlnSharedScanProjLists = New(m_pmp) HMUlPdxln(m_pmp);
+	m_phmuldxlnSharedScanProjLists = GPOS_NEW(m_pmp) HMUlPdxln(m_pmp);
 }
 
 //---------------------------------------------------------------------------
@@ -115,7 +115,7 @@ CTranslatorPlStmtToDXL::CTranslatorPlStmtToDXL
 CTranslatorPlStmtToDXL::~CTranslatorPlStmtToDXL()
 {
 	m_phmuldxlnSharedScanProjLists->Release();
-	delete m_psctranslator;
+	GPOS_DELETE(m_psctranslator);
 }
 
 //---------------------------------------------------------------------------
@@ -271,10 +271,10 @@ CTranslatorPlStmtToDXL::PdxlnHashjoinFromPlan
 	EdxlJoinType edxljt = CTranslatorUtils::EdxljtFromJoinType((phj->join).jointype);
 
 	// construct hash join operator
-	CDXLPhysicalHashJoin *pdxlopHj = New(m_pmp) CDXLPhysicalHashJoin(m_pmp, edxljt);
+	CDXLPhysicalHashJoin *pdxlopHj = GPOS_NEW(m_pmp) CDXLPhysicalHashJoin(m_pmp, edxljt);
 
 	// construct hash join operator node
-	CDXLNode *pdxlnHJ = New(m_pmp) CDXLNode(m_pmp, pdxlopHj);
+	CDXLNode *pdxlnHJ = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopHj);
 	pdxlnHJ->SetProperties(pdxlprop);
 
 	// translate left and right child
@@ -298,7 +298,7 @@ CTranslatorPlStmtToDXL::PdxlnHashjoinFromPlan
 	GPOS_ASSERT(pdxlnPrLRight->Pdxlop()->Edxlop() == EdxlopScalarProjectList);
 
 	// translate hash condition
-	CDXLNode *pdxlnHashCondList = New(m_pmp) CDXLNode(m_pmp, New(m_pmp) CDXLScalarHashCondList(m_pmp));
+	CDXLNode *pdxlnHashCondList = GPOS_NEW(m_pmp) CDXLNode(m_pmp, GPOS_NEW(m_pmp) CDXLScalarHashCondList(m_pmp));
 
 	List *plHashClauses = NIL;
 
@@ -409,10 +409,10 @@ CTranslatorPlStmtToDXL::PdxlnNLJoinFromPlan
 	BOOL fIndexNLJ = IsA(pplan->righttree, IndexScan);
 
 	// construct nested loop join operator
-	CDXLPhysicalNLJoin *pdxlnlj = New(m_pmp) CDXLPhysicalNLJoin(m_pmp, edxljt, fIndexNLJ);
+	CDXLPhysicalNLJoin *pdxlnlj = GPOS_NEW(m_pmp) CDXLPhysicalNLJoin(m_pmp, edxljt, fIndexNLJ);
 
 	// construct nested loop join operator node
-	CDXLNode *pdxlnNLJ = New(m_pmp) CDXLNode(m_pmp, pdxlnlj);
+	CDXLNode *pdxlnNLJ = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlnlj);
 	pdxlnNLJ->SetProperties(pdxlprop);
 
 	// translate left and right child
@@ -497,10 +497,10 @@ CTranslatorPlStmtToDXL::PdxlnMergeJoinFromPlan
 	EdxlJoinType edxljt = CTranslatorUtils::EdxljtFromJoinType((pmj->join).jointype);
 
 	// construct hash join operator
-	CDXLPhysicalMergeJoin *pdxlopMj = New(m_pmp) CDXLPhysicalMergeJoin(m_pmp, edxljt, pmj->unique_outer);
+	CDXLPhysicalMergeJoin *pdxlopMj = GPOS_NEW(m_pmp) CDXLPhysicalMergeJoin(m_pmp, edxljt, pmj->unique_outer);
 
 	// construct merge join operator node
-	CDXLNode *pdxlnMJ = New(m_pmp) CDXLNode(m_pmp, pdxlopMj);
+	CDXLNode *pdxlnMJ = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopMj);
 	pdxlnMJ->SetProperties(pdxlprop);
 
 	// translate left and right child
@@ -524,7 +524,7 @@ CTranslatorPlStmtToDXL::PdxlnMergeJoinFromPlan
 	GPOS_ASSERT(pdxlnPrLRight->Pdxlop()->Edxlop() == EdxlopScalarProjectList);
 
 	// translate hash condition
-	CDXLNode *pdxlnMergeCondList = New(m_pmp) CDXLNode(m_pmp, New(m_pmp) CDXLScalarMergeCondList(m_pmp));
+	CDXLNode *pdxlnMergeCondList = GPOS_NEW(m_pmp) CDXLNode(m_pmp, GPOS_NEW(m_pmp) CDXLScalarMergeCondList(m_pmp));
 
 	m_psctranslator->SetCallingPhysicalOpType(EpspotMergeJoin);
 
@@ -616,7 +616,7 @@ CTranslatorPlStmtToDXL::PdxlnResultFromPlan
 	GPOS_ASSERT(NULL != pdxlprop);
 
 	// construct result operator
-	CDXLPhysicalResult *pdxlopResult = New(m_pmp) CDXLPhysicalResult(m_pmp);
+	CDXLPhysicalResult *pdxlopResult = GPOS_NEW(m_pmp) CDXLPhysicalResult(m_pmp);
 
 	GPOS_ASSERT(innerPlan(pnresult) == NULL && "Result node cannot have right child");
 
@@ -668,7 +668,7 @@ CTranslatorPlStmtToDXL::PdxlnResultFromPlan
 								);
 
 	// construct motion operator node
-	CDXLNode *pdxln = New(m_pmp) CDXLNode(m_pmp, pdxlopResult);
+	CDXLNode *pdxln = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopResult);
 	pdxln->SetProperties(pdxlprop);
 
 	// add children in the right order
@@ -719,20 +719,20 @@ CTranslatorPlStmtToDXL::PdxlnMotionFromPlan
 	{
 		if (0 == pmotion->numOutputSegs)
 		{
-			pdxlopMotion = New(m_pmp) CDXLPhysicalBroadcastMotion(m_pmp);
+			pdxlopMotion = GPOS_NEW(m_pmp) CDXLPhysicalBroadcastMotion(m_pmp);
 		}
 		else
 		{
-			pdxlopMotion = New(m_pmp) CDXLPhysicalGatherMotion(m_pmp);
+			pdxlopMotion = GPOS_NEW(m_pmp) CDXLPhysicalGatherMotion(m_pmp);
 		}
 	}
 	else
 	{
-		pdxlopMotion = New(m_pmp) CDXLPhysicalRedistributeMotion(m_pmp, false /*fDuplicateSensitive*/);
+		pdxlopMotion = GPOS_NEW(m_pmp) CDXLPhysicalRedistributeMotion(m_pmp, false /*fDuplicateSensitive*/);
 	}
 
-	DrgPi *pdrgpiInputSegIds = New(m_pmp) DrgPi(m_pmp);
-	DrgPi *pdrgpiOutputSegIds = New(m_pmp) DrgPi(m_pmp);
+	DrgPi *pdrgpiInputSegIds = GPOS_NEW(m_pmp) DrgPi(m_pmp);
+	DrgPi *pdrgpiOutputSegIds = GPOS_NEW(m_pmp) DrgPi(m_pmp);
 
 	TranslateMotionSegmentInfo(pmotion, pdrgpiInputSegIds, pdrgpiOutputSegIds);
 
@@ -740,7 +740,7 @@ CTranslatorPlStmtToDXL::PdxlnMotionFromPlan
 	pdxlopMotion->SetOutputSegIds(pdrgpiOutputSegIds);
 
 	// construct motion operator node
-	CDXLNode *pdxln = New(m_pmp) CDXLNode(m_pmp, pdxlopMotion);
+	CDXLNode *pdxln = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopMotion);
 	pdxln->SetProperties(pdxlprop);
 
 	// translate child of motion node
@@ -844,7 +844,7 @@ CTranslatorPlStmtToDXL::PdxlnAggFromPlan
 	}
 
 	BOOL fStreamSafe = pagg->streaming;
-	CDXLPhysicalAgg *pdxlopAgg = New(m_pmp) CDXLPhysicalAgg(m_pmp, edxlaggstr, fStreamSafe);
+	CDXLPhysicalAgg *pdxlopAgg = GPOS_NEW(m_pmp) CDXLPhysicalAgg(m_pmp, edxlaggstr, fStreamSafe);
 
 	// translate child of aggregate operator
 	Plan *pplanChild = (pagg->plan).lefttree;
@@ -881,7 +881,7 @@ CTranslatorPlStmtToDXL::PdxlnAggFromPlan
 			     (0 < pagg->numCols && NULL != pagg->grpColIdx));
 
 	// translate output segment cols
-	DrgPul *pdrgpulGroupingCols = New(m_pmp) DrgPul(m_pmp);
+	DrgPul *pdrgpulGroupingCols = GPOS_NEW(m_pmp) DrgPul(m_pmp);
 
 	for(ULONG ul = 0; ul < (ULONG) pagg->numCols; ul++)
 	{
@@ -891,14 +891,14 @@ CTranslatorPlStmtToDXL::PdxlnAggFromPlan
 		CDXLNode *pdxlnGroupingCol = (*pdxlnPrLChild)[ulColIdx-1];
 		CDXLScalarProjElem *pdxlopPrEl = (CDXLScalarProjElem *) pdxlnGroupingCol->Pdxlop();
 
-		ULONG *pulGroupingColId = New(m_pmp) ULONG(pdxlopPrEl->UlId());
+		ULONG *pulGroupingColId = GPOS_NEW(m_pmp) ULONG(pdxlopPrEl->UlId());
 		pdrgpulGroupingCols->Append(pulGroupingColId);
 	}
 
 	pdxlopAgg->SetGroupingCols(pdrgpulGroupingCols);
 
 	// construct aggregate operator node
-	CDXLNode *pdxln = New(m_pmp) CDXLNode(m_pmp, pdxlopAgg);
+	CDXLNode *pdxln = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopAgg);
 	pdxln->SetProperties(pdxlprop);
 
 	// add children in the right order
@@ -962,7 +962,7 @@ CTranslatorPlStmtToDXL::PdxlnWindowFromPlan
 
 	const ULONG ulSize = (ULONG) pwindow->numPartCols;
 	// translate partition columns
-	DrgPul *pdrgpulPartCols = New(m_pmp) DrgPul(m_pmp);
+	DrgPul *pdrgpulPartCols = GPOS_NEW(m_pmp) DrgPul(m_pmp);
 	for(ULONG ul = 0; ul < ulSize; ul++)
 	{
 		ULONG ulColIdx = (ULONG) pwindow->partColIdx[ul];
@@ -971,17 +971,17 @@ CTranslatorPlStmtToDXL::PdxlnWindowFromPlan
 		CDXLNode *pdxlnPartCol = (*pdxlnPrLChild)[ulColIdx-1];
 		CDXLScalarProjElem *pdxlopPrEl = (CDXLScalarProjElem *) pdxlnPartCol->Pdxlop();
 
-		ULONG *pulPartColId = New(m_pmp) ULONG(pdxlopPrEl->UlId());
+		ULONG *pulPartColId = GPOS_NEW(m_pmp) ULONG(pdxlopPrEl->UlId());
 		pdrgpulPartCols->Append(pulPartColId);
 	}
 
 	// add the window keys
-	DrgPdxlwk *pdrgpdxlwk = New(m_pmp) DrgPdxlwk(m_pmp);
+	DrgPdxlwk *pdrgpdxlwk = GPOS_NEW(m_pmp) DrgPdxlwk(m_pmp);
 	ListCell *plcWindowKey = NULL;
 	ForEach (plcWindowKey, pwindow->windowKeys)
 	{
 		WindowKey *pwindowkey = (WindowKey *) lfirst(plcWindowKey);
-		CDXLWindowKey *pdxlWindowKey = New(m_pmp) CDXLWindowKey(m_pmp);
+		CDXLWindowKey *pdxlWindowKey = GPOS_NEW(m_pmp) CDXLWindowKey(m_pmp);
 
 		CDXLNode *pdxlnSortColList = PdxlnSortingColListFromPlan
 										(
@@ -1010,8 +1010,8 @@ CTranslatorPlStmtToDXL::PdxlnWindowFromPlan
 	}
 
 	// construct window operator node
-	CDXLPhysicalWindow *pdxlopWindow = New(m_pmp) CDXLPhysicalWindow(m_pmp, pdrgpulPartCols, pdrgpdxlwk);
-	CDXLNode *pdxln = New(m_pmp) CDXLNode(m_pmp, pdxlopWindow);
+	CDXLPhysicalWindow *pdxlopWindow = GPOS_NEW(m_pmp) CDXLPhysicalWindow(m_pmp, pdrgpulPartCols, pdrgpdxlwk);
+	CDXLNode *pdxln = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopWindow);
 
 	// extract plan properties
 	CDXLPhysicalProperties *pdxlprop = PdxlpropFromPlan(pplan);
@@ -1108,7 +1108,7 @@ CTranslatorPlStmtToDXL::PdxlnSortFromPlan
 	// TODO: antovl - Jan 19, 2011; currently GPDB supports only nullsLast behavior
 	GPOS_ASSERT(NULL == psort->nullsFirst);
 
-	CDXLPhysicalSort *pdxlopSort = New(m_pmp) CDXLPhysicalSort(m_pmp, psort->noduplicates);
+	CDXLPhysicalSort *pdxlopSort = GPOS_NEW(m_pmp) CDXLPhysicalSort(m_pmp, psort->noduplicates);
 
 	// translate child of sort operator
 	Plan *pplanChild = (psort->plan).lefttree;
@@ -1147,8 +1147,8 @@ CTranslatorPlStmtToDXL::PdxlnSortFromPlan
 
 	// translate limit information
 
-	CDXLNode *pdxlnLimitCount = New(m_pmp) CDXLNode(m_pmp, New(m_pmp) CDXLScalarLimitCount(m_pmp));
-	CDXLNode *pdxlnLimitOffset = New(m_pmp) CDXLNode(m_pmp, New(m_pmp) CDXLScalarLimitOffset(m_pmp));
+	CDXLNode *pdxlnLimitCount = GPOS_NEW(m_pmp) CDXLNode(m_pmp, GPOS_NEW(m_pmp) CDXLScalarLimitCount(m_pmp));
+	CDXLNode *pdxlnLimitOffset = GPOS_NEW(m_pmp) CDXLNode(m_pmp, GPOS_NEW(m_pmp) CDXLScalarLimitOffset(m_pmp));
 
 	if (NULL != psort->limitCount)
 	{
@@ -1179,7 +1179,7 @@ CTranslatorPlStmtToDXL::PdxlnSortFromPlan
 
 
 	// construct sort operator node
-	CDXLNode *pdxln = New(m_pmp) CDXLNode(m_pmp, pdxlopSort);
+	CDXLNode *pdxln = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopSort);
 	pdxln->SetProperties(pdxlprop);
 
 	// add children in the right order
@@ -1224,11 +1224,11 @@ CTranslatorPlStmtToDXL::PdxlnSubqueryScanFromPlan
 
 	CWStringDynamic *pstrSubqName = CDXLUtils::PstrFromSz(m_pmp, szSubqName);
 	// copy table name
-	CMDName *pmdnameSubqScan = New(m_pmp) CMDName(m_pmp, pstrSubqName);
-	delete pstrSubqName;
+	CMDName *pmdnameSubqScan = GPOS_NEW(m_pmp) CMDName(m_pmp, pstrSubqName);
+	GPOS_DELETE(pstrSubqName);
 
 	// construct DXL subquery scan operator
-	CDXLPhysicalSubqueryScan *pdxlopSubqScan = New(m_pmp) CDXLPhysicalSubqueryScan(m_pmp, pmdnameSubqScan);
+	CDXLPhysicalSubqueryScan *pdxlopSubqScan = GPOS_NEW(m_pmp) CDXLPhysicalSubqueryScan(m_pmp, pmdnameSubqScan);
 
 	// translate child of subquery operator
 	Plan *pplanChild = psubqscan->subplan;
@@ -1245,11 +1245,11 @@ CTranslatorPlStmtToDXL::PdxlnSubqueryScanFromPlan
 	// construct a fake table descriptor for the subquery scan
 	// since the project list and filter refer to the rtable rather than OUTER
 	// construct projection list and filter
-	CDXLTableDescr *pdxltabdesc = New(m_pmp) CDXLTableDescr
+	CDXLTableDescr *pdxltabdesc = GPOS_NEW(m_pmp) CDXLTableDescr
 											(
 											m_pmp,
-											New(m_pmp) CMDIdGPDB(CMDIdGPDB::m_mdidInvalidKey.OidObjectId()),
-											New(m_pmp) CMDName(pmdnameSubqScan->Pstr()),
+											GPOS_NEW(m_pmp) CMDIdGPDB(CMDIdGPDB::m_mdidInvalidKey.OidObjectId()),
+											GPOS_NEW(m_pmp) CMDName(pmdnameSubqScan->Pstr()),
 											prte->checkAsUser
 											);
 
@@ -1273,22 +1273,22 @@ CTranslatorPlStmtToDXL::PdxlnSubqueryScanFromPlan
 		CWStringDynamic *pstrColName = CDXLUtils::PstrFromSz(m_pmp, szColName);
 
 		// copy string into column name
-		CMDName *pmdnameColName = New(m_pmp) CMDName(m_pmp, pstrColName);
+		CMDName *pmdnameColName = GPOS_NEW(m_pmp) CMDName(m_pmp, pstrColName);
 
-		delete pstrColName;
+		GPOS_DELETE(pstrColName);
 
 		// get column id from the subplan's target list
 		CDXLNode *pdxlnPrEl = (*pdxlnPrLChild)[ulAttno-1];
 		ULONG ulId = ((CDXLScalarProjElem *) pdxlnPrEl->Pdxlop())->UlId();
 
 		// create a column descriptor for the column
-		CDXLColDescr *pdxlcd = New(m_pmp) CDXLColDescr
+		CDXLColDescr *pdxlcd = GPOS_NEW(m_pmp) CDXLColDescr
 											(
 											m_pmp,
 											pmdnameColName,
 											ulId,
 											ulAttno,
-											New(m_pmp) CMDIdGPDB(CMDIdGPDB::m_mdidInvalidKey.OidObjectId()),
+											GPOS_NEW(m_pmp) CMDIdGPDB(CMDIdGPDB::m_mdidInvalidKey.OidObjectId()),
 											fColDropped
 											);
 
@@ -1315,7 +1315,7 @@ CTranslatorPlStmtToDXL::PdxlnSubqueryScanFromPlan
 		);
 
 	// construct sort operator node
-	CDXLNode *pdxln = New(m_pmp) CDXLNode(m_pmp, pdxlopSubqScan);
+	CDXLNode *pdxln = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopSubqScan);
 	pdxln->SetProperties(pdxlprop);
 
 	// add children in the right order
@@ -1358,9 +1358,9 @@ CTranslatorPlStmtToDXL::PdxlnAppendFromPlan
 	GPOS_ASSERT(NULL != pdxlprop);
 
 	// construct DXL Append operator
-	CDXLPhysicalAppend *pdxlopAppend = New(m_pmp) CDXLPhysicalAppend(m_pmp, pappend->isTarget, pappend->isZapped);
+	CDXLPhysicalAppend *pdxlopAppend = GPOS_NEW(m_pmp) CDXLPhysicalAppend(m_pmp, pappend->isTarget, pappend->isZapped);
 
-	CDXLNode *pdxln = New(m_pmp) CDXLNode(m_pmp, pdxlopAppend);
+	CDXLNode *pdxln = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopAppend);
 	pdxln->SetProperties(pdxlprop);
 
 	// translate first child of append operator so we can translate the project list
@@ -1427,33 +1427,33 @@ CTranslatorPlStmtToDXL::PdxlnResultFromFoldedFuncExpr
 	CMappingVarColId *pmapvarcolid
 	)
 {
-	CDXLNode *pdxlnPrL = New(m_pmp) CDXLNode(m_pmp, New(m_pmp) CDXLScalarProjList(m_pmp));
+	CDXLNode *pdxlnPrL = GPOS_NEW(m_pmp) CDXLNode(m_pmp, GPOS_NEW(m_pmp) CDXLScalarProjList(m_pmp));
 
 	// construct a scalar operator for the expression
 	CDXLNode *pdxlnChild = m_psctranslator->PdxlnScOpFromExpr(pexpr, pmapvarcolid);
 
 	ULONG ulPrElId = m_pidgtor->UlNextId();
-	CMDName *pmdnameAlias = New(m_pmp) CMDName(m_pmp, pstrAlias);
+	CMDName *pmdnameAlias = GPOS_NEW(m_pmp) CMDName(m_pmp, pstrAlias);
 
-	CDXLNode *pdxlnPrEl = New(m_pmp) CDXLNode
+	CDXLNode *pdxlnPrEl = GPOS_NEW(m_pmp) CDXLNode
 										(
 										m_pmp,
-										New(m_pmp) CDXLScalarProjElem(m_pmp, ulPrElId, pmdnameAlias)
+										GPOS_NEW(m_pmp) CDXLScalarProjElem(m_pmp, ulPrElId, pmdnameAlias)
 										);
 	pdxlnPrEl->AddChild(pdxlnChild);
 
 	// add proj elem to proj list
 	pdxlnPrL->AddChild(pdxlnPrEl);
 
-	CDXLPhysicalResult *pdxlopResult = New(m_pmp) CDXLPhysicalResult(m_pmp);
+	CDXLPhysicalResult *pdxlopResult = GPOS_NEW(m_pmp) CDXLPhysicalResult(m_pmp);
 
-	CDXLNode *pdxlnFilter = New(m_pmp) CDXLNode(m_pmp, New(m_pmp) CDXLScalarFilter(m_pmp));
+	CDXLNode *pdxlnFilter = GPOS_NEW(m_pmp) CDXLNode(m_pmp, GPOS_NEW(m_pmp) CDXLScalarFilter(m_pmp));
 
 	pmapvarcolid->LoadProjectElements(DEFAULT_QUERY_LEVEL, OUTER, pdxlnPrL);
 
-	CDXLNode *pdxlnOneTimeFilter = New(m_pmp) CDXLNode(m_pmp, New(m_pmp) CDXLScalarOneTimeFilter(m_pmp));
+	CDXLNode *pdxlnOneTimeFilter = GPOS_NEW(m_pmp) CDXLNode(m_pmp, GPOS_NEW(m_pmp) CDXLScalarOneTimeFilter(m_pmp));
 
-	CDXLNode *pdxln = New(m_pmp) CDXLNode(m_pmp, pdxlopResult);
+	CDXLNode *pdxln = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopResult);
 	pdxln->SetProperties(pdxlprop);
 
 	pdxln->AddChild(pdxlnPrL);
@@ -1507,7 +1507,7 @@ CTranslatorPlStmtToDXL::PdxlnFunctionScanFromPlan
 							pdxlprop,
 							&mapvarcolid
 							);
-		delete pstrAlias;
+		GPOS_DELETE(pstrAlias);
 
 		return pdxln;
 	}
@@ -1516,11 +1516,11 @@ CTranslatorPlStmtToDXL::PdxlnFunctionScanFromPlan
 	CMDIdGPDB *pmdidFunc = CTranslatorUtils::PmdidWithVersion(m_pmp, pfuncexpr->funcid);
 	CMDIdGPDB *pmdidRetType = CTranslatorUtils::PmdidWithVersion(m_pmp, pfuncexpr->funcresulttype);
 
-	CWStringConst *pstrFunc = New(m_pmp) CWStringConst(m_pmp, pstrAlias->Wsz());
-	delete pstrAlias;
-	CDXLPhysicalTVF *pdxlop = New(m_pmp) CDXLPhysicalTVF(m_pmp, pmdidFunc, pmdidRetType, pstrFunc);
+	CWStringConst *pstrFunc = GPOS_NEW(m_pmp) CWStringConst(m_pmp, pstrAlias->Wsz());
+	GPOS_DELETE(pstrAlias);
+	CDXLPhysicalTVF *pdxlop = GPOS_NEW(m_pmp) CDXLPhysicalTVF(m_pmp, pmdidFunc, pmdidRetType, pstrFunc);
 
-	CDXLNode *pdxlnTVF = New(m_pmp) CDXLNode(m_pmp, pdxlop);
+	CDXLNode *pdxlnTVF = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlop);
 	// add properties
 	pdxlnTVF->SetProperties(pdxlprop);
 
@@ -1582,9 +1582,9 @@ CTranslatorPlStmtToDXL::PdxlnTblScanFromPlan
 	// get plan costs
 	CDXLPhysicalProperties *pdxlprop = PdxlpropFromPlan(pplan);
 
-	CDXLPhysicalTableScan *pdxlopTS = New(m_pmp) CDXLPhysicalTableScan(m_pmp, pdxltabdesc);
+	CDXLPhysicalTableScan *pdxlopTS = GPOS_NEW(m_pmp) CDXLPhysicalTableScan(m_pmp, pdxltabdesc);
 
-	CDXLNode *pdxlnTblScan = New(m_pmp) CDXLNode(m_pmp, pdxlopTS);
+	CDXLNode *pdxlnTblScan = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopTS);
 	pdxlnTblScan->SetProperties(pdxlprop);
 
 	// construct projection list and filter
@@ -1679,14 +1679,14 @@ CTranslatorPlStmtToDXL::PdxlnIndexScanFromGPDBIndexScan
 
 	GPOS_ASSERT(!fIndexOnlyScan);
 	//{
-	//	pdxlop = New(m_pmp) CDXLPhysicalIndexOnlyScan(m_pmp, pdxltabdesc, pdxlid, edxlissd);
+	//	pdxlop = GPOS_NEW(m_pmp) CDXLPhysicalIndexOnlyScan(m_pmp, pdxltabdesc, pdxlid, edxlissd);
 	//}
 	//else
 	//{
-		pdxlop = New(m_pmp) CDXLPhysicalIndexScan(m_pmp, pdxltabdesc, pdxlid, edxlissd);
+		pdxlop = GPOS_NEW(m_pmp) CDXLPhysicalIndexScan(m_pmp, pdxltabdesc, pdxlid, edxlissd);
 	//}
 
-	CDXLNode *pdxlnIndexScan = New(m_pmp) CDXLNode(m_pmp, pdxlop);
+	CDXLNode *pdxlnIndexScan = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlop);
 
 	// get plan costs
 	CDXLPhysicalProperties *pdxlprop = PdxlpropFromPlan((Plan *)pindexscan);
@@ -1701,7 +1701,7 @@ CTranslatorPlStmtToDXL::PdxlnIndexScanFromGPDBIndexScan
 	}
 
 	// translate index condition
-	CDXLNode *pdxlnIdxCondList = New(m_pmp) CDXLNode(m_pmp, New(m_pmp) CDXLScalarIndexCondList(m_pmp));
+	CDXLNode *pdxlnIdxCondList = GPOS_NEW(m_pmp) CDXLNode(m_pmp, GPOS_NEW(m_pmp) CDXLScalarIndexCondList(m_pmp));
 
 	ListCell *plcQual = NULL;
 	ForEach (plcQual, pindexscan->indexqual)
@@ -1763,8 +1763,8 @@ CTranslatorPlStmtToDXL::PdxlnLimitFromPlan
 	// get plan costs
 	CDXLPhysicalProperties *pdxlprop = PdxlpropFromPlan(pplan);
 
-	CDXLPhysicalLimit *pdxlopLimit = New(m_pmp) CDXLPhysicalLimit(m_pmp);
-	CDXLNode *pdxlnLimit = New(m_pmp) CDXLNode(m_pmp, pdxlopLimit);
+	CDXLPhysicalLimit *pdxlopLimit = GPOS_NEW(m_pmp) CDXLPhysicalLimit(m_pmp);
+	CDXLNode *pdxlnLimit = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopLimit);
 	pdxlnLimit->SetProperties(pdxlprop);
 
 	Plan *pplanChildPlan = outerPlan(plimit);
@@ -1787,8 +1787,8 @@ CTranslatorPlStmtToDXL::PdxlnLimitFromPlan
 	pdxlnLimit->AddChild(pdxlnPrL); 		// project list
 	pdxlnLimit->AddChild(pdxlnChildPlan);
 
-	CDXLScalarLimitCount *pdxlopLimitCount = New(m_pmp) CDXLScalarLimitCount(m_pmp);
-	CDXLNode *pdxlnLimitCount = New(m_pmp) CDXLNode(m_pmp, pdxlopLimitCount);
+	CDXLScalarLimitCount *pdxlopLimitCount = GPOS_NEW(m_pmp) CDXLScalarLimitCount(m_pmp);
+	CDXLNode *pdxlnLimitCount = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopLimitCount);
 
 	if(NULL != plimit->limitCount)
 	{
@@ -1801,8 +1801,8 @@ CTranslatorPlStmtToDXL::PdxlnLimitFromPlan
 	}
 	pdxlnLimit->AddChild(pdxlnLimitCount);
 
-	CDXLScalarLimitOffset *pdxlopLimitOffset = New(m_pmp) CDXLScalarLimitOffset(m_pmp);
-	CDXLNode *pdxlnLimitOffset = New(m_pmp) CDXLNode(m_pmp, pdxlopLimitOffset);
+	CDXLScalarLimitOffset *pdxlopLimitOffset = GPOS_NEW(m_pmp) CDXLScalarLimitOffset(m_pmp);
+	CDXLNode *pdxlnLimitOffset = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopLimitOffset);
 
 	if(NULL != plimit->limitOffset)
 	{
@@ -1843,15 +1843,15 @@ CTranslatorPlStmtToDXL::PdxlnMaterializeFromPlan
 	if (SHARE_NOTSHARED == pmat->share_type)
 	{
 		// materialize node is not shared
-		pdxlopMat = New(m_pmp) CDXLPhysicalMaterialize(m_pmp, pmat->cdb_strict);
+		pdxlopMat = GPOS_NEW(m_pmp) CDXLPhysicalMaterialize(m_pmp, pmat->cdb_strict);
 	}
 	else
 	{
 		// create a shared materialize node
-		pdxlopMat = New(m_pmp) CDXLPhysicalMaterialize(m_pmp, pmat->cdb_strict, pmat->share_id, pmat->driver_slice, pmat->nsharer_xslice);
+		pdxlopMat = GPOS_NEW(m_pmp) CDXLPhysicalMaterialize(m_pmp, pmat->cdb_strict, pmat->share_id, pmat->driver_slice, pmat->nsharer_xslice);
 	}
 
-	CDXLNode *pdxlnMaterialize = New(m_pmp) CDXLNode(m_pmp, pdxlopMat);
+	CDXLNode *pdxlnMaterialize = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopMat);
 	pdxlnMaterialize->SetProperties(pdxlprop);
 
 	Plan *pplanChildPlan = outerPlan(pmat);
@@ -1910,8 +1910,8 @@ CTranslatorPlStmtToDXL::PdxlnSharedScanFromPlan
  	CDXLPhysicalSharedScan *pdxlopShScan = NULL;
 
 	CDXLSpoolInfo *pspoolinfo = PspoolinfoFromSharedScan(pshscan);
-	pdxlopShScan = New(m_pmp) CDXLPhysicalSharedScan(m_pmp, pspoolinfo);
-	CDXLNode *pdxlnSharedScan = New(m_pmp) CDXLNode(m_pmp, pdxlopShScan);
+	pdxlopShScan = GPOS_NEW(m_pmp) CDXLPhysicalSharedScan(m_pmp, pspoolinfo);
+	CDXLNode *pdxlnSharedScan = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopShScan);
 	pdxlnSharedScan->SetProperties(pdxlprop);
 
 	Plan *pplanChildPlan = outerPlan(pshscan);
@@ -1958,7 +1958,7 @@ CTranslatorPlStmtToDXL::PdxlnSharedScanFromPlan
 	if (NULL != pplanChildPlan)
 	{
 		// first encounter of this shared scan id: store the translated proj list
-		ULONG *pulSharedScanId = New(m_pmp) ULONG(pshscan->share_id);
+		ULONG *pulSharedScanId = GPOS_NEW(m_pmp) ULONG(pshscan->share_id);
 
 		pdxlnPrL->AddRef();
 #ifdef GPOS_DEBUG
@@ -2007,9 +2007,9 @@ CTranslatorPlStmtToDXL::PdxlnSequence
 	GPOS_ASSERT(NULL != pdxlprop);
 
 	// construct DXL sequence operator
-	CDXLPhysicalSequence *pdxlop = New(m_pmp) CDXLPhysicalSequence(m_pmp);
+	CDXLPhysicalSequence *pdxlop = GPOS_NEW(m_pmp) CDXLPhysicalSequence(m_pmp);
 
-	CDXLNode *pdxln = New(m_pmp) CDXLNode(m_pmp, pdxlop);
+	CDXLNode *pdxln = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlop);
 	pdxln->SetProperties(pdxlprop);
 
 	// translate last child of sequence operator so we can translate the project list
@@ -2082,9 +2082,9 @@ CTranslatorPlStmtToDXL::PdxlnDynamicTableScan
 
 	CDXLTableDescr *pdxltabdesc = CTranslatorUtils::Pdxltabdesc(m_pmp, m_pmda, m_pidgtor, prte);
 
-	CDXLPhysicalDynamicTableScan *pdxlop = New(m_pmp) CDXLPhysicalDynamicTableScan(m_pmp, pdxltabdesc, pdts->partIndex, pdts->partIndexPrintable);
+	CDXLPhysicalDynamicTableScan *pdxlop = GPOS_NEW(m_pmp) CDXLPhysicalDynamicTableScan(m_pmp, pdxltabdesc, pdts->partIndex, pdts->partIndexPrintable);
 
-	CDXLNode *pdxln = New(m_pmp) CDXLNode(m_pmp, pdxlop);
+	CDXLNode *pdxln = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlop);
 	pdxln->SetProperties(pdxlprop);
 
 	// construct projection list
@@ -2188,7 +2188,7 @@ CTranslatorPlStmtToDXL::PdxlnPrLFromTL
 	CMappingVarColId *pmapvarcolid
 	)
 {
-	CDXLNode *pdxlnPrL = New(m_pmp) CDXLNode(m_pmp, New(m_pmp) CDXLScalarProjList(m_pmp));
+	CDXLNode *pdxlnPrL = GPOS_NEW(m_pmp) CDXLNode(m_pmp, GPOS_NEW(m_pmp) CDXLScalarProjList(m_pmp));
 	ListCell *plcte = NULL;
 
 	// construct a proj list node for each entry in the target list
@@ -2208,9 +2208,9 @@ CTranslatorPlStmtToDXL::PdxlnPrLFromTL
 		if (NULL != pte->resname)
 		{
 			CWStringDynamic *pstrAlias = CDXLUtils::PstrFromSz(m_pmp, pte->resname);
-			pmdnameAlias = New(m_pmp) CMDName(m_pmp, pstrAlias);
+			pmdnameAlias = GPOS_NEW(m_pmp) CMDName(m_pmp, pstrAlias);
 			// CName constructor copies string
-			delete pstrAlias;
+			GPOS_DELETE(pstrAlias);
 		}
 
 		if (IsA(pte->expr, Var))
@@ -2223,7 +2223,7 @@ CTranslatorPlStmtToDXL::PdxlnPrLFromTL
 			if (NULL == pte->resname)
 			{
 				// no alias provided - create a copy of the original column name
-				pmdnameAlias = New(m_pmp) CMDName
+				pmdnameAlias = GPOS_NEW(m_pmp) CMDName
 											(
 											m_pmp,
 											pdxlopIdent->Pdxlcr()->Pmdname()->Pstr()
@@ -2239,17 +2239,17 @@ CTranslatorPlStmtToDXL::PdxlnPrLFromTL
 			{
 				// no column name - make up one
 				CWStringConst strUnnamedCol(GPOS_WSZ_LIT("?column?"));
-				pmdnameAlias = New(m_pmp) CMDName(m_pmp, &strUnnamedCol);
+				pmdnameAlias = GPOS_NEW(m_pmp) CMDName(m_pmp, &strUnnamedCol);
 			}
 		}
 
 		GPOS_ASSERT(NULL != pmdnameAlias);
 
 		// construct a projection element operator
-		pdxlopPrEl = New(m_pmp) CDXLScalarProjElem(m_pmp, ulPrElId, pmdnameAlias);
+		pdxlopPrEl = GPOS_NEW(m_pmp) CDXLScalarProjElem(m_pmp, ulPrElId, pmdnameAlias);
 
 		// create the DXL node holding the proj elem
-		CDXLNode *pdxlnPrEl = New(m_pmp) CDXLNode(m_pmp, pdxlopPrEl);
+		CDXLNode *pdxlnPrEl = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopPrEl);
 		pdxlnPrEl->AddChild(pdxlnChild);
 
 		// add proj elem to proj list
@@ -2276,10 +2276,10 @@ CTranslatorPlStmtToDXL::PdxlpropFromPlan
 	const Plan *pplan
 	)
 {
-	CWStringDynamic *pstrTotalCost = New(m_pmp) CWStringDynamic(m_pmp);
-	CWStringDynamic *pstrStartupCost = New(m_pmp) CWStringDynamic(m_pmp);
-	CWStringDynamic *pstrRows = New(m_pmp) CWStringDynamic(m_pmp);
-	CWStringDynamic *pstrWidth = New(m_pmp) CWStringDynamic(m_pmp);
+	CWStringDynamic *pstrTotalCost = GPOS_NEW(m_pmp) CWStringDynamic(m_pmp);
+	CWStringDynamic *pstrStartupCost = GPOS_NEW(m_pmp) CWStringDynamic(m_pmp);
+	CWStringDynamic *pstrRows = GPOS_NEW(m_pmp) CWStringDynamic(m_pmp);
+	CWStringDynamic *pstrWidth = GPOS_NEW(m_pmp) CWStringDynamic(m_pmp);
 
 	const WCHAR wszFormat[] = GPOS_WSZ_LIT("%.2f");
 	pstrTotalCost->AppendFormat(wszFormat, pplan->total_cost);
@@ -2287,14 +2287,14 @@ CTranslatorPlStmtToDXL::PdxlpropFromPlan
 	pstrStartupCost->AppendFormat(wszFormat, pplan->startup_cost);
 	pstrRows->AppendFormat(wszFormat, pplan->plan_rows);
 
-	CDXLOperatorCost *pdxlopcost = New(m_pmp) CDXLOperatorCost
+	CDXLOperatorCost *pdxlopcost = GPOS_NEW(m_pmp) CDXLOperatorCost
 												(
 												pstrStartupCost,
 												pstrTotalCost,
 												pstrRows,
 												pstrWidth
 												);
-	CDXLPhysicalProperties *pdxlprop = New(m_pmp) CDXLPhysicalProperties(pdxlopcost);
+	CDXLPhysicalProperties *pdxlprop = GPOS_NEW(m_pmp) CDXLPhysicalProperties(pdxlopcost);
 
 	return pdxlprop;
 }
@@ -2321,7 +2321,7 @@ CTranslatorPlStmtToDXL::PdxlnHashExprLFromList
 	GPOS_ASSERT(NULL != plHashExprTypes);
 	GPOS_ASSERT(gpdb::UlListLength(plHashExpr) == gpdb::UlListLength(plHashExprTypes));
 
-	CDXLNode *pdxlnHashExprList = New(m_pmp) CDXLNode(m_pmp, New(m_pmp) CDXLScalarHashExprList(m_pmp));
+	CDXLNode *pdxlnHashExprList = GPOS_NEW(m_pmp) CDXLNode(m_pmp, GPOS_NEW(m_pmp) CDXLScalarHashExprList(m_pmp));
 
 	ListCell *plcHashExpr = NULL;
 	ListCell *plcHashExprType = NULL;
@@ -2335,7 +2335,7 @@ CTranslatorPlStmtToDXL::PdxlnHashExprLFromList
 
 		// construct a DXL hash expression node from the hash expression type id and the translated expression
 		CMDIdGPDB *pmdidExprType = CTranslatorUtils::PmdidWithVersion(m_pmp, oid);
-		CDXLNode *pdxlnHashExpr = New(m_pmp) CDXLNode(m_pmp, New(m_pmp) CDXLScalarHashExpr(m_pmp, pmdidExprType));
+		CDXLNode *pdxlnHashExpr = GPOS_NEW(m_pmp) CDXLNode(m_pmp, GPOS_NEW(m_pmp) CDXLScalarHashExpr(m_pmp, pmdidExprType));
 
 		CMappingVarColId mapvarcolid(m_pmp);
 
@@ -2371,8 +2371,8 @@ CTranslatorPlStmtToDXL::PdxlnSortingColListFromPlan
 	const CDXLNode *pdxlnPrL
 	)
 {
-	CDXLScalarSortColList *pdxlopSortColList = New(m_pmp) CDXLScalarSortColList(m_pmp);
-	CDXLNode *pdxlnSortColList = New(m_pmp) CDXLNode(m_pmp, pdxlopSortColList);
+	CDXLScalarSortColList *pdxlopSortColList = GPOS_NEW(m_pmp) CDXLScalarSortColList(m_pmp);
+	CDXLNode *pdxlnSortColList = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopSortColList);
 
 	if (0 == ulNumCols)
 	{
@@ -2404,16 +2404,16 @@ CTranslatorPlStmtToDXL::PdxlnSortingColListFromPlan
 
 		// TODO: antovl - Jan 19, 2011; read nullsFirst from the plan node;
 		// currently GPDB does not support this
-		CDXLScalarSortCol *pdxlopSortCol = New(m_pmp) CDXLScalarSortCol
+		CDXLScalarSortCol *pdxlopSortCol = GPOS_NEW(m_pmp) CDXLScalarSortCol
 													(
 													m_pmp,
 													ulSortColId,
 													pmdidSortOp,
-													New(m_pmp) CWStringConst(pstrSortOpName->Wsz()),
+													GPOS_NEW(m_pmp) CWStringConst(pstrSortOpName->Wsz()),
 													false	// nullsFirst
 													);
 
-		CDXLNode *pdxlnSortCol = New(m_pmp) CDXLNode(m_pmp, pdxlopSortCol);
+		CDXLNode *pdxlnSortCol = GPOS_NEW(m_pmp) CDXLNode(m_pmp, pdxlopSortCol);
 		pdxlnSortColList->AddChild(pdxlnSortCol);
 	}
 
@@ -2447,7 +2447,7 @@ CTranslatorPlStmtToDXL::TranslateMotionSegmentInfo
 	if (pChildFlow->flotype == FLOW_SINGLETON)
 	{
 		// only one segment sends data
-		INT *piInputSegId = New(m_pmp) INT(pChildFlow->segindex);
+		INT *piInputSegId = GPOS_NEW(m_pmp) INT(pChildFlow->segindex);
 		pdrgpiInputSegIds->Append(piInputSegId);
 	}
 	else
@@ -2455,7 +2455,7 @@ CTranslatorPlStmtToDXL::TranslateMotionSegmentInfo
 		// all segments send data
 		for (ULONG ul = 0; ul < ulSegmentCount; ul++)
 		{
-			INT *piInputSegId = New(m_pmp) INT(ul);
+			INT *piInputSegId = GPOS_NEW(m_pmp) INT(ul);
 			pdrgpiInputSegIds->Append(piInputSegId );
 		}
 	}
@@ -2468,7 +2468,7 @@ CTranslatorPlStmtToDXL::TranslateMotionSegmentInfo
 
 		for(ULONG ul = 0; ul < (ULONG) pmotion->numOutputSegs; ul++)
 		{
-			INT *piSegId = New(m_pmp) INT(pmotion->outputSegIdx[ul]);
+			INT *piSegId = GPOS_NEW(m_pmp) INT(pmotion->outputSegIdx[ul]);
 			pdrgpiOutputSegIds->Append(piSegId);
 		}
 	}
@@ -2477,7 +2477,7 @@ CTranslatorPlStmtToDXL::TranslateMotionSegmentInfo
 		// gather motion
 		GPOS_ASSERT(1 == pmotion->numOutputSegs);
 
-		INT *piOutputSegId = New(m_pmp) INT(pmotion->outputSegIdx[0]);
+		INT *piOutputSegId = GPOS_NEW(m_pmp) INT(pmotion->outputSegIdx[0]);
 		pdrgpiOutputSegIds->Append(piOutputSegId);
 	}
 	else
@@ -2485,7 +2485,7 @@ CTranslatorPlStmtToDXL::TranslateMotionSegmentInfo
 		// broadcast motion
 		for (ULONG ul = 0; ul < ulSegmentCount; ul++)
 		{
-			INT *piOutputSegId = New(m_pmp) INT(ul);
+			INT *piOutputSegId = GPOS_NEW(m_pmp) INT(ul);
 			pdrgpiOutputSegIds->Append(piOutputSegId);
 		}
 	}
@@ -2534,7 +2534,7 @@ CTranslatorPlStmtToDXL::PspoolinfoFromSharedScan
 		fMultiSlice = true;
 	}
 
-	CDXLSpoolInfo *pspoolinfo = New(m_pmp) CDXLSpoolInfo(pshscan->share_id, edxlsptype, fMultiSlice, pshscan->driver_slice);
+	CDXLSpoolInfo *pspoolinfo = GPOS_NEW(m_pmp) CDXLSpoolInfo(pshscan->share_id, edxlsptype, fMultiSlice, pshscan->driver_slice);
 	return pspoolinfo;
 }