You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by su...@apache.org on 2016/10/11 03:57:40 UTC

[3/7] incubator-trafodion git commit: Post merge commit. All files here relate to NAList

Post merge commit. All files here relate to NAList


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

Branch: refs/heads/master
Commit: c164c5b0ed396cc1764c695846507c7edeb08cba
Parents: a143ba9
Author: Suresh Subbiah <su...@apache.org>
Authored: Fri Oct 7 22:22:25 2016 +0000
Committer: Suresh Subbiah <su...@apache.org>
Committed: Fri Oct 7 22:22:25 2016 +0000

----------------------------------------------------------------------
 core/sql/arkcmp/CmpContext.cpp           |  6 +++-
 core/sql/arkcmp/CmpStoredProc.cpp        |  2 +-
 core/sql/common/Collections.h            |  2 +-
 core/sql/generator/GenExplain.cpp        |  2 +-
 core/sql/generator/GenKey.cpp            |  2 +-
 core/sql/generator/GenRelGrby.cpp        |  2 +-
 core/sql/generator/GenRelJoin.cpp        |  2 +-
 core/sql/generator/GenRelScan.cpp        |  2 +-
 core/sql/generator/GenRelUpdate.cpp      | 12 +++----
 core/sql/generator/GenResources.cpp      |  2 +-
 core/sql/generator/Generator.cpp         | 15 ++++++--
 core/sql/optimizer/Analyzer.cpp          | 15 ++++----
 core/sql/optimizer/Analyzer.h            |  5 +++
 core/sql/optimizer/BindRelExpr.cpp       |  6 ++--
 core/sql/optimizer/BindWA.cpp            |  1 +
 core/sql/optimizer/CacheWA.cpp           |  3 ++
 core/sql/optimizer/ColStatDesc.cpp       | 14 ++++----
 core/sql/optimizer/ControlDB.cpp         |  8 +++--
 core/sql/optimizer/HbaseSearchSpec.h     | 52 ++++++++++++++++-----------
 core/sql/optimizer/ItemFuncUDF.h         | 11 +++++-
 core/sql/optimizer/ItemOther.h           |  2 +-
 core/sql/optimizer/LargeScopeRules.cpp   |  4 +--
 core/sql/optimizer/MVCandidates.cpp      | 10 +++---
 core/sql/optimizer/MVInfo.cpp            | 13 +++----
 core/sql/optimizer/MVJoinGraph.cpp       |  5 +--
 core/sql/optimizer/MultiJoin.cpp         |  2 +-
 core/sql/optimizer/NAClusterInfo.cpp     |  2 +-
 core/sql/optimizer/NATable.cpp           |  8 +++--
 core/sql/optimizer/NormWA.cpp            |  4 +--
 core/sql/optimizer/NormWA.h              |  8 +++++
 core/sql/optimizer/OptItemExpr.cpp       |  2 +-
 core/sql/optimizer/OptLogRelExpr.cpp     |  2 +-
 core/sql/optimizer/QRDescGenerator.cpp   |  2 +-
 core/sql/optimizer/QRDescGenerator.h     |  5 +--
 core/sql/optimizer/RETDesc.cpp           | 10 +++---
 core/sql/optimizer/Refresh.cpp           |  2 +-
 core/sql/optimizer/RelExeUtil.h          |  3 +-
 core/sql/optimizer/RelExpr.cpp           |  6 ++--
 core/sql/optimizer/RelPackedRows.cpp     |  2 +-
 core/sql/optimizer/RelRoutine.cpp        |  2 +-
 core/sql/optimizer/RelScan.h             |  7 ++--
 core/sql/optimizer/SchemaDB.cpp          |  2 +-
 core/sql/optimizer/SearchKey.cpp         |  2 +-
 core/sql/optimizer/Stats.cpp             |  3 +-
 core/sql/optimizer/VEGTable.cpp          |  6 ++--
 core/sql/optimizer/ValueDesc.cpp         |  2 +-
 core/sql/optimizer/memo.cpp              |  2 +-
 core/sql/parser/SqlParserAux.cpp         |  6 ++--
 core/sql/parser/StmtDDLCreate.cpp        |  6 ++--
 core/sql/parser/sqlparser.y              | 36 +++++++++----------
 core/sql/qmscommon/Range.cpp             |  3 +-
 core/sql/qmscommon/Range.h               |  3 +-
 core/sql/sqlcomp/CmpDescribe.cpp         |  4 +--
 core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp | 10 +++---
 core/sql/sqlcomp/CmpSeabaseDDLindex.cpp  |  8 ++---
 core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp  |  4 +--
 core/sql/sqlcomp/CmpSeabaseDDLtable.cpp  | 28 +++++++--------
 core/sql/sqlcomp/CmpSeabaseDDLview.cpp   |  4 +--
 core/sql/sqlcomp/PrivMgrPrivileges.cpp   |  8 ++---
 core/sql/sqlcomp/QCache.cpp              |  2 +-
 core/sql/sqlcomp/QCache.h                |  1 +
 core/sql/sqlcomp/nadefaults.cpp          |  1 +
 core/sql/sqlcomp/parser.cpp              |  5 ++-
 core/sql/udrserv/spinfo.cpp              |  3 +-
 core/sql/ustat/hs_cli.cpp                |  2 +-
 65 files changed, 246 insertions(+), 170 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/arkcmp/CmpContext.cpp
----------------------------------------------------------------------
diff --git a/core/sql/arkcmp/CmpContext.cpp b/core/sql/arkcmp/CmpContext.cpp
index f48d7d2..6550a39 100644
--- a/core/sql/arkcmp/CmpContext.cpp
+++ b/core/sql/arkcmp/CmpContext.cpp
@@ -140,7 +140,11 @@ CmpContext::CmpContext(UInt32 f, CollHeap * h)
   CDBList_(NULL),
   allControlCount_(0),
   optSimulator_(NULL),
-  hosts_(h)
+  hosts_(h),
+  invocationInfos_(h),
+  planInfos_(h),
+  routineHandles_(h),
+  ddlObjs_(h)
 {
   SetMode(isDynamicSQL() ? STMT_DYNAMIC : STMT_STATIC);
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/arkcmp/CmpStoredProc.cpp
----------------------------------------------------------------------
diff --git a/core/sql/arkcmp/CmpStoredProc.cpp b/core/sql/arkcmp/CmpStoredProc.cpp
index bd44e9b..7d90c7e 100644
--- a/core/sql/arkcmp/CmpStoredProc.cpp
+++ b/core/sql/arkcmp/CmpStoredProc.cpp
@@ -733,7 +733,7 @@ CmpStoredProc::ExecStatus CmpStoredProc::close(CmpSPDataObject&)
 // Methods of CmpISPFuncs
 // -----------------------------------------------------------------------
 
-NAList<CmpISPFuncs::ProcFuncsStruct> CmpISPFuncs::procFuncsArray_(256);
+NAList<CmpISPFuncs::ProcFuncsStruct> CmpISPFuncs::procFuncsArray_(NULL,256);
 
 CmpISPFuncs::CmpISPFuncs()
 {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/common/Collections.h
----------------------------------------------------------------------
diff --git a/core/sql/common/Collections.h b/core/sql/common/Collections.h
index ac482ba..6337ba7 100644
--- a/core/sql/common/Collections.h
+++ b/core/sql/common/Collections.h
@@ -3028,7 +3028,7 @@ public:
     // no-op if NAKeyLookup couldn't possibly allocate any memory 
     if ( keyProvenance_ != NAKeyLookupEnums::KEY_INSIDE_VALUE ) return ;
 
-    NAList<K *> keys ;
+    NAList<K *> keys (this->heap_);
     dumpKeys (keys) ;
     CollIndex entries = keys.entries() ; 
     for ( CollIndex i = 0 ; i < entries ; i++ )

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/generator/GenExplain.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenExplain.cpp b/core/sql/generator/GenExplain.cpp
index 0a6fb9a..1681d38 100644
--- a/core/sql/generator/GenExplain.cpp
+++ b/core/sql/generator/GenExplain.cpp
@@ -77,7 +77,7 @@ void RelExpr::addExplainPredicates(ExplainTupleMaster * explainTuple,
   // labelList is on global heap to avoid memory lekas; if it were on
   // statement heap, it would cause memory leak as the elements of the
   // list on global heap CR 10-010813-4515
-  NAList<NAString>   labelList;
+  NAList<NAString>   labelList(generator->wHeap());
 
   ExprNode           *currExpr = NULL;
   NAString           unParsed((size_t)4096, generator->wHeap());

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/generator/GenKey.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenKey.cpp b/core/sql/generator/GenKey.cpp
index f2bc660..21e0420 100644
--- a/core/sql/generator/GenKey.cpp
+++ b/core/sql/generator/GenKey.cpp
@@ -383,7 +383,7 @@ short ExpGenerator::buildKeyInfo(keyRangeGen ** keyInfo, // out -- generated obj
 
       MdamColumnGen * first = 0;
       MdamColumnGen * last = 0;
-      LIST(NAType *) keyTypeList;  // to keep the type of the keys for later
+      LIST(NAType *) keyTypeList(generator->wHeap());//to keep the type of the keys for later
 
       for (i = 0; i < keyCount; i++)
         {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/generator/GenRelGrby.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenRelGrby.cpp b/core/sql/generator/GenRelGrby.cpp
index 16b543f..e1e3c65 100644
--- a/core/sql/generator/GenRelGrby.cpp
+++ b/core/sql/generator/GenRelGrby.cpp
@@ -959,7 +959,7 @@ short HashGroupBy::codeGen(Generator * generator) {
   // First, construct a list of the item expressions representing the
   // grouping attributes.
   //
-  LIST(ItemExpr*) bitMuxAttrList;
+  LIST(ItemExpr*) bitMuxAttrList(generator->wHeap());
   for(valId = groupValIds.init();
       groupValIds.next(valId);
       groupValIds.advance(valId)) {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/generator/GenRelJoin.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenRelJoin.cpp b/core/sql/generator/GenRelJoin.cpp
index 6635756..9fe7ed1 100644
--- a/core/sql/generator/GenRelJoin.cpp
+++ b/core/sql/generator/GenRelJoin.cpp
@@ -709,7 +709,7 @@ short HashJoin::codeGen(Generator * generator) {
   // lifted some day in the future, but in all "normal" cases this happens
   // anyway)
 
-  LIST(CollIndex) hashKeyColumns;
+  LIST(CollIndex) hashKeyColumns(generator->wHeap());
 
   ////////////////////////////////////////////////////////////
   // Before generating any expression for this node, set the

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/generator/GenRelScan.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenRelScan.cpp b/core/sql/generator/GenRelScan.cpp
index 87f2cd7..58a2331 100644
--- a/core/sql/generator/GenRelScan.cpp
+++ b/core/sql/generator/GenRelScan.cpp
@@ -2711,7 +2711,7 @@ short HbaseAccess::codeGen(Generator * generator)
     {
       listOfFetchedColNames = new(space) Queue(space);
 
-      NAList<NAString> sortedColList;
+      NAList<NAString> sortedColList(generator->wHeap());
       sortValues(retHbaseColRefSet_, sortedColList);
       
       for (Lng32 ij = 0; ij < sortedColList.entries(); ij++)

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/generator/GenRelUpdate.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenRelUpdate.cpp b/core/sql/generator/GenRelUpdate.cpp
index 5713181..cff2a12 100644
--- a/core/sql/generator/GenRelUpdate.cpp
+++ b/core/sql/generator/GenRelUpdate.cpp
@@ -564,11 +564,11 @@ static void orderColumnsByAlignment(NAArray<BaseColumn *>   columns,
                                     NAArray<BaseColumn *> * orderedCols )
 {
   Int16  rc = 0;
-  NAList<BaseColumn *> varCols(5);
-  NAList<BaseColumn *> addedCols(5);
-  NAList<BaseColumn *> align4(5);
-  NAList<BaseColumn *> align2(5);
-  NAList<BaseColumn *> align1(5);
+  NAList<BaseColumn *> varCols(STMTHEAP, 5);
+  NAList<BaseColumn *> addedCols(STMTHEAP, 5);
+  NAList<BaseColumn *> align4(STMTHEAP, 5);
+  NAList<BaseColumn *> align2(STMTHEAP, 5);
+  NAList<BaseColumn *> align1(STMTHEAP, 5);
   BaseColumn *currColumn;
   CollIndex i, k;
   Int32 alignmentSize;
@@ -2328,7 +2328,7 @@ short HbaseInsert::codeGen(Generator *generator)
   ULng32 rowIdLen = 0;
 
   ValueIdList savedInputVIDlist;
-  NAList<Attributes*> savedInputAttrsList;
+  NAList<Attributes*> savedInputAttrsList(generator->wHeap());
 
   const ValueIdList &indexVIDlist = getIndexDesc()->getIndexColumns();
   for (CollIndex ii = 0; ii < newRecExprArray().entries(); ii++)

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/generator/GenResources.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenResources.cpp b/core/sql/generator/GenResources.cpp
index a79ade5..c381df8 100644
--- a/core/sql/generator/GenResources.cpp
+++ b/core/sql/generator/GenResources.cpp
@@ -74,9 +74,9 @@ static ExScratchDiskDrive * genScratchDisks(const NAString &def,
   // objects (temporary because we want to make the final list a
   // contiguous array)
   // ---------------------------------------------------------------------
-  LIST(ExScratchDiskDrive *) tempList;
   CollHeap *heap = generator->wHeap();
   Space *space = generator->getSpace();
+  LIST(ExScratchDiskDrive *) tempList(heap);
   struct stat st;
   
  

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/generator/Generator.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/Generator.cpp b/core/sql/generator/Generator.cpp
index 77ac6d0..125fff9 100644
--- a/core/sql/generator/Generator.cpp
+++ b/core/sql/generator/Generator.cpp
@@ -91,9 +91,18 @@
 //////////////////////////////////////////////////
 Generator::Generator(CmpContext* currentCmpContext) :
     currentCmpContext_(currentCmpContext)
- ,  objectUids_(wHeap(), 1)
- ,  objectNames_(wHeap(),0)
- ,  snapshotScanTmpLocation_(NULL)
+    ,objectUids_(wHeap(), 1)
+    ,objectNames_(wHeap(),0)
+    ,snapshotScanTmpLocation_(NULL)
+    ,baseFileDescs_(wHeap())       
+    ,baseStoiList_(wHeap())   
+    ,numOfVpsPerBase_(wHeap())              
+    ,vpFileDescs_(wHeap())       
+    ,lateNameInfoList_(wHeap())  
+    ,genOperSimInfoList_(wHeap())  
+    ,stoiList_(wHeap())  
+    ,insertNodesList_(wHeap())  
+    ,avgVarCharSizeList_(wHeap())  
 {
   // nothing generated yet.
   genObj = 0;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/Analyzer.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/Analyzer.cpp b/core/sql/optimizer/Analyzer.cpp
index c899b16..1261f8c 100644
--- a/core/sql/optimizer/Analyzer.cpp
+++ b/core/sql/optimizer/Analyzer.cpp
@@ -3515,7 +3515,7 @@ TableAnalysis::getCoveringAccessPaths(NABoolean indexOnly,
                                       const ValueIdSet& vidSet,
                                       NABoolean exactMatch)
 {
-  LIST(AccessPathAnalysis*) accessPaths, retAccessPaths;
+  LIST(AccessPathAnalysis*) accessPaths(STMTHEAP), retAccessPaths(STMTHEAP);
 
   if (indexOnly)
     // Search index-only access paths.
@@ -5381,7 +5381,8 @@ void JBBSubset::print (FILE *f,
 JBBSubsetAnalysis::JBBSubsetAnalysis(const JBBSubset & subset,
                                      CollHeap *outHeap)
   :leftDeepJoinSequence_(CmpCommon::statementHeap(),
-                         subset.getJBBCs().entries())
+                         subset.getJBBCs().entries()),
+   matchingMVs_(CmpCommon::statementHeap())
 {
   heap_ = outHeap;
   jbb_ = subset.getJBB();
@@ -5512,7 +5513,7 @@ void JBBSubsetAnalysis::init()
   {
      synthLogPropPath_ =
        new (CmpCommon::statementHeap()) 
-         CASortedList(jbbcs_.entries(), CmpCommon::statementHeap());
+       CASortedList(CmpCommon::statementHeap(), jbbcs_.entries());
      
      (*synthLogPropPath_).insert(jbbcs_.getFirst());
   }
@@ -6101,7 +6102,7 @@ CASortedList * JBBSubsetAnalysis::getNodesSortedByLocalPredsCard()
                                      getNodesSortedByLocalPredsCard();
 
   CASortedList * result = new (CmpCommon::statementHeap())
-     CASortedList(childSet.entries(), CmpCommon::statementHeap());
+    CASortedList(CmpCommon::statementHeap(), childSet.entries());
 
   for( UInt32 i = 0;
        i < sortedListOfNodes->entries();
@@ -6127,7 +6128,7 @@ CASortedList * JBBSubsetAnalysis::getNodesSortedByLocalKeyPrefixPredsCard()
                                      getNodesSortedByLocalKeyPrefixPredsCard();
 
   CASortedList * result = new (CmpCommon::statementHeap())
-      CASortedList(childSet.entries(), CmpCommon::statementHeap());
+    CASortedList(CmpCommon::statementHeap(), childSet.entries());
 
   for( UInt32 i = 0;
        i < sortedListOfNodes->entries();
@@ -8859,7 +8860,7 @@ void JBBSubsetAnalysis::arrangeTablesAfterFactForStarJoinTypeII()
   }
 
   // compute join order
-  NAList<CANodeIdSet> orderedListOfFringes;
+  NAList<CANodeIdSet> orderedListOfFringes(STMTHEAP);
   orderedListOfFringes.insert(factTableSet);
 
 
@@ -9342,7 +9343,7 @@ CASortedList* JBBWA::sort(JBBWA::shortMetricFunc getSortMetric)
 {
   CANodeIdSet nodesToSort = parentJBB_->getJBBCs();
   CASortedList * result = new (CmpCommon::statementHeap())
-            CASortedList(nodesToSort.entries(), CmpCommon::statementHeap());
+    CASortedList(CmpCommon::statementHeap(), nodesToSort.entries());
 
   while(nodesToSort.entries())
   {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/Analyzer.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/Analyzer.h b/core/sql/optimizer/Analyzer.h
index 8e1608e..00a5ae5 100644
--- a/core/sql/optimizer/Analyzer.h
+++ b/core/sql/optimizer/Analyzer.h
@@ -1541,6 +1541,9 @@ private:
 
   // construct a TableAnalysis
   TableAnalysis()
+    :accessPaths_(STMTHEAP),
+    indexOnlyAccessPaths_(STMTHEAP),
+    uniqueIndexes_(STMTHEAP)
   {
     // should never be called
 	// use a constructor that passes NodeAnalysis* and TableDesc*
@@ -2436,6 +2439,8 @@ public:
 private:
 
   JBBSubsetAnalysis(CollHeap *outHeap = CmpCommon::statementHeap())
+    : leftDeepJoinSequence_(outHeap),
+    matchingMVs_(outHeap)
   {
     // should never be called
   }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/BindRelExpr.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/BindRelExpr.cpp b/core/sql/optimizer/BindRelExpr.cpp
index 3845ebe..7a38b03 100644
--- a/core/sql/optimizer/BindRelExpr.cpp
+++ b/core/sql/optimizer/BindRelExpr.cpp
@@ -9496,7 +9496,7 @@ RelExpr *Insert::bindNode(BindWA *bindWA)
   //
   NABoolean view = bindWA->getNATable(getTableName())->getViewText() != NULL;
   ValueIdList tgtColList, userColList, sysColList, *userColListPtr;
-  CollIndexList colnoList;
+  CollIndexList colnoList(STMTHEAP);
   CollIndex totalColCount, defaultColCount, i;
 
   getTableDesc()->getSystemColumnList(sysColList);
@@ -11425,7 +11425,7 @@ void GenericUpdate::bindUpdateExpr(BindWA        *bindWA,
   }
 
   CollIndex     i, j;
-  CollIndexList colnoList;                  // map of col nums (row positions)
+  CollIndexList colnoList(STMTHEAP);   // map of col nums (row positions)
   CollIndex a = assignList.entries();
 
   const ColumnDescList *viewColumns = NULL;
@@ -16547,7 +16547,7 @@ RelExpr *TableMappingUDF::bindNode(BindWA *bindWA)
     RETDesc *childRetDesc = child(i)->getRETDesc();
     
     // Get Name
-    LIST(CorrName*) nameList;
+    LIST(CorrName*) nameList(STMTHEAP);
     childRetDesc->getXTNM().dumpKeys(nameList);
     if (nameList.entries() == 1)
     {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/BindWA.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/BindWA.cpp b/core/sql/optimizer/BindWA.cpp
index 7202d11..49d9586 100644
--- a/core/sql/optimizer/BindWA.cpp
+++ b/core/sql/optimizer/BindWA.cpp
@@ -187,6 +187,7 @@ BindWA::BindWA(SchemaDB *schemaDB, CmpContext* cmpContext, NABoolean inDDL, NABo
      , hasCallStmts_(FALSE)
      , isTrafLoadPrep_(FALSE)
      , flags_(0)
+     , udfList_(wHeap())
 {
   // get current default schema, using NAMETYPE NSK or ANSI rules
   defaultSchema_ = schemaDB_->getDefaultSchema(SchemaDB::APPLY_NAMETYPE_RULES);

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/CacheWA.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/CacheWA.cpp b/core/sql/optimizer/CacheWA.cpp
index 1c5114a..5f8aed4 100644
--- a/core/sql/optimizer/CacheWA.cpp
+++ b/core/sql/optimizer/CacheWA.cpp
@@ -117,6 +117,9 @@ CacheWA::CacheWA(NAHeap *h)
   , hasRewriteEnabledMV_(FALSE)
   , hasParameterizedPred_(FALSE)
   , posCounter_(0)
+  , sqlStmtConstParamPos_(h)
+  , sqlStmtSelParamPos_(h)
+  , hqcSqlConstPos_(h)
 {
   requiredPrefixKeys_ = getDefaultAsLong(QUERY_CACHE_REQUIRED_PREFIX_KEYS);
 }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/ColStatDesc.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/ColStatDesc.cpp b/core/sql/optimizer/ColStatDesc.cpp
index 34e6ee2..4295062 100644
--- a/core/sql/optimizer/ColStatDesc.cpp
+++ b/core/sql/optimizer/ColStatDesc.cpp
@@ -2633,7 +2633,7 @@ ColStatDescList::estimateCardinality (const CostScalar & initialRowCount,
   // NB: we may need to undo some of the adjustments done in the call to
   // useMultiUecIfCorrelatedPreds() above.
   // ---------------------------------------------------------------------
-  CollIndexList joinHistograms; // the CSDL-indices of the join histograms
+  CollIndexList joinHistograms(STMTHEAP); // the CSDL-indices of the join histograms
 
   if (maxSelectivity == NULL)
   {
@@ -2890,7 +2890,7 @@ ColStatDescList::estimateCardinality (const CostScalar & initialRowCount,
     // mc-uec info
     // ---------------------------------------------------------------------
     CostScalar newSemiJoinRowCount = rowRedProduct * semiJoinRowcountBeforePreds;
-    CollIndexList joinHists; // the CSDL-indices of the join histograms
+    CollIndexList joinHists(STMTHEAP); //the CSDL-indices of the join histograms
 
     this->addRecentlyJoinedCols(loopLimit, entries());
 
@@ -5328,8 +5328,8 @@ ColStatDescList::applyPred (ItemExpr *pred,
   // predicate.  Later they need to be oriented to the inner/outer sides
   // of the input ColStatDescList.
   // ---------------------------------------------------------------------
-  CollIndexList leftStatsToMerge;
-  CollIndexList rightStatsToMerge;
+  CollIndexList leftStatsToMerge(STMTHEAP);
+  CollIndexList rightStatsToMerge(STMTHEAP);
 
   identifyMergeCandidates( lhs, leftStatsToMerge );
   if ( leftStatsToMerge.entries() == 0 )
@@ -5792,7 +5792,7 @@ ColStatDescList::applyDefaultPred (ItemExpr *pred,
 	if (op == ITM_VEG_PREDICATE)
 	{
 	  // could be a VEG predicate with no children
-	  CollIndexList statsToMerge;
+	  CollIndexList statsToMerge(STMTHEAP);
 
 	  // locate entries in this ColStatDescList that are associated
 	  // with the current VEG predicate.
@@ -7170,7 +7170,7 @@ ColStatDescList::useMultiUecIfCorrelatedPreds (
 
   NABoolean largeTableNeedsStats = FALSE;
   CostScalar adjRCBeforePreds = floor(oldRowcount.getValue());
-  CollIndexList predList; // the CSDL-indices of the predicate-applied histograms
+  CollIndexList predList(STMTHEAP); // the CSDL-indices of the predicate-applied histograms
   CollIndex i;
   for ( i = startIndex; i < stopIndex; i++ )
   {
@@ -7452,7 +7452,7 @@ ColStatDescList::useMultiUecIfMultipleJoins (
 
   joinOnSingleCol_ = FALSE;
 
-  LIST(ValueIdList) joinValueIdPairs; // the ValueId's pairwise (per join)
+  LIST(ValueIdList) joinValueIdPairs(STMTHEAP); // the ValueId's pairwise (per join)
 
   // look inside the mergeStates of each join histogram, and grab the
   // ValueIds associated with each join

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/ControlDB.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/ControlDB.cpp b/core/sql/optimizer/ControlDB.cpp
index 294edb5..adfcd16 100644
--- a/core/sql/optimizer/ControlDB.cpp
+++ b/core/sql/optimizer/ControlDB.cpp
@@ -88,13 +88,15 @@ ControlDB * ActiveControlDB()
 				}
 
 ControlDB::ControlDB()
+  :cqdList_(CONTROLDBHEAP),
+   csList_(CONTROLDBHEAP)
 {
   requiredShape_ = NULL;
   requiredShapeWasOnceNonNull_ = FALSE;
   savedRequiredShape_ = NULL;
   outStream_ = NULL;
 
-  ctList_ = new CONTROLDBHEAP LIST(ControlTableOptions *);
+  ctList_ = new CONTROLDBHEAP LIST(ControlTableOptions *)(CONTROLDBHEAP);
   savedCtList_ = NULL;
 }
 
@@ -1373,7 +1375,7 @@ Lng32 ControlDB::packControlTableOptionsToBuffer(char * buffer)
 Lng32 ControlDB::unpackControlTableOptionsFromBuffer(char * buffer)
 {
   if (!ctList_)
-    ctList_ = new CONTROLDBHEAP LIST(ControlTableOptions *);
+    ctList_ = new CONTROLDBHEAP LIST(ControlTableOptions *)(CONTROLDBHEAP);
 
   Lng32 numEntries;
   Lng32 curPos = 0;
@@ -1418,7 +1420,7 @@ Lng32 ControlDB::saveCurrentCTO()
 
   savedCtList_ = ctList_;
 
-  ctList_ = new CONTROLDBHEAP LIST(ControlTableOptions *);
+  ctList_ = new CONTROLDBHEAP LIST(ControlTableOptions *)(CONTROLDBHEAP);
 
   return 0;
 }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/HbaseSearchSpec.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/HbaseSearchSpec.h b/core/sql/optimizer/HbaseSearchSpec.h
index 1e5c80c..8645029 100644
--- a/core/sql/optimizer/HbaseSearchSpec.h
+++ b/core/sql/optimizer/HbaseSearchSpec.h
@@ -25,26 +25,29 @@
 
 #include "Collections.h"
 #include "ValueDesc.h"
+#include "NABasicObject.h"
+#include "CmpCommon.h"
 
-struct HbaseSearchSpec
+struct HbaseSearchSpec : public NABasicObject
 {
-    // column names to be retrieved.
-    // Same set to be retrieved for all row id entries in rowIds_
-    // Format of each entry:
-    //         colfam:colname      ==> to retrieve 'colname' from 'colfam'
-    //         colfam:                   ==> to retrieve all columns in that family
-    NAList<NAString> colNames_;
 
-   // row timestamp at which the row is to be retrieved
-    // If -1, latest timestamp
-    Int64 rowTS_;
-
-    const NAString getText() const;
-
-public:
-    void addColumnNames(const ValueIdSet& vs);
+ HbaseSearchSpec(NAHeap* h = NULL) 
+   : colNames_(h ? h : STMTHEAP), rowTS_(0) {};
+  void addColumnNames(const ValueIdSet& vs);
+  const NAString getText() const;
 
-protected:
+  // column names to be retrieved.
+  // Same set to be retrieved for all row id entries in rowIds_
+  // Format of each entry:
+  //         colfam:colname      ==> to retrieve 'colname' from 'colfam'
+  //         colfam:             ==> to retrieve all columns in that family
+  NAList<NAString> colNames_;
+  
+  // row timestamp at which the row is to be retrieved
+  // If -1, latest timestamp
+  Int64 rowTS_;
+  
+ protected:
 };
 
 // This struct is used to specify unique rowids at runtime by
@@ -56,10 +59,12 @@ protected:
 
 struct HbaseUniqueRows : public HbaseSearchSpec
 {
+  HbaseUniqueRows(NAHeap* h = NULL) 
+   : HbaseSearchSpec(h), rowIds_(h ? h : STMTHEAP) {};
+    const NAString getText() const;
+
     // list of rowIds 
     NAList<NAString> rowIds_;
-
-    const NAString getText() const;
 };
 
 
@@ -70,8 +75,6 @@ struct HbaseUniqueRows : public HbaseSearchSpec
 
 struct HbaseRangeRows : public HbaseSearchSpec
 {
-    const NAString getText() const;
-
     // range of rowids .
     // If begin is null, start at beginning.
     // If end is null, stop at end.
@@ -81,15 +84,24 @@ struct HbaseRangeRows : public HbaseSearchSpec
 
     NABoolean beginKeyExclusive_;
     NABoolean endKeyExclusive_;
+
+ HbaseRangeRows(NAHeap* h = NULL) 
+   : HbaseSearchSpec(h) {} ; 
+
+    const NAString getText() const;
 };
 
 struct ListOfUniqueRows : public NAList<HbaseUniqueRows> 
 {
+ ListOfUniqueRows(NAHeap* h = NULL) : 
+  NAList<HbaseUniqueRows>(h ? h : STMTHEAP) {};
   const NAString getText() const;
 };
 
 struct ListOfRangeRows : public NAList<HbaseRangeRows>
 {
+ ListOfRangeRows(NAHeap* h = NULL) : 
+  NAList<HbaseRangeRows>(h ? h : STMTHEAP) {};
   const NAString getText() const;
 };
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/ItemFuncUDF.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/ItemFuncUDF.h b/core/sql/optimizer/ItemFuncUDF.h
index 660c2bf..511d98b 100644
--- a/core/sql/optimizer/ItemFuncUDF.h
+++ b/core/sql/optimizer/ItemFuncUDF.h
@@ -60,7 +60,16 @@ public:
        functionName_(functionName), functionNamePos_(0),
        udfDesc_(0), hasSubquery_(FALSE), heap_(h)
        {
-
+         // we do allow null input parameters
+         allowsSQLnullArg() = TRUE;
+       }
+       
+       UDFunction(const ComObjectName &functionName,
+		  Lng32 argCount, CollHeap *h) :
+       Function(ITM_USER_DEF_FUNCTION, h, argCount),
+       functionName_(functionName), functionNamePos_(0),
+       udfDesc_(0), hasSubquery_(FALSE), heap_(h)
+       {
          // we do allow null input parameters
          allowsSQLnullArg() = TRUE;
        }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/ItemOther.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/ItemOther.h b/core/sql/optimizer/ItemOther.h
index a1e045e..de47998 100644
--- a/core/sql/optimizer/ItemOther.h
+++ b/core/sql/optimizer/ItemOther.h
@@ -1325,7 +1325,7 @@ static void doNotReplaceAnItemExpressionForLikePredicates(ItemExpr* inputTree,
                                                           ValueIdSet& inputSet,
                                                           ItemExpr* parent=NULL)
 {
-  NAList<LikePredDetails*> likeList;
+  NAList<LikePredDetails*> likeList(STMTHEAP);
   ValueIdSet vidsToRemove;
 
   // For each inequality expression in inputSet, see if it is derived from the

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/LargeScopeRules.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/LargeScopeRules.cpp b/core/sql/optimizer/LargeScopeRules.cpp
index 792c18b..0e1c0e3 100644
--- a/core/sql/optimizer/LargeScopeRules.cpp
+++ b/core/sql/optimizer/LargeScopeRules.cpp
@@ -271,7 +271,7 @@ RelExpr * MVQRScanRule::nextSubstitute(RelExpr * before,
 
      JBBSubsetAnalysis *jbbSubsetAnalysis = scan->getJBBSubsetAnalysis();
 
-     NAList<MVMatch*> matchingMVs;
+     NAList<MVMatch*> matchingMVs(STMTHEAP);
 
      // the case of an aggregate query on a single table
      if (jbbSubsetAnalysis)
@@ -3185,7 +3185,7 @@ RelExpr * MJStarJoinIIRule::nextSubstitute_Old(RelExpr * before,
   }
 
   // compute join order
-  NAList<CANodeIdSet> orderedListOfFringes;
+  NAList<CANodeIdSet> orderedListOfFringes(STMTHEAP);
   orderedListOfFringes.insert(factTableSet);
 
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/MVCandidates.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/MVCandidates.cpp b/core/sql/optimizer/MVCandidates.cpp
index e4bdec9..c2d2d2a 100644
--- a/core/sql/optimizer/MVCandidates.cpp
+++ b/core/sql/optimizer/MVCandidates.cpp
@@ -78,7 +78,7 @@ void MVCandidates::buildFavoritesList (CollHeap* heap)
   {
      // initialize mvqr favorites list
      if (mvqrFavoriteCandidates_ == NULL)
-        mvqrFavoriteCandidates_ = new (heap) LIST(NAString);
+       mvqrFavoriteCandidates_ = new (heap) LIST(NAString)(heap);
 
       // prepare to extract the partitions/tokens from the default string
      char *token;
@@ -643,7 +643,7 @@ void MVCandidates::rewriteResidPreds(QRCandidatePtr candidate,
 
   // Set up the list of element types we want to look for when searching the
   // tree for inputs.
-  NAList<ElementType> inputTypes;
+  NAList<ElementType> inputTypes(heap);
   inputTypes.insert(ET_MVColumn);
   inputTypes.insert(ET_Column);   // obtained by back join
 
@@ -1453,7 +1453,7 @@ void MVCandidates::mapDimOutputs(QRJBBPtr jbbElem,
 {
   QROutputListPtr outputList = jbbElem->getOutputList();
   QROutputPtr output;
-  ElementPtrList elems;
+  ElementPtrList elems(heap);
 
   // Get the initial list of cols/exprs that are directly contained in the output
   // elements. When this list is traversed, if an expression is encountered
@@ -1690,7 +1690,7 @@ void MVCandidates::analyzeCandidate(QRCandidatePtr candidate,
   if (groupBy && groupBy->getResult() == QRElement::NotProvided)
     node = gbNode = getGroupByAggNode(node, groupBy, candidate, heap);
 
-  ElementPtrList vidMapTopElements;
+  ElementPtrList vidMapTopElements(heap);
   RelRoot* root = 
         new(heap) RelRoot(node, REL_ROOT, NULL, NULL, NULL, NULL, heap);
   buildOutputExprs(candidate, root, vidMapTopElements, heap);
@@ -1854,7 +1854,7 @@ void MVCandidates::collectMVs(RelExpr* topNode, CollHeap* heap)
       NAString mvName = gu->getTableName().getQualifiedNameAsString();
 
       if (forbiddenMVs_ == NULL)
-        forbiddenMVs_ = new(heap) LIST(NAString);
+        forbiddenMVs_ = new(heap) LIST(NAString)(heap);
 
       forbiddenMVs_->insert(mvName);
     }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/MVInfo.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/MVInfo.cpp b/core/sql/optimizer/MVInfo.cpp
index 9d4620d..1ce5e8b 100644
--- a/core/sql/optimizer/MVInfo.cpp
+++ b/core/sql/optimizer/MVInfo.cpp
@@ -859,8 +859,8 @@ const MVVegPredicateColumn *MVVegPredicate::getRepresentativeCol() const
 void MVVegPredicate::markPredicateColsOnUsedObjects(MVInfo *mvInfo, NABoolean isDDL)
 {
   MVUsedObjectInfo	      *usedInfo = NULL;
-  LIST(const QualifiedName *)  tableNames;
-  MVColumnInfoList             mvCols;
+  LIST(const QualifiedName *)  tableNames(NULL);
+  MVColumnInfoList             mvCols(NULL);
   MVColumnInfo                *colInfo = NULL;
 
   // For each column in this predicate
@@ -1052,7 +1052,7 @@ MVUsedObjectInfo::MVUsedObjectInfo(const Scan  *scanNode,
   for (ValueId vid = outputs.init();  outputs.next(vid); outputs.advance(vid) ) 
   {
     ItemExpr *expr = vid.getItemExpr();
-    LIST(BaseColumn*) usedBaseCols;
+    LIST(BaseColumn*) usedBaseCols(heap);
 
     // If the ValueId of the output is of an expression - find all the base
     //  columns that it uses.
@@ -3311,7 +3311,8 @@ MVInfoForDDL::MVInfoForDDL(const NAString		      &nameOfMV,
     userSpecifiedCI_(NULL),
     mvDescriptor_(NULL),
     xmlText_(NULL),
-    notIncrementalReason_(MVNI_DEFAULT)
+    notIncrementalReason_(MVNI_DEFAULT),
+    udfList_(heap)
 {
   //
   if(NULL != userSpecifiedCI)
@@ -3449,7 +3450,7 @@ MVInfoForDDL::getOptimalMJVIndexList (const LIST(Lng32)* mvCI)
 {
   // create index builder
   MJVIndexBuilder indexBuilder (getHeap());
-  IndexList inputRCIList, *outputRCIList;
+  IndexList inputRCIList(getHeap()), *outputRCIList;
 
   // Insert MVCI as the first element of the inputRCIList
   inputRCIList.insert(*mvCI);
@@ -4245,7 +4246,7 @@ void MVInfoForDDL::addBaseColsUsedByComputedMvColumns()
     if (colInfo->getColType() != COM_MVCOL_FUNCTION)
       continue;
 
-    LIST(BaseColumn*) usedCols;
+    LIST(BaseColumn*) usedCols(getHeap());
     findAllTheUsedColumns(colInfo->getColExpr(), NULL, usedCols);
     // If this computed column is only using a single base column (or less)
     // than that column is already entered as the orig column of that MV col.

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/MVJoinGraph.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/MVJoinGraph.cpp b/core/sql/optimizer/MVJoinGraph.cpp
index 6ff2fb1..4bc0d2f 100644
--- a/core/sql/optimizer/MVJoinGraph.cpp
+++ b/core/sql/optimizer/MVJoinGraph.cpp
@@ -82,6 +82,7 @@ Lng32 MVJoinTable::markRiConstraints(BindWA *bindWA, MVInfo *mvInfo)
   for (CollIndex i=0; i<refConstraints.entries(); i++)
   {
     RefConstraint *const ref = (RefConstraint *const)(refConstraints[i]);
+
     CMPASSERT(ref->getOperatorType() == ITM_REF_CONSTRAINT);
     // Ignore self referencing RIs.
     if (ref->selfRef())
@@ -101,8 +102,8 @@ Lng32 MVJoinTable::markRiConstraints(BindWA *bindWA, MVInfo *mvInfo)
     Lng32 otherTableIndex = otherTable->getTableIndex();
 
     // The RI must be covered by equal predicates on the same columns
-    LIST(Lng32) myCols;
-    LIST(Lng32) otherCols;
+    LIST(Lng32) myCols(NULL);
+    LIST(Lng32) otherCols(NULL);
     ref->getMyKeyColumns(myCols);
     ref->getOtherTableKeyColumns(bindWA, otherCols);
     CMPASSERT(myCols.entries() == otherCols.entries());

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/MultiJoin.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/MultiJoin.cpp b/core/sql/optimizer/MultiJoin.cpp
index 8e43330..dc8bbce 100644
--- a/core/sql/optimizer/MultiJoin.cpp
+++ b/core/sql/optimizer/MultiJoin.cpp
@@ -943,7 +943,7 @@ void MultiJoin::synthLogProp(NormWA * normWAPtr)
   
   CASortedList * synthLogPropPath =        
     new (CmpCommon::statementHeap()) 
-      CASortedList(jbbcs.entries(), CmpCommon::statementHeap());
+    CASortedList(CmpCommon::statementHeap(), jbbcs.entries());
       
   synthLogPropPath->insert((*(left.jbbcsToJBBSubset()->getSynthLogPropPath())));
   synthLogPropPath->insert(right.getFirst());

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/NAClusterInfo.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/NAClusterInfo.cpp b/core/sql/optimizer/NAClusterInfo.cpp
index 65733d3..7682d08 100644
--- a/core/sql/optimizer/NAClusterInfo.cpp
+++ b/core/sql/optimizer/NAClusterInfo.cpp
@@ -338,7 +338,7 @@ NAClusterInfo::NAClusterInfo(CollHeap * heap)
       maps *cpuList=new(heap) maps(heap);
       smpCount_ = 0;
 
-      NAList<CollIndex> storageList(nodeCount);
+      NAList<CollIndex> storageList(heap, nodeCount);
 
       for (Int32 i = 0; i < nodeCount; i++)
       {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/NATable.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/NATable.cpp b/core/sql/optimizer/NATable.cpp
index d8d4b2e..b240f17 100644
--- a/core/sql/optimizer/NATable.cpp
+++ b/core/sql/optimizer/NATable.cpp
@@ -5133,7 +5133,8 @@ NABoolean createNAFileSets(TrafDesc * table_desc       /*IN*/,
      secKeySet_(heap),
      newColumns_(heap),
      snapshotName_(NULL),
-     prototype_(NULL)
+     prototype_(NULL),
+     allColFams_(heap)
  {
    NAString tblName = qualifiedName_.getQualifiedNameObj().getQualifiedNameAsString();
    NAString mmPhase;
@@ -5376,7 +5377,7 @@ NABoolean createNAFileSets(TrafDesc * table_desc       /*IN*/,
 
       viewColUsages_ = NULL;
       if(view_desc->viewDesc()->viewcolusages){
-        viewColUsages_ = new (heap_) NAList<ComViewColUsage *>; //initialize empty list
+        viewColUsages_ = new (heap_) NAList<ComViewColUsage *>(heap_); //initialize empty list
         char * beginStr (view_desc->viewDesc()->viewcolusages);
         char * endStr = strchr(beginStr, ';');
         while (endStr != NULL) {
@@ -5871,7 +5872,8 @@ NATable::NATable(BindWA *bindWA,
     secKeySet_(heap),
     privInfo_(NULL),
     newColumns_(heap),
-    snapshotName_(NULL)
+    snapshotName_(NULL),
+    allColFams_(heap)
 {
 
   NAString tblName = qualifiedName_.getQualifiedNameObj().getQualifiedNameAsString();

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/NormWA.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/NormWA.cpp b/core/sql/optimizer/NormWA.cpp
index d3ead0e..4e9701a 100644
--- a/core/sql/optimizer/NormWA.cpp
+++ b/core/sql/optimizer/NormWA.cpp
@@ -255,10 +255,10 @@ NABoolean SqoChangedItemExprs::undoChanges(NormWA & normWARef, Lng32 subqId)
 void SqoWA::undoChanges(NormWA & normWARef )
 {
    // We need a list of indexes to ItemExprs that we have restored
-   LIST(SqoChangedItemExprs * ) undoneItemExprs;
+   LIST(SqoChangedItemExprs * ) undoneItemExprs(STMTHEAP);
 
    // We need a list indexes to of RelExprs that we have restored
-   LIST(SqoChangedRelExprs * ) undoneRelExprs;
+   LIST(SqoChangedRelExprs * ) undoneRelExprs(STMTHEAP);
 
    for (UInt32 itemIdx=0; itemIdx < changedItemExprs_.entries(); itemIdx++)
    {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/NormWA.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/NormWA.h b/core/sql/optimizer/NormWA.h
index d6f9777..781292c 100644
--- a/core/sql/optimizer/NormWA.h
+++ b/core/sql/optimizer/NormWA.h
@@ -311,6 +311,10 @@ public:
       ,checkForExtraHubTables_(FALSE)
       ,compilingMVDescriptor_(FALSE)
       ,requiresRecursivePushdown_(FALSE)
+      ,readList_(CmpCommon::statementHeap())
+      ,writeList_(CmpCommon::statementHeap())
+      ,origSeqFunction_(CmpCommon::statementHeap())
+      ,equiTransformedExpr_(CmpCommon::statementHeap())
   {
     vegTable_ = new (wHeap()) VEGTable;
     sqoWARef_ = new (CmpCommon::statementHeap()) SqoWA;
@@ -352,6 +356,10 @@ public:
       ,checkForExtraHubTables_(FALSE)
       ,compilingMVDescriptor_(FALSE)
       ,requiresRecursivePushdown_(other.requiresRecursivePushdown_)
+      ,readList_(other.readList_, STMTHEAP)
+      ,writeList_(other.writeList_, STMTHEAP)
+      ,origSeqFunction_(other.origSeqFunction_, STMTHEAP)
+      ,equiTransformedExpr_(other.equiTransformedExpr_, STMTHEAP)
   {}
   
   // --------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/OptItemExpr.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/OptItemExpr.cpp b/core/sql/optimizer/OptItemExpr.cpp
index 0ff3823..31aa50c 100644
--- a/core/sql/optimizer/OptItemExpr.cpp
+++ b/core/sql/optimizer/OptItemExpr.cpp
@@ -1873,7 +1873,7 @@ NABoolean VEGPredicate::applyDefaultPred(ColStatDescList & histograms,
   ValueIdSet leftLeafValues;
 
   // could be a VEG predicate with no children
-  CollIndexList statsToMerge;
+  CollIndexList statsToMerge(STMTHEAP);
 
   OperatorTypeEnum op = getOperatorType();
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/OptLogRelExpr.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/OptLogRelExpr.cpp b/core/sql/optimizer/OptLogRelExpr.cpp
index 80360d4..3a09162 100644
--- a/core/sql/optimizer/OptLogRelExpr.cpp
+++ b/core/sql/optimizer/OptLogRelExpr.cpp
@@ -3687,7 +3687,7 @@ GroupByAgg::synthEstLogProp(const EstLogPropSharedPtr& inputEstLogProp)
       //                   to check for dependencies
 
       ValueIdSet baseColumnSet ;
-      LIST(ValueIdSet ) columnsOfThisVEG;
+      LIST(ValueIdSet ) columnsOfThisVEG(STMTHEAP);
       ValueIdSet probableRedundantColSet;
       SET(TableDesc *) * groupByTables = NULL;
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/QRDescGenerator.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/QRDescGenerator.cpp b/core/sql/optimizer/QRDescGenerator.cpp
index e699034..f99ef0a 100644
--- a/core/sql/optimizer/QRDescGenerator.cpp
+++ b/core/sql/optimizer/QRDescGenerator.cpp
@@ -2611,7 +2611,7 @@ void QRDescGenerator::processReferencingPreds(CANodeIdSet* nodeSet,
 
   // Identify equality sets implied by vegpreds and equality conditions, and
   // translate these to joinpred/range/residual predicates in the descriptor.
-  NAList<EqualitySet*> equalitySets;
+  NAList<EqualitySet*> equalitySets(mvqrHeap_);
   formEqualitySets(preds, equalitySets);
   for (CollIndex i=0; i<equalitySets.entries(); i++)
     processEqualitySet(jbbElem, *equalitySets[i]);

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/QRDescGenerator.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/QRDescGenerator.h b/core/sql/optimizer/QRDescGenerator.h
index 55d0100..3efbb96 100644
--- a/core/sql/optimizer/QRDescGenerator.h
+++ b/core/sql/optimizer/QRDescGenerator.h
@@ -218,7 +218,8 @@ public:
       vegsUsedHash_(hashValueId, 77, TRUE, heap),
       exprsUsedHash_(hashString, 77, TRUE, heap),
       colTblIdHash_(hashString, 77, TRUE, heap),
-      isDumpMvMode_(FALSE)
+      isDumpMvMode_(FALSE),
+      allEqualitySets_(heap)
     {
       maxExprSize_   = CmpCommon::getDefaultLong(MVQR_MAX_EXPR_SIZE);
       maxExprDepth_  = CmpCommon::getDefaultLong(MVQR_MAX_EXPR_DEPTH);
@@ -482,7 +483,7 @@ public:
    */
   void createEqualitySets(ValueIdSet preds)
     {
-      NAList<EqualitySet*> equalitySets;
+      NAList<EqualitySet*> equalitySets(mvqrHeap_);
       formEqualitySets(preds, equalitySets);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/RETDesc.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/RETDesc.cpp b/core/sql/optimizer/RETDesc.cpp
index 6ab9d4b..a81d231 100644
--- a/core/sql/optimizer/RETDesc.cpp
+++ b/core/sql/optimizer/RETDesc.cpp
@@ -536,7 +536,7 @@ RETDesc *RETDesc::nullInstantiate(BindWA *bindWA,
 // ***********************************************************************
 ColumnNameMap *RETDesc::findColumn(const ValueId vid) const
 {
-  LIST(ColumnNameMap *) colNameMapList;
+  LIST(ColumnNameMap *) colNameMapList(STMTHEAP);
 
   ColumnNameMap *currColNameMap = NULL;
 
@@ -589,7 +589,8 @@ void RETDesc::getTableList(LIST(TableNameMap*) &xtnmList,
       xtnmList.removeAt(i);
 
   // Separate names by number of parts (corr, tbl, sch.tbl, cat.sch.tbl)
-  LIST(TableNameMap*) xtnmCORR, xtnmT, xtnmST, xtnmCST;
+  LIST(TableNameMap*) xtnmCORR(STMTHEAP), xtnmT(STMTHEAP); 
+  LIST(TableNameMap*) xtnmST(STMTHEAP), xtnmCST(STMTHEAP);
   for (i = 0; i < xtnmList.entries(); i++) {
     const CorrName& corr = xtnmList[i]->getTableName();
     const QualifiedName& qual = corr.getQualifiedNameObj();
@@ -623,7 +624,8 @@ void RETDesc::getTableList(LIST(TableNameMap*) &xtnmList,
 
   // Sort in ascending order by name, removing any duplicates.
   if (xtnmList.entries() > 1) {
-    LIST(TableNameMap*) xtnmT = xtnmList;
+    LIST(TableNameMap*) xtnmT(STMTHEAP);
+    xtnmT = xtnmList;
     xtnmList.clear();
 
     while (xtnmT.entries()) {
@@ -804,7 +806,7 @@ void RETDesc::print(FILE* ofd, const char* indent, const char* title) const
     NEW_INDENT, title, this,
     groupedFlag_ ? "(grouped) " : "");
 
-  LIST(TableNameMap*) xtnmList;
+  LIST(TableNameMap*) xtnmList(STMTHEAP);
   xtnm_.dump(xtnmList);
   for (i = 0; i < xtnmList.entries(); i++)
     fprintf(ofd, "%s\n ",

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/Refresh.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/Refresh.cpp b/core/sql/optimizer/Refresh.cpp
index 4e75c88..aef4a04 100644
--- a/core/sql/optimizer/Refresh.cpp
+++ b/core/sql/optimizer/Refresh.cpp
@@ -514,7 +514,7 @@ NABoolean Refresh::doesBaseTableHaveSupportingIndex(BindWA *bindWA,
   // Extract GroupBy columns
   const MVColumns& pMvInfoColumnList = 
     mvInfo->getMVColumns();
-  LIST (MVColumnInfo *) mvGroupByColumns;
+  LIST (MVColumnInfo *) mvGroupByColumns(bindWA->wHeap());
   for (	i = 0 ; i < pMvInfoColumnList.entries() ; i++)
   {
 #pragma nowarn(1506)   // warning elimination 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/RelExeUtil.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/RelExeUtil.h b/core/sql/optimizer/RelExeUtil.h
index 2040a34..c36024c 100644
--- a/core/sql/optimizer/RelExeUtil.h
+++ b/core/sql/optimizer/RelExeUtil.h
@@ -1051,7 +1051,8 @@ public:
          doParallelDeleteIfXn_(FALSE),
          offlineTable_(FALSE),
          doLabelPurgedata_(FALSE),
-         numLOBs_(0)
+         numLOBs_(0),
+         lobNumArray_(oHeap)
   {
   };
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/RelExpr.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/RelExpr.cpp b/core/sql/optimizer/RelExpr.cpp
index 491284e..7091c30 100644
--- a/core/sql/optimizer/RelExpr.cpp
+++ b/core/sql/optimizer/RelExpr.cpp
@@ -6707,8 +6707,10 @@ Union::Union(RelExpr *leftChild,
   ,rightList_(NULL)
   ,currentChild_(-1)
   ,alternateRightChildOrderExprTree_(NULL) //++MV
-  ,isSystemGenerated_(sysGenerated),
-  isSerialUnion_(FALSE)
+  ,isSystemGenerated_(sysGenerated)
+  ,isSerialUnion_(FALSE)
+  ,variablesSet_(oHeap)
+  
 {
   if ( NOT mayBeCacheable )
     setNonCacheable();

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/RelPackedRows.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/RelPackedRows.cpp b/core/sql/optimizer/RelPackedRows.cpp
index 773582b..843eacc 100644
--- a/core/sql/optimizer/RelPackedRows.cpp
+++ b/core/sql/optimizer/RelPackedRows.cpp
@@ -1028,7 +1028,7 @@ UnPackRows::synthLogProp(NormWA * normWAPtr)
   // Find out the base columns of all entries in unPackExpr_ and stored them
   // in an array for later use.
   //
-  LIST(BaseColumn *) packedBaseColList;
+  LIST(BaseColumn *) packedBaseColList(STMTHEAP);
   for(ValueId unPackCol = unPackExpr().init(); unPackExpr().next(unPackCol);
       unPackExpr().advance(unPackCol))
     {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/RelRoutine.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/RelRoutine.cpp b/core/sql/optimizer/RelRoutine.cpp
index 92f254e..4782ab5 100644
--- a/core/sql/optimizer/RelRoutine.cpp
+++ b/core/sql/optimizer/RelRoutine.cpp
@@ -319,7 +319,7 @@ void TableMappingUDFChildInfo::removeColumn(CollIndex i)
 
 //! TableMappingUDF::TableMappingUDF Copy Constructor
 TableMappingUDF::TableMappingUDF(const TableMappingUDF & other)
-: TableValuedFunction(other)
+  : TableValuedFunction(other),childInfo_(STMTHEAP)
 {
   selectivityFactor_ = other.selectivityFactor_;
   cardinalityHint_ = other.cardinalityHint_;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/RelScan.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/RelScan.h b/core/sql/optimizer/RelScan.h
index da90691..ad63ace 100644
--- a/core/sql/optimizer/RelScan.h
+++ b/core/sql/optimizer/RelScan.h
@@ -319,9 +319,10 @@ public:
 	 cardinalityHint_(-1.0),
 	 forcedIndexInfo_(FALSE),
          baseCardinality_(0),
-          // QSTUFF
-           isRewrittenMV_(FALSE),
-           hbaseAccessOptions_(NULL)
+	   // QSTUFF
+	   isRewrittenMV_(FALSE),
+	   hbaseAccessOptions_(NULL),
+	   matchingMVs_(CmpCommon::statementHeap())
      {} 
 
   // virtual destructor

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/SchemaDB.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/SchemaDB.cpp b/core/sql/optimizer/SchemaDB.cpp
index d64bca7..034f3bf 100644
--- a/core/sql/optimizer/SchemaDB.cpp
+++ b/core/sql/optimizer/SchemaDB.cpp
@@ -513,7 +513,7 @@ Lng32 NodeToCpuVolMapDB::getTotalNumOfVols
 {
   if (nodeName)
   {
-    LIST(NAString *) qualifyingNodeNames;
+    LIST(NAString *) qualifyingNodeNames(CTXTHEAP);
     qualifyingNodeNames.insert(nodeName);
 
     buildVolumeNameCache(qualifyingNodeNames);

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/SearchKey.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/SearchKey.cpp b/core/sql/optimizer/SearchKey.cpp
index 3c98146..07482bf 100644
--- a/core/sql/optimizer/SearchKey.cpp
+++ b/core/sql/optimizer/SearchKey.cpp
@@ -2876,7 +2876,7 @@ void HbaseSearchKey::makeHBaseSearchKeys(
       // Step 2: check how many key columns we should use to expand RangeSpecs
 
       // List of ValueIdSets, one for each HbaseSearchKey to be generated
-      LIST(ValueIdSet) predListForSearchKeys;
+      LIST(ValueIdSet) predListForSearchKeys(STMTHEAP);
 
       // remember range specs and their associated individual preds
       ValueIdSet rangeSpecs, rangePreds, allKeyPreds;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/Stats.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/Stats.cpp b/core/sql/optimizer/Stats.cpp
index 1d57ca0..fc85025 100644
--- a/core/sql/optimizer/Stats.cpp
+++ b/core/sql/optimizer/Stats.cpp
@@ -8742,7 +8742,8 @@ void MCSkewedValueList::display() const
 }
 
 MCSkewedValueList::MCSkewedValueList(const MCSkewedValueList & mcsvl, NAMemory *h)
-:heap_(h ? h : CmpCommon::statementHeap())
+  :NAList<MCSkewedValue *>(h ? h : CmpCommon::statementHeap()),
+   heap_(h ? h : CmpCommon::statementHeap())
 {
     for (CollIndex i = 0; i < mcsvl.entries(); i++)
     {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/VEGTable.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/VEGTable.cpp b/core/sql/optimizer/VEGTable.cpp
index 3df260a..5e92bcb 100644
--- a/core/sql/optimizer/VEGTable.cpp
+++ b/core/sql/optimizer/VEGTable.cpp
@@ -448,7 +448,7 @@ void VEGRegion::addVEG(const ValueIdSet & vegMembers)
 // -----------------------------------------------------------------------
 void VEGRegion::mergeForwardingEntries(const VEGRegion *fromRegion)
 {
-  LIST(VEGMember *) allForwardingEntries;
+  LIST(VEGMember *) allForwardingEntries(STMTHEAP);
   fromRegion->gatherForwardingEntries(allForwardingEntries);
 
   for(CollIndex i = 0; i < allForwardingEntries.entries(); i++)
@@ -902,7 +902,7 @@ void VEGRegion::replaceInstantiateNullMembers()
   Lng32 index;               // loop index
   InstantiateNull * instNullPtr; // -> an InstantiateNull 
   VEGMember * memberPtr;         // -> a VEGMember
-  LIST(VEGMember *)deleteStack;  // VEGMember that are to be deleted
+  LIST(VEGMember *)deleteStack(STMTHEAP);  // VEGMember that are to be deleted
   ValueId exprId;                // ValueId of a member of the VEG
   ValueIdSet vegMembers;         // set of all members for a VEG 
 
@@ -1216,7 +1216,7 @@ void VEGRegion::processZones()
 #pragma nowarn(1506)   // warning elimination 
   Lng32 ne = members_.entries();
 #pragma warn(1506)  // warning elimination 
-  LIST(VEGMember *) deleteStack;
+  LIST(VEGMember *) deleteStack(STMTHEAP);
 
   // Walk through the members of this VEGRegion to check if any member
   // is to be deleted.

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/ValueDesc.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/ValueDesc.cpp b/core/sql/optimizer/ValueDesc.cpp
index 655a3f5..2245fa8 100644
--- a/core/sql/optimizer/ValueDesc.cpp
+++ b/core/sql/optimizer/ValueDesc.cpp
@@ -2920,7 +2920,7 @@ void ValueIdSet::findCommonSubexpressions(ValueIdSet &other,
 {
   ValueIdList otherList;
   CollIndex otherNumEntries;
-  LIST(HashValue) otherHashValues;
+  LIST(HashValue) otherHashValues(STMTHEAP);
   ValueId vid;
   CollIndex j;
   HashValue hashVal;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/optimizer/memo.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/memo.cpp b/core/sql/optimizer/memo.cpp
index cbb75ce..850f819 100644
--- a/core/sql/optimizer/memo.cpp
+++ b/core/sql/optimizer/memo.cpp
@@ -1120,7 +1120,7 @@ void CascadesMemo::update(CascadesGroup * oldGroup, CascadesGroup * newGroup)
 //<pb>
 Int32 CascadesMemo::garbageCollection()
 {
-  LIST(RelExpr *) changed; // list of outdated RelExprs
+  LIST(RelExpr *) changed(STMTHEAP); // list of outdated RelExprs
   RelExpr *e;              // a single rel expr
   RelExpr *pred;           // predecessor in the hash chain
   Int32 nc;                  // number of children

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/parser/SqlParserAux.cpp
----------------------------------------------------------------------
diff --git a/core/sql/parser/SqlParserAux.cpp b/core/sql/parser/SqlParserAux.cpp
index dfd625c..588936c 100644
--- a/core/sql/parser/SqlParserAux.cpp
+++ b/core/sql/parser/SqlParserAux.cpp
@@ -292,7 +292,7 @@ THREAD_P NABoolean        ThereAreAssignments;
 void resetHostVars()
 {
   if (AllHostVars == NULL)
-    AllHostVars = new AllHostVarsT();
+    AllHostVars = new AllHostVarsT(NULL);
   AllHostVars->clear();
   TheHostVarRoles->clear();		// SqlParserGlobals.h
 
@@ -300,7 +300,7 @@ void resetHostVars()
   TheProcArgTypes = NULL;
   InAssignmentSt =  FALSE;
   if (AssignmentHostVars == NULL)
-    AssignmentHostVars = new AssignmentHostVarsT();
+    AssignmentHostVars = new AssignmentHostVarsT(NULL);
   AssignmentHostVars->clear();  
 
   intoClause = FALSE;
@@ -498,7 +498,7 @@ RelRoot *finalize(RelExpr *top, NABoolean outputVarCntValid)
 
   if (TheProcArgTypes)
     {
-      LIST(HVArgType *) argdump;
+      LIST(HVArgType *) argdump(PARSERHEAP());
       TheProcArgTypes->dump(argdump);
       for (i = 0; i < argdump.entries(); i++)
         {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/parser/StmtDDLCreate.cpp
----------------------------------------------------------------------
diff --git a/core/sql/parser/StmtDDLCreate.cpp b/core/sql/parser/StmtDDLCreate.cpp
index 3e94dfa..4340ffc 100644
--- a/core/sql/parser/StmtDDLCreate.cpp
+++ b/core/sql/parser/StmtDDLCreate.cpp
@@ -6089,7 +6089,8 @@ StmtDDLCreateMV::StmtDDLCreateMV( const QualifiedName	&MVQualName,
     pAttributeTableLists_(pAttributeTableLists),
     pIgnoreChangesList_(0),
     StmtDDLNode(DDL_CREATE_MV),
-    partitionKeyColRefArray_(heap)
+    partitionKeyColRefArray_(heap),
+    udfList_(heap)
 {
   // MV file options are a subset of Table's file options.
   // Since we use the same parsing rule as a Table's, we need to check that all file 
@@ -6830,7 +6831,8 @@ StmtDDLCreateView::StmtDDLCreateView(const QualifiedName & viewQualName,
           pQueryExpression_(queryExpression),
           pWithCheckOption_(optionalWithCheckOption),
           columnDefArray_(heap),
-          viewUsages_(heap)
+          viewUsages_(heap),
+	  udfList_(heap)
 {
   setChild(INDEX_VIEW_OWNER, pOwner);
 }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/parser/sqlparser.y
----------------------------------------------------------------------
diff --git a/core/sql/parser/sqlparser.y b/core/sql/parser/sqlparser.y
index ae288b0..87b691d 100755
--- a/core/sql/parser/sqlparser.y
+++ b/core/sql/parser/sqlparser.y
@@ -7320,7 +7320,7 @@ set_function_specification : set_function_type '(' set_quantifier value_expressi
                      (PivotGroup::DELIMITER_, NULL, (char*)"", -1);
 
                    NAList<PivotGroup::PivotOption*> * frol =
-                     new (PARSERHEAP ()) NAList<PivotGroup::PivotOption*>;
+                     new (PARSERHEAP ()) NAList<PivotGroup::PivotOption*>(PARSERHEAP ());
                    frol->insert(po);
                    
                    $$ = new (PARSERHEAP()) PivotGroup(ITM_PIVOT_GROUP, $7, frol);
@@ -7355,7 +7355,7 @@ pivot_options : empty
 concat_options_list : concat_option
                       {
                         NAList<PivotGroup::PivotOption*> * frol =
-                          new (PARSERHEAP ()) NAList<PivotGroup::PivotOption*>;
+                          new (PARSERHEAP ()) NAList<PivotGroup::PivotOption*>(PARSERHEAP ());
                         frol->insert($1);
                         $$ = frol;
                       }
@@ -7368,7 +7368,7 @@ concat_options_list : concat_option
 pivot_options_list : pivot_option
                       {
 			NAList<PivotGroup::PivotOption*> * frol =
-			  new (PARSERHEAP ()) NAList<PivotGroup::PivotOption*>;
+			  new (PARSERHEAP ()) NAList<PivotGroup::PivotOption*>(PARSERHEAP ());
 			frol->insert($1);
 			$$ = frol;
 		      }
@@ -10099,7 +10099,7 @@ hbase_column_create_list : '(' hbase_column_create_value ')'
                                    {
 				     NAList<HbaseColumnCreate::HbaseColumnCreateOptions *> * hccol =
 				       new (PARSERHEAP()) 
-				       NAList<HbaseColumnCreate::HbaseColumnCreateOptions *>;
+				       NAList<HbaseColumnCreate::HbaseColumnCreateOptions *>(PARSERHEAP ());
 				     hccol->insert($2);
 				     $$ = hccol;
 				   }
@@ -10107,7 +10107,7 @@ hbase_column_create_list : '(' hbase_column_create_value ')'
                                    {
 				     NAList<HbaseColumnCreate::HbaseColumnCreateOptions *> * hccol =
 				       new (PARSERHEAP()) 
-				       NAList<HbaseColumnCreate::HbaseColumnCreateOptions *>;
+				       NAList<HbaseColumnCreate::HbaseColumnCreateOptions *>(PARSERHEAP ());
 				     hccol->insert($1);
 				     $$ = hccol;
 				   }
@@ -16853,7 +16853,7 @@ optional_explain_options : /* empty */
 
 quoted_string_list : QUOTED_STRING
 		 {
-		  $$ = new (PARSERHEAP()) ConstStringList();
+		  $$ = new (PARSERHEAP()) ConstStringList(PARSERHEAP ());
 		  $$->insert($1);
 		 }
 		 | quoted_string_list ',' QUOTED_STRING
@@ -16864,7 +16864,7 @@ quoted_string_list : QUOTED_STRING
 
 col_fam_quoted_string_list : TOK_COLUMN TOK_FAMILY QUOTED_STRING
 		 {
-		  $$ = new (PARSERHEAP()) ConstStringList();
+		  $$ = new (PARSERHEAP()) ConstStringList(PARSERHEAP ());
 		  $$->insert($3);
 		 }
 		 | col_fam_quoted_string_list ',' TOK_COLUMN TOK_FAMILY QUOTED_STRING
@@ -16979,7 +16979,7 @@ exe_util_maintain_object : TOK_MAINTAIN maintain_object_token table_name maintai
              | TOK_INITIALIZE_MAINTAIN
              {
 	       NAList<ExeUtilMaintainObject::MaintainObjectOption*> * mtol =
-		 new (PARSERHEAP ()) NAList<ExeUtilMaintainObject::MaintainObjectOption*>;
+		 new (PARSERHEAP ()) NAList<ExeUtilMaintainObject::MaintainObjectOption*>(PARSERHEAP ());
 
 	       ExeUtilMaintainObject::MaintainObjectOption * mto = 
 		 new (PARSERHEAP ()) 
@@ -17004,7 +17004,7 @@ exe_util_maintain_object : TOK_MAINTAIN maintain_object_token table_name maintai
              | TOK_REINITIALIZE_MAINTAIN
              {
 	       NAList<ExeUtilMaintainObject::MaintainObjectOption*> * mtol =
-		 new (PARSERHEAP ()) NAList<ExeUtilMaintainObject::MaintainObjectOption*>;
+		 new (PARSERHEAP ()) NAList<ExeUtilMaintainObject::MaintainObjectOption*>(PARSERHEAP ());
 
 	       ExeUtilMaintainObject::MaintainObjectOption * mto = 
 		 new (PARSERHEAP ()) 
@@ -17029,7 +17029,7 @@ exe_util_maintain_object : TOK_MAINTAIN maintain_object_token table_name maintai
              | TOK_REINITIALIZE_MAINTAIN ',' TOK_DROP TOK_ONLY
              {
 	       NAList<ExeUtilMaintainObject::MaintainObjectOption*> * mtol =
-		 new (PARSERHEAP ()) NAList<ExeUtilMaintainObject::MaintainObjectOption*>;
+		 new (PARSERHEAP ()) NAList<ExeUtilMaintainObject::MaintainObjectOption*>(PARSERHEAP ());
 
 	       ExeUtilMaintainObject::MaintainObjectOption * mto = 
 		 new (PARSERHEAP ()) 
@@ -17054,7 +17054,7 @@ exe_util_maintain_object : TOK_MAINTAIN maintain_object_token table_name maintai
              | TOK_REINITIALIZE_MAINTAIN ',' TOK_CREATE TOK_VIEW
              {
 	       NAList<ExeUtilMaintainObject::MaintainObjectOption*> * mtol =
-		 new (PARSERHEAP ()) NAList<ExeUtilMaintainObject::MaintainObjectOption*>;
+		 new (PARSERHEAP ()) NAList<ExeUtilMaintainObject::MaintainObjectOption*>(PARSERHEAP ());
 
 	       ExeUtilMaintainObject::MaintainObjectOption * mto = 
 		 new (PARSERHEAP ()) 
@@ -17079,7 +17079,7 @@ exe_util_maintain_object : TOK_MAINTAIN maintain_object_token table_name maintai
              | TOK_REINITIALIZE_MAINTAIN ',' TOK_DROP TOK_VIEW
              {
 	       NAList<ExeUtilMaintainObject::MaintainObjectOption*> * mtol =
-		 new (PARSERHEAP ()) NAList<ExeUtilMaintainObject::MaintainObjectOption*>;
+		 new (PARSERHEAP ()) NAList<ExeUtilMaintainObject::MaintainObjectOption*>(PARSERHEAP ());
 
 	       ExeUtilMaintainObject::MaintainObjectOption * mto = 
 		 new (PARSERHEAP ()) 
@@ -17162,7 +17162,7 @@ maintain_object_options : empty
 maintain_object_options_list : maintain_object_option
              {
 	       NAList<ExeUtilMaintainObject::MaintainObjectOption*> * mtol =
-		 new (PARSERHEAP ()) NAList<ExeUtilMaintainObject::MaintainObjectOption*>;
+		 new (PARSERHEAP ()) NAList<ExeUtilMaintainObject::MaintainObjectOption*>(PARSERHEAP ());
 	       mtol->insert($1);
 	       $$ = mtol;
 	     }
@@ -17738,7 +17738,7 @@ aqr_task :   TOK_ADD { $$ = 1; }
 aqr_options_list : aqr_option
                       {
 			NAList<ExeUtilAQR::AQROption*> * o =
-			  new (PARSERHEAP ()) NAList<ExeUtilAQR::AQROption*>;
+			  new (PARSERHEAP ()) NAList<ExeUtilAQR::AQROption*>(PARSERHEAP ());
 			o->insert($1);
 			$$ = o;
 		      }
@@ -17968,7 +17968,7 @@ optional_hbbload_options : TOK_WITH hbbload_option_list
 hbbload_option_list : hbbload_option
                       {
                         NAList<ExeUtilHBaseBulkLoad::HBaseBulkLoadOption*> * hbol =
-                        new (PARSERHEAP ()) NAList<ExeUtilHBaseBulkLoad::HBaseBulkLoadOption*>;
+			  new (PARSERHEAP ()) NAList<ExeUtilHBaseBulkLoad::HBaseBulkLoadOption*>(PARSERHEAP ());
                         hbol->insert($1);
                         $$ = hbol;
                       }
@@ -18173,7 +18173,7 @@ optional_hbb_unload_options : TOK_WITH hbb_unload_option_list
 hbb_unload_option_list : hbb_unload_option
                 {
                    NAList<UnloadOption*> * hbol =
-                   new (PARSERHEAP ()) NAList<UnloadOption*>;
+		     new (PARSERHEAP ()) NAList<UnloadOption*>(PARSERHEAP ());
                    hbol->insert($1);
                    $$ = hbol;
                 }
@@ -26994,7 +26994,7 @@ hbase_table_options : TOK_HBASE_OPTIONS '('  hbase_options_list ')'
 hbase_options_list : hbase_option
                       {
 			NAList<HbaseCreateOption*> * hbol =
-			  new (PARSERHEAP ()) NAList<HbaseCreateOption*>;
+			  new (PARSERHEAP ()) NAList<HbaseCreateOption*>(PARSERHEAP ());
 			hbol->insert($1);
 			$$ = hbol;
 		      }
@@ -27988,7 +27988,7 @@ authorization_identifier_or_public : authorization_identifier
 /* type pConstStringList */
 component_privilege_name_list : component_privilege_name
                {
-                 $$ = new (PARSERHEAP()) ConstStringList();
+                 $$ = new (PARSERHEAP()) ConstStringList(PARSERHEAP ());
                  $$->insert($1); // component_privilege_name - NAString * stringval - shallow copy
                }
                | component_privilege_name_list ',' component_privilege_name

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/qmscommon/Range.cpp
----------------------------------------------------------------------
diff --git a/core/sql/qmscommon/Range.cpp b/core/sql/qmscommon/Range.cpp
index baed367..c20fd10 100644
--- a/core/sql/qmscommon/Range.cpp
+++ b/core/sql/qmscommon/Range.cpp
@@ -48,7 +48,8 @@ RangeSpec::RangeSpec(QRRangePredPtr rangePred, CollHeap* heap, logLevel ll)
     nullIncluded_(FALSE),
     type_(NULL),
     isDumpMvMode_(FALSE),
-    logLevel_(ll)
+    logLevel_(ll),
+    subranges_(heap)
 {
   assertLogAndThrow(CAT_SQL_COMP_RANGE, logLevel_,
                     rangePred, QRLogicException,

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/qmscommon/Range.h
----------------------------------------------------------------------
diff --git a/core/sql/qmscommon/Range.h b/core/sql/qmscommon/Range.h
index e1ce2ba..77c7478 100644
--- a/core/sql/qmscommon/Range.h
+++ b/core/sql/qmscommon/Range.h
@@ -956,7 +956,8 @@ class RangeSpec : public NABasicObject
         nullIncluded_(FALSE),
         type_(NULL),
         isDumpMvMode_(FALSE),
-        logLevel_(ll)
+        logLevel_(ll),
+        subranges_(heap)
       {}
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/sqlcomp/CmpDescribe.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpDescribe.cpp b/core/sql/sqlcomp/CmpDescribe.cpp
index 327b33d..531cf3a 100644
--- a/core/sql/sqlcomp/CmpDescribe.cpp
+++ b/core/sql/sqlcomp/CmpDescribe.cpp
@@ -2935,8 +2935,8 @@ short CmpDescribeSeabaseTable (
   NABoolean isSalted = FALSE;
   NABoolean isDivisioned = FALSE;
   ItemExpr *saltExpr;
-  LIST(NAString) divisioningExprs;
-  LIST(NABoolean) divisioningExprAscOrders;
+  LIST(NAString) divisioningExprs(heap);
+  LIST(NABoolean) divisioningExprAscOrders(heap);
 
   if (naTable->getClusteringIndex())
     {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp b/core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp
index 4ef16c5..d1c456c 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp
@@ -639,7 +639,7 @@ short CmpSeabaseDDL::processDDLandCreateDescs(
       ComTdbVirtTableKeyInfo * indexKeyInfoArray = NULL;
       ComTdbVirtTableKeyInfo * indexNonKeyInfoArray = NULL;
       
-      NAList<NAString> selColList;
+      NAList<NAString> selColList(STMTHEAP);
       NAString defaultColFam(SEABASE_DEFAULT_COL_FAMILY);
       if (createIndexColAndKeyInfoArrays(indexColRefArray,
                                          createIndexNode->isUniqueSpecified(),
@@ -2428,7 +2428,7 @@ short CmpSeabaseDDL::createHbaseTable(ExpHbaseInterface *ehi,
   // metadata. It creates the corresponding hbase table.
   short retcode = 0;
 
-  HBASE_NAMELIST colFamList;
+  HBASE_NAMELIST colFamList(STMTHEAP);
   HbaseStr colFam;
 
   retcode = -1;
@@ -2549,7 +2549,7 @@ short CmpSeabaseDDL::createHbaseTable(ExpHbaseInterface *ehi,
   std::vector<NAString> colFamVec;
   colFamVec.push_back(cf1);
 
-  NAList<HbaseCreateOption*> lHbaseCreateOptions;
+  NAList<HbaseCreateOption*> lHbaseCreateOptions(STMTHEAP);
   NAText lHbaseCreateOptionsArray[HBASE_MAX_OPTIONS];
 
   NAList<HbaseCreateOption*> * hbaseCreateOptions = inHbaseCreateOptions;
@@ -4155,7 +4155,7 @@ short CmpSeabaseDDL::genHbaseCreateOptions(
   if (numHBO == 0)
     return 0;
 
-  hbaseCreateOptions = new(heap) NAList<HbaseCreateOption*>;
+  hbaseCreateOptions = new(heap) NAList<HbaseCreateOption*>(heap);
 
   const char * optionStart = startNumHBO + 4;
   
@@ -4304,7 +4304,7 @@ short CmpSeabaseDDL::updateHbaseOptionsInMetadata(
   // old list is empty.
 
   if (!hbaseCreateOptions)
-    hbaseCreateOptions = new(STMTHEAP) NAList<HbaseCreateOption *>;
+    hbaseCreateOptions = new(STMTHEAP) NAList<HbaseCreateOption *>(STMTHEAP);
 
   NAList<HbaseCreateOption *> & newHbaseCreateOptions = edhbo->getHbaseOptions(); 
   for (CollIndex i = 0; i < newHbaseCreateOptions.entries(); i++)

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/sqlcomp/CmpSeabaseDDLindex.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLindex.cpp b/core/sql/sqlcomp/CmpSeabaseDDLindex.cpp
index cef856b..6f0ecd0 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLindex.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLindex.cpp
@@ -834,7 +834,7 @@ void CmpSeabaseDDL::createSeabaseIndex( StmtDDLCreateIndex * createIndexNode,
   ComTdbVirtTableColumnInfo * colInfoArray = NULL;
   ComTdbVirtTableKeyInfo * keyInfoArray = NULL;
 
-  NAList<NAString> selColList;
+  NAList<NAString> selColList(STMTHEAP);
 
   if (createIndexColAndKeyInfoArrays(indexColRefArray,
 				     createIndexNode->isUniqueSpecified(),
@@ -912,7 +912,7 @@ void CmpSeabaseDDL::createSeabaseIndex( StmtDDLCreateIndex * createIndexNode,
   ii->nonKeyColCount = nonKeyColCount;
   ii->keyInfoArray = NULL; //keyInfoArray;
 
-  NAList<HbaseCreateOption*> hbaseCreateOptions;
+  NAList<HbaseCreateOption*> hbaseCreateOptions(STMTHEAP);
   NAString hco;
 
   if (alignedFormat)
@@ -1345,7 +1345,7 @@ void CmpSeabaseDDL::populateSeabaseIndex(
 	  if (isValid)
 	    continue;
 
-	  NAList<NAString> selColList;
+	  NAList<NAString> selColList(STMTHEAP);
 
 	  for (Lng32 ii = 0; ii < naf->getAllColumns().entries(); ii++)
 	    {
@@ -2140,7 +2140,7 @@ void CmpSeabaseDDL::alterSeabaseIndexHBaseOptions(
 
   // tell HBase to change the options
 
-  NAList<NAString> nal;
+  NAList<NAString> nal(STMTHEAP);
   nal.insert(naTable->defaultColFam());
   HbaseStr hbaseTable;
   hbaseTable.val = (char*)extNameForHbase.data();

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp b/core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp
index 13feea9..b0e1112 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp
@@ -382,8 +382,8 @@ short CmpSeabaseDDL::dropAndLogReposViews(ExeCliInterface * cliInterface,
 
       if (tableUID != -1)  // if we got it
         {
-          NAList<NAString> viewNameList;
-          NAList<NAString> viewDefnList;
+          NAList<NAString> viewNameList(STMTHEAP);
+          NAList<NAString> viewDefnList(STMTHEAP);
  
           short retcode1 = 
              saveAndDropUsingViews(tableUID, cliInterface,

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp b/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
index b5536f6..596ea0c 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
@@ -2108,7 +2108,7 @@ short CmpSeabaseDDL::createSeabaseTable2(
   tableInfo->numSaltPartns = (numSplits > 0 ? numSplits+1 : 0);
   tableInfo->rowFormat = (alignedFormat ? COM_ALIGNED_FORMAT_TYPE : COM_HBASE_FORMAT_TYPE);
 
-  NAList<HbaseCreateOption*> hbaseCreateOptions;
+  NAList<HbaseCreateOption*> hbaseCreateOptions(STMTHEAP);
   NAString hco;
 
   short retVal = setupHbaseOptions(createTableNode->getHbaseOptionsClause(), 
@@ -5109,11 +5109,11 @@ void CmpSeabaseDDL::alterSeabaseTableAddColumn(
         }
 
       HbaseCreateOption hbco("NAME", trafColFam.data()); 
-      NAList<HbaseCreateOption*> hbcol;
+      NAList<HbaseCreateOption*> hbcol(STMTHEAP);
       hbcol.insert(&hbco);
       ElemDDLHbaseOptions edhbo(&hbcol, STMTHEAP);
 
-      NAList<NAString> nal;
+      NAList<NAString> nal(STMTHEAP);
       nal.insert(trafColFam);
 
       HbaseStr hbaseTable;
@@ -5765,8 +5765,8 @@ void CmpSeabaseDDL::alterSeabaseTableDropColumn(
 
   Int64 objUID = naTable->objectUid().castToInt64();
 
-  NAList<NAString> viewNameList;
-  NAList<NAString> viewDefnList;
+  NAList<NAString> viewNameList(STMTHEAP);
+  NAList<NAString> viewDefnList(STMTHEAP);
   if (saveAndDropUsingViews(objUID, &cliInterface, viewNameList, viewDefnList))
     {
       NAString reason = "Error occurred while saving views.";
@@ -6871,8 +6871,8 @@ void CmpSeabaseDDL::alterSeabaseTableAlterColumnDatatype(
   // the views.
   // At the end of alter, views will be recreated. If an error happens
   // during view recreation, alter will fail.
-  NAList<NAString> viewNameList;
-  NAList<NAString> viewDefnList;
+  NAList<NAString> viewNameList(STMTHEAP);
+  NAList<NAString> viewDefnList(STMTHEAP);
   if (saveAndDropUsingViews(objUID, &cliInterface, viewNameList, viewDefnList))
      {
       NAString reason = "Error occurred while saving views.";
@@ -7145,8 +7145,8 @@ void CmpSeabaseDDL::alterSeabaseTableAlterColumnRename(
 
   Int64 objUID = naTable->objectUid().castToInt64();
   
-  NAList<NAString> viewNameList;
-  NAList<NAString> viewDefnList;
+  NAList<NAString> viewNameList(STMTHEAP);
+  NAList<NAString> viewDefnList(STMTHEAP);
   if (saveAndDropUsingViews(objUID, &cliInterface, viewNameList, viewDefnList))
     {
       NAString reason = "Error occurred while saving dependent views.";
@@ -7730,7 +7730,7 @@ void CmpSeabaseDDL::alterSeabaseTableAddUniqueConstraint(
       return;
     }
 
-  NAList<NAString> emptyKeyColList;
+  NAList<NAString> emptyKeyColList(STMTHEAP);
   if (updateIndexInfo(keyColList,
                       keyColOrderList,
                       emptyKeyColList,
@@ -8715,7 +8715,7 @@ void CmpSeabaseDDL::alterSeabaseTableAddCheckConstraint(
         }
     }
 
-  NAList<NAString> keyColList;
+  NAList<NAString> keyColList(STMTHEAP);
   if (constraintErrorChecks(&cliInterface,
                             alterAddConstraint->castToStmtDDLAddConstraintCheck(),
                             naTable,
@@ -8779,7 +8779,7 @@ void CmpSeabaseDDL::alterSeabaseTableAddCheckConstraint(
   comUID.make_UID();
   Int64 checkUID = comUID.get_value();
 
-  NAList<NAString> emptyList;
+  NAList<NAString> emptyList(STMTHEAP);
   if (updateConstraintMD(keyColList, emptyList, uniqueStr, tableUID, checkUID, 
                          naTable, COM_CHECK_CONSTRAINT, TRUE, &cliInterface))
     {
@@ -9721,7 +9721,7 @@ void CmpSeabaseDDL::createNativeHbaseTable(
       colFamVec.push_back(nas->data());
     }
 
-  NAList<HbaseCreateOption*> hbaseCreateOptions;
+  NAList<HbaseCreateOption*> hbaseCreateOptions(STMTHEAP);
   NAString hco;
   retcode = setupHbaseOptions(createTableNode->getHbaseOptionsClause(), 
                               0, objectNamePart,
@@ -10380,7 +10380,7 @@ ComTdbVirtTablePrivInfo * CmpSeabaseDDL::getSeabasePrivInfo(
   ComTdbVirtTablePrivInfo *privInfo = new (STMTHEAP) ComTdbVirtTablePrivInfo();
 
   // PrivMgrDesc operator= is a deep copy
-  privInfo->privmgr_desc_list = new (STMTHEAP) NAList<PrivMgrDesc>;
+  privInfo->privmgr_desc_list = new (STMTHEAP) NAList<PrivMgrDesc>(STMTHEAP);
   for (size_t i = 0; i < privDescs.size(); i++)
     privInfo->privmgr_desc_list->insert(privDescs[i]);
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/sqlcomp/CmpSeabaseDDLview.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLview.cpp b/core/sql/sqlcomp/CmpSeabaseDDLview.cpp
index 50be2fe..eeccb3b 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLview.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLview.cpp
@@ -496,7 +496,7 @@ short CmpSeabaseDDL::getListOfReferencedTables(
 {
   Lng32 retcode = 0;
 
-  NAList <objectRefdByMe> tempRefdList;
+  NAList <objectRefdByMe> tempRefdList(STMTHEAP);
   retcode = getListOfDirectlyReferencedObjects (cliInterface, objectUID, tempRefdList);
   
   // If unexpected error - return
@@ -1183,7 +1183,7 @@ void CmpSeabaseDDL::dropSeabaseView(
 
   // get the list of all tables referenced by the view.  Save this list so 
   // referenced tables can be removed from cache later
-  NAList<objectRefdByMe> tablesRefdList;
+  NAList<objectRefdByMe> tablesRefdList(STMTHEAP);
   short status = getListOfReferencedTables(&cliInterface, objUID, tablesRefdList);
 
   if (usingViewsQueue)

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/sqlcomp/PrivMgrPrivileges.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/PrivMgrPrivileges.cpp b/core/sql/sqlcomp/PrivMgrPrivileges.cpp
index 0dbb45b..6e96350 100644
--- a/core/sql/sqlcomp/PrivMgrPrivileges.cpp
+++ b/core/sql/sqlcomp/PrivMgrPrivileges.cpp
@@ -1229,7 +1229,7 @@ PrivStatus PrivMgrPrivileges::grantColumnPriv(
   }
 
   // Get existing column grants from grantor to the specified grantee.
-  NAList<PrivMgrCoreDesc> grantedColPrivs;
+  NAList<PrivMgrCoreDesc> grantedColPrivs(STMTHEAP);
   getColRowsForGranteeGrantor(columnRowList_,
                               granteeID,grantorID_,
                               grantedColPrivs);
@@ -3028,7 +3028,7 @@ PrivStatus PrivMgrPrivileges::revokeColumnPriv(
   NAList<PrivMgrCoreDesc> colPrivsToRevoke = privsToRevoke.getColumnPrivs();
 
   // Get existing column grants from grantor to the specified grantee.
-  NAList<PrivMgrCoreDesc> grantedColPrivs;
+  NAList<PrivMgrCoreDesc> grantedColPrivs(STMTHEAP);
   getColRowsForGranteeGrantor(columnRowList_,
                               granteeID,grantorID_,
                               grantedColPrivs);
@@ -4511,7 +4511,7 @@ PrivStatus PrivMgrPrivileges::getPrivsFromAllGrantors(
   if (retcode == STATUS_ERROR)
     return retcode;
 
-  NAList<PrivMgrCoreDesc> coreColumnPrivs;
+  NAList<PrivMgrCoreDesc> coreColumnPrivs(STMTHEAP);
   for (int32_t i = 0; i < rowList.size();++i)
   {
     ColumnPrivsMDRow &row = static_cast<ColumnPrivsMDRow &> (*rowList[i]);
@@ -5107,7 +5107,7 @@ PrivStatus PrivMgrPrivileges::convertPrivsToDesc(
   //
   // Input may have same column ordinal in multiple entries, but the input is 
   // guaranteed not to contain same ordinal and privType more than once.
-  NAList<PrivMgrCoreDesc> columnCorePrivs;
+  NAList<PrivMgrCoreDesc> columnCorePrivs(STMTHEAP);
   for (size_t i = 0; i < colPrivsList.size(); i++)
   {
     const ColPrivSpec &colPrivSpec = colPrivsList[i];

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/sqlcomp/QCache.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/QCache.cpp b/core/sql/sqlcomp/QCache.cpp
index 2478922..e2ffc6e 100644
--- a/core/sql/sqlcomp/QCache.cpp
+++ b/core/sql/sqlcomp/QCache.cpp
@@ -1284,7 +1284,7 @@ NABoolean CacheData::backpatchParams
   CollIndex y=0;
   Int32 countP2 = formals_.entries();
   Int32 countS2 = fSels_.entries();
-  LIST(NAType*) hqcTypes;
+  LIST(NAType*) hqcTypes(STMTHEAP);
 
   for (CollIndex j = 0; j < (countP2+countS2); j ++)
   {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/sqlcomp/QCache.h
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/QCache.h b/core/sql/sqlcomp/QCache.h
index cb12932..a3d03dc 100644
--- a/core/sql/sqlcomp/QCache.h
+++ b/core/sql/sqlcomp/QCache.h
@@ -642,6 +642,7 @@ class HQCParseKey : public HQCCacheKey
             , nOfTokens_(other.nOfTokens_)
             , isStringNormalized_(other.isStringNormalized_)
             , paramStart_(other.paramStart_)
+	    , HQCDynParamMap_(other.HQCDynParamMap_, h)
 	     {}
 	
        ~HQCParseKey() {}

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/sqlcomp/nadefaults.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/nadefaults.cpp b/core/sql/sqlcomp/nadefaults.cpp
index d001ce6..c405ef8 100644
--- a/core/sql/sqlcomp/nadefaults.cpp
+++ b/core/sql/sqlcomp/nadefaults.cpp
@@ -4127,6 +4127,7 @@ NADefaults::NADefaults(NAMemory * h)
   , heap_(h)
   , resetAll_(FALSE)
   , defFlags_(0)
+  , tablesRead_(h)
 {
   static THREAD_P NABoolean systemParamterUpdated = FALSE;
   // First (but only if NSK-LITE Services exist),

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/sqlcomp/parser.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/parser.cpp b/core/sql/sqlcomp/parser.cpp
index 58f2e7e..9f2a1c8 100644
--- a/core/sql/sqlcomp/parser.cpp
+++ b/core/sql/sqlcomp/parser.cpp
@@ -108,6 +108,8 @@ ULng32 cmmHashFunc_NAString(const NAString& str)
 
 
 Parser::Parser(const CmpContext* cmpContext) 
+  : hasOlapFunctions_(NULL),
+    hasTDFunctions_(NULL)
 {
   cmpContext_ = const_cast<CmpContext*>(cmpContext);
 
@@ -151,7 +153,8 @@ Parser::Parser(const CmpContext* cmpContext)
     {
       defaultColCharset_ = CharInfo::getCharSetEnum(cs);
     }
- 
+  hasOlapFunctions_.setHeap(wHeap_);
+  hasTDFunctions_.setHeap(wHeap_);
   clearHasOlapFunctions();
 
   HQCKey_ = NULL;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/udrserv/spinfo.cpp
----------------------------------------------------------------------
diff --git a/core/sql/udrserv/spinfo.cpp b/core/sql/udrserv/spinfo.cpp
index 6c136c3..4bd708d 100644
--- a/core/sql/udrserv/spinfo.cpp
+++ b/core/sql/udrserv/spinfo.cpp
@@ -2096,7 +2096,8 @@ void SPInfo::moveDiagsIntoStream(ComDiagsArea *diags,
 //***********************************************************************
 
 SPList::SPList(UdrGlobals *udrGlobals)
-  : udrGlobals_(udrGlobals)
+  : udrGlobals_(udrGlobals),
+    spInfoElement_(NULL) // on system heap
 {
   str_cpy_all( &eyeCatcher_[0], EYE_SPLIST + '\0' + '\0', 4 );
   spInfoElement_.resize(0);  // default size

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c164c5b0/core/sql/ustat/hs_cli.cpp
----------------------------------------------------------------------
diff --git a/core/sql/ustat/hs_cli.cpp b/core/sql/ustat/hs_cli.cpp
index 1260566..fb9818a 100644
--- a/core/sql/ustat/hs_cli.cpp
+++ b/core/sql/ustat/hs_cli.cpp
@@ -2031,7 +2031,7 @@ HSPersData* HSPersData::Instance(const NAString &catalog)
       instance_ = new (CTXTHEAP) HSPersData;
 
     if (persDataList_ == 0)
-      persDataList_ = new (CTXTHEAP) NAList<NAString>;
+      persDataList_ = new (CTXTHEAP) NAList<NAString>(CTXTHEAP);
     if (catalog_ == 0)
       catalog_ = new (CTXTHEAP) NAString("");
     if (schema_ == 0)