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:38 UTC

[1/7] incubator-trafodion git commit: Create NACollection objects on NAHeap. Avoid use of system heap as far as possible

Repository: incubator-trafodion
Updated Branches:
  refs/heads/master 12f602cab -> e3c8d7e80


Create NACollection objects on NAHeap.
Avoid use of system heap as far as possible


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

Branch: refs/heads/master
Commit: eb3986eb0bc1f8cb48cb2bf3a9d15c7fcd5aa356
Parents: 5c1fe9c
Author: Suresh Subbiah <su...@apache.org>
Authored: Wed Oct 5 04:11:52 2016 +0000
Committer: Suresh Subbiah <su...@apache.org>
Committed: Wed Oct 5 04:11:52 2016 +0000

----------------------------------------------------------------------
 core/sql/arkcmp/CmpContext.cpp          |  3 +-
 core/sql/arkcmp/CmpStatement.cpp        |  2 ++
 core/sql/arkcmp/cmpargs.cpp             |  2 +-
 core/sql/cli/Context.cpp                | 21 +++++++------
 core/sql/cli/Globals.cpp                | 17 +++++++----
 core/sql/common/BloomFilter.cpp         |  2 +-
 core/sql/common/ColIndList.h            |  4 +--
 core/sql/common/Collections.cpp         |  1 -
 core/sql/common/Collections.h           | 45 +++++++++++++++-------------
 core/sql/common/ComExeTrace.cpp         |  1 +
 core/sql/common/Ipc.h                   |  4 ++-
 core/sql/common/NAMemory.cpp            |  2 +-
 core/sql/common/NATestpoint.cpp         |  3 +-
 core/sql/common/NATraceList.h           |  2 +-
 core/sql/executor/ExHbaseAccess.cpp     |  1 +
 core/sql/executor/ExHbaseDDL.cpp        |  2 +-
 core/sql/exp/ExpLOB.h                   |  4 ++-
 core/sql/exp/ExpPCodeOptimizations.cpp  |  2 +-
 core/sql/exp/ExpPCodeOptsBulk.cpp       |  4 +--
 core/sql/exp/ExpPCodeOptsNativeExpr.cpp |  2 +-
 core/sql/exp/exp_tuple_desc.cpp         | 17 ++++++-----
 core/sql/export/ComDiags.cpp            |  4 +--
 core/sql/langman/LmRoutineJava.cpp      |  3 +-
 core/sql/langman/LmUtility.cpp          |  2 +-
 core/sql/optimizer/BindItemExpr.cpp     |  6 ++--
 core/sql/optimizer/BindRI.cpp           |  2 +-
 core/sql/optimizer/BindRelExpr.cpp      |  2 +-
 core/sql/optimizer/BindWA.h             |  2 +-
 core/sql/optimizer/ColStatDesc.cpp      |  6 ++--
 core/sql/optimizer/EncodedValue.cpp     |  3 +-
 core/sql/optimizer/HDFSHook.cpp         |  2 +-
 core/sql/optimizer/MJVIndexBuilder.cpp  | 12 ++++----
 core/sql/optimizer/MjvBuilder.cpp       |  2 +-
 core/sql/optimizer/MvRefreshBuilder.cpp |  4 +--
 core/sql/optimizer/NATable.h            |  9 +++++-
 core/sql/optimizer/NodeMap.cpp          |  2 +-
 core/sql/optimizer/NormRelExpr.cpp      |  7 ++---
 core/sql/optimizer/OptRange.cpp         |  4 +--
 core/sql/optimizer/RelExpr.cpp          | 23 ++++++++------
 core/sql/optimizer/Rule.cpp             |  4 +--
 core/sql/optimizer/ScanOptimizer.cpp    |  4 +--
 core/sql/optimizer/SearchKey.cpp        |  4 +--
 core/sql/optimizer/Stats.h              | 12 ++++----
 core/sql/optimizer/TableNameMap.h       |  3 +-
 core/sql/optimizer/TransRule.cpp        |  2 +-
 core/sql/parser/ElemDDLHbaseOptions.h   |  3 +-
 core/sql/runtimestats/ssmpipc.cpp       |  2 +-
 core/sql/sqlcomp/CmpSeabaseDDLtable.cpp |  8 ++---
 core/sql/sqlcomp/PrivMgrDesc.h          |  8 ++---
 core/sql/sqlmsg/GetErrorMessage.cpp     |  2 +-
 core/sql/ustat/hs_parser.cpp            |  4 +--
 51 files changed, 163 insertions(+), 129 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/arkcmp/CmpContext.cpp
----------------------------------------------------------------------
diff --git a/core/sql/arkcmp/CmpContext.cpp b/core/sql/arkcmp/CmpContext.cpp
index 33da08b..f48d7d2 100644
--- a/core/sql/arkcmp/CmpContext.cpp
+++ b/core/sql/arkcmp/CmpContext.cpp
@@ -139,7 +139,8 @@ CmpContext::CmpContext(UInt32 f, CollHeap * h)
   optPCodeCache_(NULL),                       // just to be safe ...
   CDBList_(NULL),
   allControlCount_(0),
-  optSimulator_(NULL)
+  optSimulator_(NULL),
+  hosts_(h)
 {
   SetMode(isDynamicSQL() ? STMT_DYNAMIC : STMT_STATIC);
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/arkcmp/CmpStatement.cpp
----------------------------------------------------------------------
diff --git a/core/sql/arkcmp/CmpStatement.cpp b/core/sql/arkcmp/CmpStatement.cpp
index 070a1a5..0f2a6f2 100644
--- a/core/sql/arkcmp/CmpStatement.cpp
+++ b/core/sql/arkcmp/CmpStatement.cpp
@@ -140,6 +140,7 @@ CmpStatement::error(Lng32 no, const char* s)
 CmpStatement::CmpStatement(CmpContext* context,
                            CollHeap* outHeap,
                            NAMemory::NAMemoryType memoryType)
+ : parserStmtLiteralList_(outHeap)
 {
   exceptionRaised_ = FALSE;
   reply_ = 0;
@@ -202,6 +203,7 @@ CmpStatement::CmpStatement(CmpContext* context,
 
   simpleFSOTaskMonitor_ = new (heap_) TaskMonitor();
   //simpleFSOMonPtr = simpleFSOTaskMonitor_;
+  parserStmtLiteralList_.setHeap(heap_);
 }
 
 CmpStatement::~CmpStatement()

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/arkcmp/cmpargs.cpp
----------------------------------------------------------------------
diff --git a/core/sql/arkcmp/cmpargs.cpp b/core/sql/arkcmp/cmpargs.cpp
index a39207a..6ebfa91 100644
--- a/core/sql/arkcmp/cmpargs.cpp
+++ b/core/sql/arkcmp/cmpargs.cpp
@@ -195,7 +195,7 @@ Cmdline_Args::Cmdline_Args()
     allocMethod_(IPC_ALLOC_DONT_CARE),
     socketArg_(0),
     portArg_(0),
-    settings_(),
+    settings_(NULL), // This NAArray goes on system heap. NULL for heap*
     noSeabaseDefTableRead_(FALSE)
 {}
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/cli/Context.cpp
----------------------------------------------------------------------
diff --git a/core/sql/cli/Context.cpp b/core/sql/cli/Context.cpp
index 1833488..ef65ac5 100644
--- a/core/sql/cli/Context.cpp
+++ b/core/sql/cli/Context.cpp
@@ -178,11 +178,16 @@ ContextCli::ContextCli(CliGlobals *cliGlobals)
     dropInProgress_(FALSE),
     isEmbeddedArkcmpInitialized_(FALSE),
     embeddedArkcmpContext_(NULL),
-    ddlStmtsExecuted_(FALSE)
-   , numCliCalls_(0)
-   , jniErrorStr_(&exHeap_)
-   , hbaseClientJNI_(NULL)
-   , hiveClientJNI_(NULL)
+    ddlStmtsExecuted_(FALSE),
+    numCliCalls_(0),
+    jniErrorStr_(&exHeap_),
+    hbaseClientJNI_(NULL),
+    hiveClientJNI_(NULL),
+    arkcmpArray_(&exHeap_),
+    cmpContextInfo_(&exHeap_),
+    cmpContextInUse_(&exHeap_),
+    arkcmpInitFailed_(&exHeap_),
+    trustedRoutines_(&exHeap_)
 {
   exHeap_.setJmpBuf(cliGlobals->getJmpBuf());
   cliSemaphore_ = new (&exHeap_) CLISemaphore();
@@ -232,9 +237,6 @@ ContextCli::ContextCli(CliGlobals *cliGlobals)
   authToken_    = 0;
   authIDType_   = SQLAUTHID_TYPE_INVALID;
 
-  arkcmpArray_.setHeap(exCollHeap());
-  arkcmpInitFailed_.setHeap(exCollHeap());
-
   arkcmpArray_.insertAt(0,  new(exCollHeap()) ExSqlComp(0,
                                exCollHeap(),
                                cliGlobals,0,
@@ -301,9 +303,6 @@ ContextCli::ContextCli(CliGlobals *cliGlobals)
 
   hdfsHandleList_ = new(exCollHeap()) HashQueue(exCollHeap(), 50); // The hfsHandleList_ represents a list of distict hdfs Handles with unique hdfs port numbers and server names. Assume not more than 50 hdfsServers could be connected in the Trafodion setup.  These will get initialized the first time access is made to a particular hdfs server. This list gets cleaned up when the thread exits. 
   
-  // For CmpContext switch
-  cmpContextInfo_.setHeap(exCollHeap());
-  cmpContextInUse_.setHeap(exCollHeap());
 }  
 
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/cli/Globals.cpp
----------------------------------------------------------------------
diff --git a/core/sql/cli/Globals.cpp b/core/sql/cli/Globals.cpp
index cabdc29..5194ae9 100644
--- a/core/sql/cli/Globals.cpp
+++ b/core/sql/cli/Globals.cpp
@@ -107,15 +107,20 @@ CliGlobals::CliGlobals(NABoolean espProcess)
        priorityChanged_(FALSE),
        currRootTcb_(NULL),
        processStats_(NULL),
-       savedPriority_(148) // Set it to some valid priority to start with
+       savedPriority_(148), // Set it to some valid priority to start with
+       qualifyingVolsPerNode_(NULL),
+       cpuNumbers_(NULL),
+       capacities_(NULL),
+       freespaces_(NULL),
+       largestFragments_(NULL),
+       tidList_(NULL),
+       cliSemaphore_(NULL),
+       defaultContext_(NULL),
+       langManC_(NULL),
+       langManJava_(NULL)
 #ifdef SQ_PHANDLE_VERIFIER
        , myVerifier_(-1)
 #endif
-       , tidList_(NULL)
-       , cliSemaphore_(NULL)
-       , defaultContext_(NULL)
-       , langManC_(NULL)
-       , langManJava_(NULL)
 {
   globalsAreInitialized_ = FALSE;
   executorMemory_.setThreadSafe();

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/common/BloomFilter.cpp
----------------------------------------------------------------------
diff --git a/core/sql/common/BloomFilter.cpp b/core/sql/common/BloomFilter.cpp
index 313678b..68e3f36 100644
--- a/core/sql/common/BloomFilter.cpp
+++ b/core/sql/common/BloomFilter.cpp
@@ -1148,7 +1148,7 @@ FastStatsCountingBloomFilter::FastStatsCountingBloomFilter(NAHeap* heap,
   overflowCountTable_(scbfHashFunc, 1000 /* initial # of elements */,
                       TRUE/*uniqueness enforced*/, heap),
   counters_(m_, (UInt32)bitsNeeded(maxNonOverflowFreq), heap_),
-  keys_(n/* initial # of elements*/, heap)
+  keys_(heap, n/* initial # of elements*/)
 {
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/common/ColIndList.h
----------------------------------------------------------------------
diff --git a/core/sql/common/ColIndList.h b/core/sql/common/ColIndList.h
index 5e355d1..aaaaed3 100644
--- a/core/sql/common/ColIndList.h
+++ b/core/sql/common/ColIndList.h
@@ -46,8 +46,8 @@
 class ColIndList : public LIST(Lng32)
 {
 public:
-  ColIndList() : LIST(Lng32)() {}
-  ColIndList(LIST(Lng32) list) : LIST(Lng32)(list) {}
+ ColIndList() : LIST(Lng32)(NULL) {} // on C++ heap
+ ColIndList(LIST(Lng32) list) : LIST(Lng32)(list,NULL) {}
   virtual ~ColIndList() {}
   NABoolean isPrefixOf(const ColIndList& other) const;
   NABoolean isOrderedPrefixOf(const ColIndList& other) const;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/common/Collections.cpp
----------------------------------------------------------------------
diff --git a/core/sql/common/Collections.cpp b/core/sql/common/Collections.cpp
index 54460d8..04c953d 100644
--- a/core/sql/common/Collections.cpp
+++ b/core/sql/common/Collections.cpp
@@ -1506,7 +1506,6 @@ NAHashDictionaryIterator<K,V>::NAHashDictionaryIterator (const NAHashDictionary<
                                                          const V* value)
      : iterator_(dict.heap_)
 {
-  NAHashBucket<K,V> iteratorTemp ; 
   if (key)
     (*(dict.hashTable_))[dict.getHashCode(*key)]->getKeyValuePair(key,value,iterator_);
   else 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/common/Collections.h
----------------------------------------------------------------------
diff --git a/core/sql/common/Collections.h b/core/sql/common/Collections.h
index d3fac06..ac482ba 100644
--- a/core/sql/common/Collections.h
+++ b/core/sql/common/Collections.h
@@ -1832,8 +1832,8 @@ template <class T> class NASet : public NACollection<T>
 public:
 
   // default constructor
-  NASet(CollIndex initSize = 0) : NACollection<T>(initSize)
-  { invalidateCache(); }
+  /* NASet(CollIndex initSize = 0) : NACollection<T>(initSize)
+     { invalidateCache(); } */
 
   // constructor with user-defined heap
   NASet(CollHeap  *heap,
@@ -1841,7 +1841,7 @@ public:
   { invalidateCache(); }
 
   // copy ctor
-  NASet(const SET(T) &other, CollHeap * heap=0) : NACollection<T>(other, heap)
+  NASet(const SET(T) &other, CollHeap * heap) : NACollection<T>(other, heap)
   { invalidateCache(); }
 
   // virtual destructor
@@ -1959,8 +1959,8 @@ template <class T> class NAList : public NACollection<T>
 public:
 
   // default constructor
-  NAList(CollIndex initLen = 0) : NACollection<T>(initLen) 
-  { first_ = last_ = userIndexCache_ = arrayIndexCache_ = NULL_COLL_INDEX; }
+  /*NAList(CollIndex initLen = 0) : NACollection<T>(initLen) 
+    { first_ = last_ = userIndexCache_ = arrayIndexCache_ = NULL_COLL_INDEX; }*/
 
   // constructor with user-defined heap
   NAList(CollHeap * heap,
@@ -1968,7 +1968,7 @@ public:
   { first_ = last_ = userIndexCache_ = arrayIndexCache_ = NULL_COLL_INDEX; }
 
   // copy ctor
-  NAList(const NAList<T> &other, CollHeap * heap=0) : NACollection<T>(other, heap)
+  NAList(const NAList<T> &other, CollHeap * heap) : NACollection<T>(other, heap)
   {
     first_ = other.first_;
     last_ = other.last_;
@@ -2217,15 +2217,15 @@ template <class T> class NAArray : public NACollection<T>
 public :
 
   // default constructor
-  NAArray(CollIndex initialElements = 0) : 
-       NACollection<T>(initialElements) {}
+  //NAArray(CollIndex initialElements = 0) : 
+  //NACollection<T>(initialElements) {}
 
   // constructor with user-defined heap
   NAArray(CollHeap *heap, CollIndex initialElements = 0) : 
        NACollection<T>(heap,initialElements) {}
 
   // copy ctor
-  NAArray(const NAArray & other, CollHeap * heap=0) : 
+  NAArray(const NAArray & other, CollHeap * heap) : 
        NACollection<T>(other, heap) {}
   
   // Resize the array to a new size(return new size)
@@ -2285,10 +2285,10 @@ template <class T> class NASubArray : public NASubCollection<T>
 
 public:
 
-  NASubArray(NAArray<T> *superset = NULL, CollHeap* heap=0) : 
+  NASubArray(NAArray<T> *superset, CollHeap* heap) : 
        NASubCollection<T>(superset, heap) {}
 
-  NASubArray(const NASubArray<T> &other, CollHeap * heap=0) : 
+  NASubArray(const NASubArray<T> &other, CollHeap * heap) : 
        NASubCollection<T>(other, heap) {}
 
   virtual ~NASubArray();
@@ -2358,10 +2358,10 @@ template <class T> class NASimpleArray : private NAArray<T>
 {
 
 public:
-  NASimpleArray (CollHeap * h=0) : NAArray<T>(h) {}
+  NASimpleArray (CollHeap * h) : NAArray<T>(h) {}
 
   // copy ctor
-  NASimpleArray (const NASimpleArray & orig, CollHeap * h=0) 
+  NASimpleArray (const NASimpleArray & orig, CollHeap * h) 
        : NAArray<T>(orig, h) {} 
 
   void clearAndDestroy()
@@ -2389,10 +2389,15 @@ public:
   
   // operator s new and delete get inherited from private base class,
   // make them publicly available by the following inline functions
-  static inline void * operator new(size_t size, CollHeap* h=0)
+  static inline void * operator new(size_t size, CollHeap* h)
                                 { return NAArray<T>::operator new(size, h); }
   static inline void operator delete(void *buffer)
                                   { NAArray<T>::operator delete(buffer); }
+
+  inline void setHeap(CollHeap *heap)
+   {
+     NAArray<T>::setHeap(heap);
+   }
 }; // NASimpleArray
 
 // ----------------------------------------------------------------------
@@ -2506,10 +2511,10 @@ public:
   // --------------------------------------------------------------------
   // Constructor function
   // --------------------------------------------------------------------
-  NAHashBucket(CollHeap * heap=0): bucket_(heap), heap_(heap) {}
+  NAHashBucket(CollHeap * heap): bucket_(heap), heap_(heap) {}
  
   // copy ctor
-  NAHashBucket(const NAHashBucket<K,V>& other, CollHeap * heap=0);
+  NAHashBucket(const NAHashBucket<K,V>& other, CollHeap * heap);
   
   // --------------------------------------------------------------------
   // Destructor function
@@ -2618,7 +2623,7 @@ friend class NAHashDictionaryIterator<K,V>;
 		   CollHeap * heap=0 /* where to allocate memory */ );
 
   // copy ctor
-  NAHashDictionary(const NAHashDictionary<K,V>& other, CollHeap * heap=0);
+  NAHashDictionary(const NAHashDictionary<K,V>& other, CollHeap * heap);
   
   // --------------------------------------------------------------------
   // Destructor function
@@ -2818,7 +2823,7 @@ public:
 
   // copy ctor
   NAHashDictionaryIterator<K,V> (const NAHashDictionaryIterator<K,V> & other,
-                                 CollHeap * heap=0) ; 
+                                 CollHeap * heap) ; 
 
   // dtor
   ~NAHashDictionaryIterator<K,V>() ; 
@@ -2913,13 +2918,13 @@ public:
   // --------------------------------------------------------------------
   NAKeyLookup(short initSize, 
               NAKeyLookupEnums::KeyProvenance keyProvenance,
-              CollHeap * heap=0 ) :
+              CollHeap * heap) :
        NAHashDictionary<K,V>(&hashKey, initSize, TRUE,heap),
        keyProvenance_(keyProvenance)
   {}
 
   // copy ctor
-  NAKeyLookup (const NAKeyLookup & nakl, CollHeap * heap=0 ) :
+  NAKeyLookup (const NAKeyLookup & nakl, CollHeap * heap) :
        NAHashDictionary<K,V>(nakl, heap),
        keyProvenance_(nakl.keyProvenance_)
   {}

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/common/ComExeTrace.cpp
----------------------------------------------------------------------
diff --git a/core/sql/common/ComExeTrace.cpp b/core/sql/common/ComExeTrace.cpp
index 60c0702..63b6221 100644
--- a/core/sql/common/ComExeTrace.cpp
+++ b/core/sql/common/ComExeTrace.cpp
@@ -83,6 +83,7 @@ ExeTrace::getTitleLineWidth()
 
 
 ExeTraceInfo::ExeTraceInfo()
+  : exeTraces_(NULL) // on C++ heap
 {
 };
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/common/Ipc.h
----------------------------------------------------------------------
diff --git a/core/sql/common/Ipc.h b/core/sql/common/Ipc.h
index 657d086..6c59ba4 100644
--- a/core/sql/common/Ipc.h
+++ b/core/sql/common/Ipc.h
@@ -572,7 +572,9 @@ public:
 
   static const char *getConnectionStateString(IpcConnectionState s);
 
-  IpcConnection() : fileNumForIOCompletion_(InvalidGuaFileNumber) {}
+ IpcConnection() 
+   : fileNumForIOCompletion_(InvalidGuaFileNumber),
+    recvStreams_(NULL) {} // recvStream on C++ heap
 
   virtual ~IpcConnection();
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/common/NAMemory.cpp
----------------------------------------------------------------------
diff --git a/core/sql/common/NAMemory.cpp b/core/sql/common/NAMemory.cpp
index 17d300e..cca6cbf 100644
--- a/core/sql/common/NAMemory.cpp
+++ b/core/sql/common/NAMemory.cpp
@@ -4300,7 +4300,7 @@ NAHeap::setAllocTrace()
       traceEnvChecked = true;
     }
   if (TraceAllocSize != 0 && memcmp(name_, "Process Stats Heap", 18))
-    la_ = new LIST(TrafAddrStack *);
+    la_ = new LIST(TrafAddrStack *)(NULL); // on C++ heap
   else
     la_ = NULL;
 }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/common/NATestpoint.cpp
----------------------------------------------------------------------
diff --git a/core/sql/common/NATestpoint.cpp b/core/sql/common/NATestpoint.cpp
index b24e8d4..323adef 100644
--- a/core/sql/common/NATestpoint.cpp
+++ b/core/sql/common/NATestpoint.cpp
@@ -323,7 +323,8 @@ CNATestPoint::Wait ( Lng32 delayTime_in_millisecs )
 // Constructor
 // ---------------------------------------------------------------------
 CNATestPointList::CNATestPointList ( EOwnership ownership) 
-    : m_ownership (ownership)
+  : LIST(CNATestPoint*)(NULL), 
+    m_ownership (ownership)
 {
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/common/NATraceList.h
----------------------------------------------------------------------
diff --git a/core/sql/common/NATraceList.h b/core/sql/common/NATraceList.h
index c78800e..5987654 100644
--- a/core/sql/common/NATraceList.h
+++ b/core/sql/common/NATraceList.h
@@ -46,7 +46,7 @@ class NATraceList : public LIST(NAString)
 {
 public:
 
-  NATraceList(){}
+ NATraceList(): LIST(NAString)(NULL) {} // on C++ heap
    ~NATraceList(){} 
 
   inline NATraceList & operator = (const NATraceList &rhs)

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/executor/ExHbaseAccess.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExHbaseAccess.cpp b/core/sql/executor/ExHbaseAccess.cpp
index 37f55ea..0e5642a 100644
--- a/core/sql/executor/ExHbaseAccess.cpp
+++ b/core/sql/executor/ExHbaseAccess.cpp
@@ -233,6 +233,7 @@ ExHbaseAccessTcb::ExHbaseAccessTcb(
   , rowIds_(glob ? glob->getDefaultHeap() : NULL)
   , columns_(glob ? glob->getDefaultHeap() : NULL)
   , deletedColumns_(glob ? glob->getDefaultHeap() : NULL)
+  , hnl_(glob ? glob->getDefaultHeap() : NULL)
   , hbaseFilterColumns_(glob ? glob->getDefaultHeap() : NULL)
   , hbaseFilterOps_(glob ? glob->getDefaultHeap() : NULL)
   , hbaseFilterValues_(glob ? glob->getDefaultHeap() : NULL)

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/executor/ExHbaseDDL.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExHbaseDDL.cpp b/core/sql/executor/ExHbaseDDL.cpp
index 713c3e6..4f927eb 100644
--- a/core/sql/executor/ExHbaseDDL.cpp
+++ b/core/sql/executor/ExHbaseDDL.cpp
@@ -86,7 +86,7 @@ ExWorkProcRetcode ExHbaseAccessDDLTcb::work()
 
 	    Queue * cfnl = hbaseAccessTdb().getColFamNameList();
 	    cfnl->position();
-	    HBASE_NAMELIST colFamList;
+	    HBASE_NAMELIST colFamList(getHeap());
 	    HbaseStr colFam;
 	    while(NOT cfnl->atEnd())
 	      {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/exp/ExpLOB.h
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpLOB.h b/core/sql/exp/ExpLOB.h
index 53a176b..822a694 100644
--- a/core/sql/exp/ExpLOB.h
+++ b/core/sql/exp/ExpLOB.h
@@ -74,6 +74,7 @@ class LobLoadInfo
  public:
   LobLoadInfo(CollHeap * heap)
     : heap_(heap)
+    , lobEntryList_(heap)
   {};
   ~LobLoadInfo(){}
   void setLobLoadEntries(Lng32 num)
@@ -123,7 +124,8 @@ class LOBglobals : public NABasicObject {
  public:
  LOBglobals(CollHeap * heap) : heap_(heap),
     lobAccessGlobals_(NULL),
-    xnId_(-1)
+    xnId_(-1),
+    lobOperInProgressList_(heap)
       {
 	lobLoadInfo_ = new(heap) LobLoadInfo(heap);
       };

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/exp/ExpPCodeOptimizations.cpp
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpPCodeOptimizations.cpp b/core/sql/exp/ExpPCodeOptimizations.cpp
index cc58feb..26be30c 100644
--- a/core/sql/exp/ExpPCodeOptimizations.cpp
+++ b/core/sql/exp/ExpPCodeOptimizations.cpp
@@ -4414,7 +4414,7 @@ void PCodeCfg::setupForCSE(INSTLIST** cseList)
 
   // Set up cseList to keep track of like PCODE instructions
   for (i=0; i < MAX_NUM_PCODE_INSTS; i++)
-    cseList[i] = new(heap_) INSTLIST;
+    cseList[i] = new(heap_) INSTLIST(heap_);
 
   FOREACH_BLOCK_REV_DFO(block, firstInst, lastInst, index) {
     FOREACH_INST_IN_BLOCK(block, inst) {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/exp/ExpPCodeOptsBulk.cpp
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpPCodeOptsBulk.cpp b/core/sql/exp/ExpPCodeOptsBulk.cpp
index 61f9954..853a2d5 100644
--- a/core/sql/exp/ExpPCodeOptsBulk.cpp
+++ b/core/sql/exp/ExpPCodeOptsBulk.cpp
@@ -129,7 +129,7 @@ void PCodeCfg::bulkHashComb()
         newInst->code[3] = inst->code[2];
 
         // Create one list with all the source operands
-        OPLIST list;
+        OPLIST list(heap_);
 
         // If the source inst found is not null (i.e. HASH or HASHCOMB_BULK)
         // then include its operands.  Otherwise, we can't hash the source, but
@@ -177,7 +177,7 @@ void PCodeCfg::bulkHashComb()
       if (inst->getOpcode() == PCIT::HASHCOMB_BULK_MBIN32U) {
 
         // Create one list with all the source operands
-        OPLIST list;
+        OPLIST list(heap_);
 
         list.insert(inst->getROps());
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/exp/ExpPCodeOptsNativeExpr.cpp
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpPCodeOptsNativeExpr.cpp b/core/sql/exp/ExpPCodeOptsNativeExpr.cpp
index 515c831..4cf07af 100755
--- a/core/sql/exp/ExpPCodeOptsNativeExpr.cpp
+++ b/core/sql/exp/ExpPCodeOptsNativeExpr.cpp
@@ -5768,7 +5768,7 @@ void PCodeCfg::layoutNativeCode()
 
   PCodeBinary* pCode = expr_->getPCodeBinary();
 
-  NExTempsList_ = new(heap_) NExTEMPSLIST();
+  NExTempsList_ = new(heap_) NExTEMPSLIST(heap_);
 
 
   // First see if this graph can be compiled natively

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/exp/exp_tuple_desc.cpp
----------------------------------------------------------------------
diff --git a/core/sql/exp/exp_tuple_desc.cpp b/core/sql/exp/exp_tuple_desc.cpp
index 89d4cf1..c1399b0 100644
--- a/core/sql/exp/exp_tuple_desc.cpp
+++ b/core/sql/exp/exp_tuple_desc.cpp
@@ -154,11 +154,12 @@ static Int16 orderFixedFieldsByAlignment( Attributes    ** attrs,
   Int16  rc = 0;
 
   Attributes *attr;
-  NAList<UInt32> align8(4);
-  NAList<UInt32> align4(10);
-  NAList<UInt32> align2(10);
-  NAList<UInt32> align1(4);
-  NAList<UInt32> addedCols(4);
+  NAList<UInt32> align8(NULL,4);
+  NAList<UInt32> align4(NULL,10);
+  NAList<UInt32> align2(NULL,10);
+  NAList<UInt32> align1(NULL,4);
+  NAList<UInt32> addedCols(NULL,4); // on C++ heap, wil get dellocated when
+                                    // we return
 
   UInt32 fieldIdx = 0;
   UInt32 numFixed = fixedFields->entries();
@@ -619,9 +620,9 @@ Int16 ExpTupleDesc::computeOffsets(UInt32 num_attrs,        /* IN  */
         // GU attributes are materialized view columns that are projected out
         // during an update.
         // Variable length fields get their VOA offset set here too.
-	NAList<UInt32> fixedColumns(10);
-	NAList<UInt32> varFields(10);
-	NAList<UInt32> guFields(3);
+	NAList<UInt32> fixedColumns(NULL,10);
+	NAList<UInt32> varFields(NULL,10);
+	NAList<UInt32> guFields(NULL,3);
 
         NAList<UInt32> *fixedFields = &fixedColumns;
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/export/ComDiags.cpp
----------------------------------------------------------------------
diff --git a/core/sql/export/ComDiags.cpp b/core/sql/export/ComDiags.cpp
index fe604fa..77fd60a 100644
--- a/core/sql/export/ComDiags.cpp
+++ b/core/sql/export/ComDiags.cpp
@@ -1671,8 +1671,8 @@ ComDiagsArea::ComDiagsArea (CollHeap* ptr): IpcMessageObj(IPC_SQL_DIAG_AREA,0),
 
 ComDiagsArea::ComDiagsArea () :             IpcMessageObj(IPC_SQL_DIAG_AREA,0),
                                             collHeapPtr_(NULL),
-                                            errors_(),
-                                            warnings_(),
+                                            errors_(NULL),
+                                            warnings_(NULL),
                                             newCondition_(NULL),
 					    lengthLimit_(30),
                                             areMore_(ComCondition::NO_MORE),

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/langman/LmRoutineJava.cpp
----------------------------------------------------------------------
diff --git a/core/sql/langman/LmRoutineJava.cpp b/core/sql/langman/LmRoutineJava.cpp
index 232c4b8..eb91817 100644
--- a/core/sql/langman/LmRoutineJava.cpp
+++ b/core/sql/langman/LmRoutineJava.cpp
@@ -79,7 +79,8 @@ LmRoutineJava::LmRoutineJava(
 	      parameters, lm),
     javaParams_(NULL),
     retType_(LmJavaType::JT_NONE),
-    defaultCatSch_(FALSE)
+    defaultCatSch_(FALSE),
+    connectionList_(collHeap())
 {
   JNIEnv *jni = (JNIEnv*)getLM()->jniEnv_;
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/langman/LmUtility.cpp
----------------------------------------------------------------------
diff --git a/core/sql/langman/LmUtility.cpp b/core/sql/langman/LmUtility.cpp
index 987d199..e4db61c 100644
--- a/core/sql/langman/LmUtility.cpp
+++ b/core/sql/langman/LmUtility.cpp
@@ -108,7 +108,7 @@ void lmUtilitySetTransactionAttrs(Int32 transAttrs) { transactionAttrs = transAt
 // the retrieved connection references when they are no longer needed.
 // 
 
-NAList<jobject> lmUtilityConnList;
+NAList<jobject> lmUtilityConnList(NULL);
 
 
 // If there are any Java connection objects present in 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/BindItemExpr.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/BindItemExpr.cpp b/core/sql/optimizer/BindItemExpr.cpp
index 156e523..af6a46d 100644
--- a/core/sql/optimizer/BindItemExpr.cpp
+++ b/core/sql/optimizer/BindItemExpr.cpp
@@ -4663,8 +4663,8 @@ Int32 ItemExpr::convertToValueIdSet(ValueIdSet &vs,
   // * a "state" value that tells us where we are in the convertToValueIdSet()
   //   code for the ItemExpr node that we are currently working on
   //
-  ARRAY( ItemExpr * ) IEarray(10) ; //Initially 10 elements (no particular reason to choose 10)
-  ARRAY( Int16 )      state(10)   ; //These ARRAYs will grow automatically as needed.)
+  ARRAY( ItemExpr * ) IEarray(HEAP, 10) ; //Initially 10 elements (no particular reason to choose 10)
+  ARRAY( Int16 )      state(HEAP, 10)   ; //These ARRAYs will grow automatically as needed.)
 
   Int32  currIdx    = 0           ;
   IEarray.insertAt( currIdx, this       ) ; //Initialize first array element
@@ -9743,7 +9743,7 @@ ItemExpr *UDFunction::bindNode(BindWA *bindWA)
     }
 
   // Save off a copy of the chilren array 
-  ARRAY(ExprValueId) copyOfChildren;
+  ARRAY(ExprValueId) copyOfChildren(HEAP);
   for (Int32 i=0; i< getArity(); i++)
     copyOfChildren.insertAt(i, child(i));
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/BindRI.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/BindRI.cpp b/core/sql/optimizer/BindRI.cpp
index 7d9354c..9ff85b9 100644
--- a/core/sql/optimizer/BindRI.cpp
+++ b/core/sql/optimizer/BindRI.cpp
@@ -363,7 +363,7 @@ Int32 AbstractRIConstraintList::getRefConstraints(
 					const ValueIdSet &assigns,
 					RefConstraintList &resultList) const
 {
-  Constraint::ColSignature updateCols;
+  Constraint::ColSignature updateCols(HEAP);
   if (entries() && bindWA->getCurrentScope()->context()->inUpdate())
     Constraint::makeColSignature(assigns, updateCols);
   

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/BindRelExpr.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/BindRelExpr.cpp b/core/sql/optimizer/BindRelExpr.cpp
index 8e1d4d8..8c51eeb 100644
--- a/core/sql/optimizer/BindRelExpr.cpp
+++ b/core/sql/optimizer/BindRelExpr.cpp
@@ -15730,7 +15730,7 @@ RelExpr *CallSP::bindNode(BindWA *bindWA)
   LIST (ItemExpr *) &bWA_HVorDPs = bindWA->getSpHVDPs();
   CollIndex numHVorDPs = bWA_HVorDPs.entries();
 
-  ARRAY(ItemExpr *) local_HVorDPs(numHVorDPs);
+  ARRAY(ItemExpr *) local_HVorDPs(HEAP, numHVorDPs);
   CollIndex idx, idx1, idx2;
 
   // Sort the ItemExpr in the order they appeared in the stmt

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/BindWA.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/BindWA.h b/core/sql/optimizer/BindWA.h
index 232c04b..6faf167 100644
--- a/core/sql/optimizer/BindWA.h
+++ b/core/sql/optimizer/BindWA.h
@@ -1998,7 +1998,7 @@ class HbaseColUsageInfo : public NABasicObject
   
   void insert(QualifiedName *tableName)
   {
-    NASet<NAString> * v = new(heap_) NASet<NAString>;
+    NASet<NAString> * v = new(heap_) NASet<NAString>(heap_);
     usageInfo_->insert(tableName, v);
   }
  

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/ColStatDesc.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/ColStatDesc.cpp b/core/sql/optimizer/ColStatDesc.cpp
index 7b7ca2e..34e6ee2 100644
--- a/core/sql/optimizer/ColStatDesc.cpp
+++ b/core/sql/optimizer/ColStatDesc.cpp
@@ -10708,8 +10708,8 @@ MultiColumnUecList::getUecForMCJoin (
   CostScalar * uecEntry = NULL;
   MultiColumnUecListIterator iter( *this );
 
-  LIST(ValueIdSet) tableOnePossibles; // we'll iter over these
-  SET(ValueIdSet)  tableTwoPossibles; // we'll do lookups over these
+  LIST(ValueIdSet) tableOnePossibles(STMTHEAP); // we'll iter over these
+  SET(ValueIdSet)  tableTwoPossibles(STMTHEAP); // we'll do lookups over these
 
   for ( iter.getNext( keyEntry, uecEntry );
         keyEntry != NULL && uecEntry != NULL;
@@ -11418,7 +11418,7 @@ MultiColumnUecList::displayMissingStatsWarning(TableDesc * mostRefdTable,
   // This should not be very expensive, since column numbers are cached with the
   // column expression
 
-  CollIndexSet setOfColsWithMissingStats;
+  CollIndexSet setOfColsWithMissingStats(NULL,STMTHEAP);
 
   // define ValueId outside of for loop, to avoid c++ compiler error.
   ValueId col;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/EncodedValue.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/EncodedValue.cpp b/core/sql/optimizer/EncodedValue.cpp
index ffcab14..98ca526 100644
--- a/core/sql/optimizer/EncodedValue.cpp
+++ b/core/sql/optimizer/EncodedValue.cpp
@@ -276,7 +276,8 @@ void NormValue::display (FILE *f, const char * prefix, const char * suffix,
 // LCOV_EXCL_STOP
 
 NormValueList::NormValueList(const NormValueList & nvl, NAMemory *h)
-:heap_(h ? h : CmpCommon::statementHeap())
+  :NAArray<NormValue>(h ? h : CmpCommon::statementHeap(),nvl.entries()),
+  heap_(h ? h : CmpCommon::statementHeap())
 {
   for(CollIndex i=0; i<nvl.entries(); i++)
   {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/HDFSHook.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/HDFSHook.cpp b/core/sql/optimizer/HDFSHook.cpp
index fe183fb..701ea92 100644
--- a/core/sql/optimizer/HDFSHook.cpp
+++ b/core/sql/optimizer/HDFSHook.cpp
@@ -606,7 +606,7 @@ NABoolean HHDFSListPartitionStats::validateAndRefresh(hdfsFS fs, HHDFSDiags &dia
   // assume we get the files sorted by file name
   int numFiles = 0;
   Int32 lastBucketNum = -1;
-  ARRAY(Int32) fileNumInBucket(getLastValidBucketIndx()+1);
+  ARRAY(Int32) fileNumInBucket(HEAP, getLastValidBucketIndx()+1);
   HHDFSBucketStats *bucketStats = NULL;
 
   for (CollIndex i=0; i<=getLastValidBucketIndx(); i++)

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/MJVIndexBuilder.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/MJVIndexBuilder.cpp b/core/sql/optimizer/MJVIndexBuilder.cpp
index 9b913e5..8679b38 100644
--- a/core/sql/optimizer/MJVIndexBuilder.cpp
+++ b/core/sql/optimizer/MJVIndexBuilder.cpp
@@ -260,7 +260,7 @@ ColIndSetBucketVector::insert (ColIndSet& newSet)
       
       for (size_t j = oldArrSize; j < newArrSize; j++) 
       {
-	empty = new (getHeapPtr()) ColIndSetBucket(j, getHeapPtr());
+	empty = new (getHeapPtr()) ColIndSetBucket(getHeapPtr(),j);
 	insertAt(j, empty);
       }
     }
@@ -329,9 +329,11 @@ ColIndSetMatrix::out()		const
 ColIndSetMatrix::ColIndSetMatrix( const ColIndSetBucketVector& src, 
 				  size_t size, 
 				  CollHeap *heap) :
-    ARRAY(EnumArray*)(size + 1, heap),
-    currIndex_(0) 	, 
-    lastIndex_(size+1) 
+  ARRAY(EnumArray*)(heap, size + 1),
+  currIndex_(0), 
+  lastIndex_(size+1),
+  setsList_(heap),
+  settledList_(heap)
 {
   size += 1;
   size_t i;
@@ -339,7 +341,7 @@ ColIndSetMatrix::ColIndSetMatrix( const ColIndSetBucketVector& src,
 
   for (i = 0; i < size; i++) 
   {
-    currEnumArray = new (heap) EnumArray(size, heap);
+    currEnumArray = new (heap) EnumArray(heap, size);
     CMPASSERT(NULL != currEnumArray);
     for (size_t j = 0; j < size; j++) {
       currEnumArray->insertAt(j, 0);

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/MjvBuilder.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/MjvBuilder.cpp b/core/sql/optimizer/MjvBuilder.cpp
index f0d8159..96c394c 100644
--- a/core/sql/optimizer/MjvBuilder.cpp
+++ b/core/sql/optimizer/MjvBuilder.cpp
@@ -291,7 +291,7 @@ void MjvBuilder::setupBindContext(RelRoot *topNode,
 SET(MVColumnInfo*) MjvBuilder::collectAllAffectedColumns(const IntegerList *updatedCols,
 							 const QualifiedName &qualTableName ) const
 {
-  SET(MVColumnInfo*) affectedCols;
+  SET(MVColumnInfo*) affectedCols(STMTHEAP);
 
   // Finding out the list of columns in the MJV
   const MVColumns &mvCols = getMvInfo()->getMVColumns();

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/MvRefreshBuilder.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/MvRefreshBuilder.cpp b/core/sql/optimizer/MvRefreshBuilder.cpp
index 1264488..d70d9eb 100644
--- a/core/sql/optimizer/MvRefreshBuilder.cpp
+++ b/core/sql/optimizer/MvRefreshBuilder.cpp
@@ -2709,7 +2709,7 @@ MultiDeltaRefreshMatrixRow::MultiDeltaRefreshMatrixRow(Int32 length,
   : sign_(SIGN_PLUS),
     currentLength_(length),
     maxLength_(maxLength),
-    tableScanTypes_(maxLength, heap),
+    tableScanTypes_(heap, maxLength),
     heap_(heap)
 {
   CMPASSERT(length <= maxLength);
@@ -2811,7 +2811,7 @@ MultiDeltaRefreshMatrix::MultiDeltaRefreshMatrix(Int32	        maxNumOfRows,
     numOfRowsForThisPhase_(0),
     tableIndexMapping_(heap),
     heap_(heap),
-    theMatrix_(maxNumOfRows, heap),
+    theMatrix_(heap, maxNumOfRows),
     TooManyDeltasError_(FALSE),
     isDuplicatesOptimized_(joinGraph->isInsertOnlyRefresh())
 {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/NATable.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/NATable.h b/core/sql/optimizer/NATable.h
index 56556eb..afe3f6d 100644
--- a/core/sql/optimizer/NATable.h
+++ b/core/sql/optimizer/NATable.h
@@ -1245,7 +1245,14 @@ public:
   {}
 
   NATableDB (const NATableDB & orig, NAMemory * h) :
-       NAKeyLookup<ExtendedQualName,NATable> (orig, h)
+    NAKeyLookup<ExtendedQualName,NATable> (orig, h),
+    heap_(h),
+    statementTableList_(h),
+    statementCachedTableList_(h),
+    cachedTableList_(h),
+    tablesToDeleteAfterStatement_(h),
+    nonCacheableTableIdents_(h),
+    nonCacheableTableList_(h)
   {}
 
   NAHeap *getHeap() { return (NAHeap *)heap_; }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/NodeMap.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/NodeMap.cpp b/core/sql/optimizer/NodeMap.cpp
index d609fb6..1c4d5ee 100644
--- a/core/sql/optimizer/NodeMap.cpp
+++ b/core/sql/optimizer/NodeMap.cpp
@@ -2743,7 +2743,7 @@ Int32 NodeMap::getNumberOfUniqueNodes() const
      }
   }
         
-  NAArray<Int32> na(maxNodeNum+1); // 0-based
+  NAArray<Int32> na(HEAP, maxNodeNum+1); // 0-based
 
   for (Int32 i=0; i<maxNodeNum+1; i++ ) 
      na.insertAt(i, 0);

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/NormRelExpr.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/NormRelExpr.cpp b/core/sql/optimizer/NormRelExpr.cpp
index 4cdf154..ad90c09 100644
--- a/core/sql/optimizer/NormRelExpr.cpp
+++ b/core/sql/optimizer/NormRelExpr.cpp
@@ -582,9 +582,9 @@ ItemExpr * Scan::applyAssociativityAndCommutativity(
   //   fashion because the code does not assign to 'newRightNode' until *after*
   //   all recursion is finished.
   //
-  ARRAY( ItemExpr * ) IEarray(10) ; //Initially 10 elements (no particular reason to choose 10)
-  ARRAY( Int16 )      state(10)   ; //These ARRAYs will grow automatically as needed.)
-  ARRAY( ItemExpr *) leftNodeArray(10, heap);
+  ARRAY( ItemExpr * ) IEarray(heap, 10) ; //Initially 10 elements (no particular reason to choose 10)
+  ARRAY( Int16 )      state(heap, 10)   ; //These ARRAYs will grow automatically as needed.)
+  ARRAY( ItemExpr *) leftNodeArray(heap, 10);
 
   Int32   currIdx = 0;
   IEarray.insertAt( currIdx, origPtrToOldTree );
@@ -1142,7 +1142,6 @@ NABoolean RelExpr::getMoreOutputsIfPossible(ValueIdSet& outputsNeeded)
       maxOutputs,
       outputsNeeded);
       child(i)->getGroupAttr()->addCharacteristicOutputs(outputsToAdd);
-
      // child(i).getGroupAttr()->computeCharacteristicIO
 //	                                            (emptySet,  // no additional inputs
   //                                                   outputsNeeded);

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/OptRange.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/OptRange.cpp b/core/sql/optimizer/OptRange.cpp
index c5f1610..179acf4 100644
--- a/core/sql/optimizer/OptRange.cpp
+++ b/core/sql/optimizer/OptRange.cpp
@@ -950,8 +950,8 @@ NABoolean OptRangeSpec::buildRange(ItemExpr* origPredExpr)
   // that tells us where we are in the buildRange() code for the ItemExpr
   // node that we are currently working on.
   //
-  ARRAY( ItemExpr * ) IEarray(10) ; //Initially 10 elements (no particular reason to choose 10)
-  ARRAY( Int16 )      state(10)   ; //These ARRAYs will grow automatically as needed.)
+  ARRAY( ItemExpr * ) IEarray(mvqrHeap_, 10) ; //Initially 10 elements (no particular reason to choose 10)
+  ARRAY( Int16 )      state(mvqrHeap_, 10)   ; //These ARRAYs will grow automatically as needed.)
 
   Int32 currIdx     = 0 ;
   IEarray.insertAt( currIdx, origPredExpr ) ; //Initialize 1st element in the ARRAYs

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/RelExpr.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/RelExpr.cpp b/core/sql/optimizer/RelExpr.cpp
index a6d00fe..8349ced 100644
--- a/core/sql/optimizer/RelExpr.cpp
+++ b/core/sql/optimizer/RelExpr.cpp
@@ -10060,10 +10060,12 @@ HbaseAccess::HbaseAccess(CorrName &corrName,
 			 OperatorTypeEnum otype,
 			 CollHeap *oHeap)
   : FileScan(corrName, NULL, NULL, otype, oHeap),
-    listOfSearchKeys_(oHeap)
+    listOfSearchKeys_(oHeap),
+    snpType_(SNP_NONE),
+    retHbaseColRefSet_(oHeap),
+    opList_(oHeap)
 {
   accessType_ = SELECT_;
-  
   uniqueHbaseOper_ = FALSE;
   uniqueRowsetHbaseOper_ = FALSE;
 }
@@ -10087,11 +10089,12 @@ HbaseAccess::HbaseAccess(CorrName &corrName,
              generatedCCPreds,
              otype),
     listOfSearchKeys_(oHeap),
-    snpType_(SNP_NONE)
+    snpType_(SNP_NONE),
+    retHbaseColRefSet_(oHeap),
+    opList_(oHeap)
 {
   accessType_ = SELECT_;
   //setTableDesc(tableDesc);
-
   uniqueHbaseOper_ = FALSE;
   uniqueRowsetHbaseOper_ = FALSE;
 }
@@ -10103,10 +10106,11 @@ HbaseAccess::HbaseAccess(CorrName &corrName,
     isRW_(isRW),
     isCW_(isCW),
     listOfSearchKeys_(oHeap),
-    snpType_(SNP_NONE)
+    snpType_(SNP_NONE),
+    retHbaseColRefSet_(oHeap),
+    opList_(oHeap)
 {
   accessType_ = SELECT_;
-
   uniqueHbaseOper_ = FALSE;
   uniqueRowsetHbaseOper_ = FALSE;
 }
@@ -10115,10 +10119,11 @@ HbaseAccess::HbaseAccess( OperatorTypeEnum otype,
 			  CollHeap *oHeap)
   : FileScan(CorrName(), NULL, NULL, otype, oHeap),
     listOfSearchKeys_(oHeap),
-    snpType_(SNP_NONE)
+    snpType_(SNP_NONE),
+    retHbaseColRefSet_(oHeap),
+    opList_(oHeap)
 {
   accessType_ = SELECT_;
-
   uniqueHbaseOper_ = FALSE;
   uniqueRowsetHbaseOper_ = FALSE;
 }
@@ -15342,7 +15347,7 @@ NABoolean Join::childNodeContainMultiColumnSkew(
    // A list of valueIdSets, each valueIdSet element contains a set of 
    // columns from the join predicates. Each set has all columns from the
    // same table participating in the join predicates.
-   ARRAY(ValueIdSet) mcArray(joinPreds.entries());
+   ARRAY(ValueIdSet) mcArray(CmpCommon::statementHeap(), joinPreds.entries());
 
    Int32 skews = 0, leastSkewList = 0;
    EncodedValue mostFreqVal;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/Rule.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/Rule.cpp b/core/sql/optimizer/Rule.cpp
index c9b5723..212a484 100644
--- a/core/sql/optimizer/Rule.cpp
+++ b/core/sql/optimizer/Rule.cpp
@@ -259,8 +259,8 @@ void Rule::prepare()
 {
   // an array to hold pointers for cuts of the pattern, ordered by index
   // (most rules should get by with 4 cuts and 4 wildcards)
-  ARRAY(CutOp *) cuts(4);
-  ARRAY(WildCardOp *) wildcards(4);
+  ARRAY(CutOp *) cuts(HEAP, 4);
+  ARRAY(WildCardOp *) wildcards(HEAP, 4);
 
   // fill the "cuts" array
   if (pattern_)

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/ScanOptimizer.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/ScanOptimizer.cpp b/core/sql/optimizer/ScanOptimizer.cpp
index d5dfdbc..c7b024b 100644
--- a/core/sql/optimizer/ScanOptimizer.cpp
+++ b/core/sql/optimizer/ScanOptimizer.cpp
@@ -5500,8 +5500,8 @@ NABoolean FileScanOptimizer::isMDAMFeasibleForHBase(const IndexDesc* idesc, Valu
    }
 
 
-   ARRAY(Int32) uecsByKeyColumns;
-   ARRAY(Int32) rangesByKeyColumns;
+   ARRAY(Int32) uecsByKeyColumns(HEAP);
+   ARRAY(Int32) rangesByKeyColumns(HEAP);
  
    NABoolean possiblyUseMdam = FALSE;
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/SearchKey.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/SearchKey.cpp b/core/sql/optimizer/SearchKey.cpp
index 3902394..3c98146 100644
--- a/core/sql/optimizer/SearchKey.cpp
+++ b/core/sql/optimizer/SearchKey.cpp
@@ -2807,8 +2807,8 @@ void HbaseSearchKey::makeHBaseSearchKeys(
 {
   // Range Specs for key columns, ordered by key position, plus the
   // normalized item expressions generated from the RangeSpecs
-  ARRAY(ItemExpr *) rangeSpecsForKeyCols;
-  ARRAY(ItemExprList *) rangeBackbonesForKeyCols;
+  ARRAY(ItemExpr *) rangeSpecsForKeyCols(HEAP);
+  ARRAY(ItemExprList *) rangeBackbonesForKeyCols(HEAP);
   ValueIdSet tempExternalInputs; // don't use non-consts as inputs
 
   producedKeys.clear();

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/Stats.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/Stats.h b/core/sql/optimizer/Stats.h
index faa8bc7..4d3d5bd 100644
--- a/core/sql/optimizer/Stats.h
+++ b/core/sql/optimizer/Stats.h
@@ -233,9 +233,7 @@ class MCSkewedValueList : public NAList<MCSkewedValue *>
 {
 public:
   // constructor 
-  MCSkewedValueList() {};
-
-  MCSkewedValueList(NAMemory *h)
+  MCSkewedValueList(NAMemory *h=0)
     : NAList<MCSkewedValue *>(h),heap_(h) {};
 
   MCSkewedValueList(const MCSkewedValueList & mcsvl, NAMemory *h=0);
@@ -2218,10 +2216,10 @@ class StatsList : public SHPTR_LIST(ColStatsSharedPtr)
 public:
   StatsList(NAMemory* h,CollIndex initLen =0)
     : heap_(h),
-	  SHPTR_LIST(ColStatsSharedPtr) (h,initLen),
-      groupUecColumns_(h),
-	  groupUecValues_(h),
-	  groupMCSkewedValueLists_(h)
+    SHPTR_LIST(ColStatsSharedPtr) (h,initLen),
+    groupUecColumns_(h),
+    groupUecValues_(h),
+    groupMCSkewedValueLists_(h)
   {}
 
   // ---------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/TableNameMap.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/TableNameMap.h b/core/sql/optimizer/TableNameMap.h
index b27c46a..ea4e035 100644
--- a/core/sql/optimizer/TableNameMap.h
+++ b/core/sql/optimizer/TableNameMap.h
@@ -64,7 +64,8 @@ public:
   TableNameMap(const CorrName& tableName,
                ColumnDescList *columnList,
                CollHeap * h=0)
-  : tableName_(tableName,h), columnList_(columnList) {}
+    : tableName_(tableName,h), 
+    columnList_(columnList), hbaseColNameSet_(h){}
 
   // copy ctor
   TableNameMap (const TableNameMap &, CollHeap * h=0) ; // not written

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/optimizer/TransRule.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/TransRule.cpp b/core/sql/optimizer/TransRule.cpp
index 356e44a..b0acd75 100644
--- a/core/sql/optimizer/TransRule.cpp
+++ b/core/sql/optimizer/TransRule.cpp
@@ -1757,7 +1757,7 @@ RelExpr * OrOptimizationRule::nextSubstitute(
 
   // a sparse array that can be used to look up which index we have selected
   // for predicates on a particular column (identified by column number)
-  ARRAY(CollIndex)    indexInfoByColNum;
+  ARRAY(CollIndex)    indexInfoByColNum(CmpCommon::statementHeap());
 
   // a sparse array that stores the associated disjuncts for each index,
   // arranged by index number in the scan node

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/parser/ElemDDLHbaseOptions.h
----------------------------------------------------------------------
diff --git a/core/sql/parser/ElemDDLHbaseOptions.h b/core/sql/parser/ElemDDLHbaseOptions.h
index ffd465c..435c78e 100644
--- a/core/sql/parser/ElemDDLHbaseOptions.h
+++ b/core/sql/parser/ElemDDLHbaseOptions.h
@@ -49,7 +49,8 @@ class ElemDDLHbaseOptions : public ElemDDLNode
 
   ElemDDLHbaseOptions(NAList<HbaseCreateOption*> * hbaseOptions,
 		      CollHeap * heap)
-   : ElemDDLNode(ELM_HBASE_OPTIONS_ELEM)
+    : ElemDDLNode(ELM_HBASE_OPTIONS_ELEM),
+    hbaseOptions_(heap)
     {
       for (CollIndex i = 0; i < hbaseOptions->entries(); i++)
 	{

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/runtimestats/ssmpipc.cpp
----------------------------------------------------------------------
diff --git a/core/sql/runtimestats/ssmpipc.cpp b/core/sql/runtimestats/ssmpipc.cpp
index f05543f..7616076 100755
--- a/core/sql/runtimestats/ssmpipc.cpp
+++ b/core/sql/runtimestats/ssmpipc.cpp
@@ -448,7 +448,7 @@ ULng32 SsmpGlobals::deAllocateServer(char *nodeName, short nodeNameLen,  short c
 
 void SsmpGlobals::cleanupDeletedSscpServers()
 {
-  NAList<IpcServer *> notReadyToCleanup;
+  NAList<IpcServer *> notReadyToCleanup(heap_);
   IpcServer *sscp;
   while (deletedSscps_->getFirst(sscp))
     {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp b/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
index 0929f56..b5536f6 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
@@ -8153,7 +8153,7 @@ void CmpSeabaseDDL::alterSeabaseTableAddRIConstraint(
 
   NAString constrName;
   NABoolean isPkey = FALSE;
-  NAList<int> reorderList;
+  NAList<int> reorderList(HEAP);
   // Find a uniqueness constraint on the referenced table that matches
   // the referenced column list (not necessarily in the original order
   // of columns).  Also find out how to reorder the column lists to
@@ -8184,9 +8184,9 @@ void CmpSeabaseDDL::alterSeabaseTableAddRIConstraint(
 
       // re-order referencing and referenced key column lists to match
       // the order of the uniqueness constraint in the referenced table
-      NAArray<NAString> ringTempKeyColArray(numEntries);
-      NAArray<NAString> ringTempKeyColOrderArray(numEntries);
-      NAArray<NAString> refdTempKeyColArray(numEntries);
+      NAArray<NAString> ringTempKeyColArray(HEAP, numEntries);
+      NAArray<NAString> ringTempKeyColOrderArray(HEAP, numEntries);
+      NAArray<NAString> refdTempKeyColArray(HEAP, numEntries);
 
       // copy the lists into temp arrays in the correct order
       for (CollIndex i=0; i<numEntries; i++)

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/sqlcomp/PrivMgrDesc.h
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/PrivMgrDesc.h b/core/sql/sqlcomp/PrivMgrDesc.h
index e0e2e11..e7038d4 100644
--- a/core/sql/sqlcomp/PrivMgrDesc.h
+++ b/core/sql/sqlcomp/PrivMgrDesc.h
@@ -381,7 +381,7 @@ class PrivMgrDesc
 public:
    PrivMgrDesc(const PrivMgrDesc&other)           // copy constructor
    : tableLevel_(other.tableLevel_),
-     columnLevel_(other.columnLevel_),
+    columnLevel_(other.columnLevel_, NULL),
      grantee_(other.grantee_)
    {}
 
@@ -389,7 +389,7 @@ public:
                const int32_t nbrCols = 0    // preset constructor
               )
    : tableLevel_(),
-     columnLevel_(),
+     columnLevel_(NULL),
      grantee_(grantee)
   {}
 
@@ -397,13 +397,13 @@ public:
    PrivMgrDesc(const PrivMgrDesc &privs,            // preset constructor
                const int32_t grantee)
    : tableLevel_(privs.tableLevel_),
-     columnLevel_(privs.columnLevel_),
+    columnLevel_(privs.columnLevel_, NULL),
      grantee_(privs.grantee_)
    {}
 
    PrivMgrDesc(void)
    : tableLevel_(),
-     columnLevel_(),
+     columnLevel_(NULL),
      grantee_(0)
    {}
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/sqlmsg/GetErrorMessage.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlmsg/GetErrorMessage.cpp b/core/sql/sqlmsg/GetErrorMessage.cpp
index 4955b44..7d85c38 100644
--- a/core/sql/sqlmsg/GetErrorMessage.cpp
+++ b/core/sql/sqlmsg/GetErrorMessage.cpp
@@ -135,7 +135,7 @@ private:
   NABoolean fabricatedSqlstate_;
 };
 
-static NAList<SqlstateInfo*> listOfSqlstates_;
+static NAList<SqlstateInfo*> listOfSqlstates_(NULL);
 static pthread_mutex_t       listOfSqlstates_mutex = PTHREAD_MUTEX_INITIALIZER;
 
 SQLERRORS_LIB_FUNC 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/eb3986eb/core/sql/ustat/hs_parser.cpp
----------------------------------------------------------------------
diff --git a/core/sql/ustat/hs_parser.cpp b/core/sql/ustat/hs_parser.cpp
index d96acc7..22a2b16 100644
--- a/core/sql/ustat/hs_parser.cpp
+++ b/core/sql/ustat/hs_parser.cpp
@@ -934,7 +934,7 @@ Lng32 AddKeyGroups()
 
         while (numKeys >= minMCGroupSz)  // Create only MC groups not single cols
           {
-            HSColSet colSet;
+            HSColSet colSet(STMTHEAP);
 
             autoGroup = "(";
             for (j = 0; j < numKeys; j++)
@@ -1010,7 +1010,7 @@ Lng32 AddKeyGroups()
               minMCGroupSz = numKeys - maxMCGroups + 1;
             while (numKeys >= minMCGroupSz)  // MinMCGroupSz is greater than 1.
               {
-              HSColSet colSet;
+		HSColSet colSet(STMTHEAP);
 
               tempColList = "";
               autoGroup = "(";


[4/7] incubator-trafodion git commit: Merge remote branch 'origin/master' into memleak1

Posted by su...@apache.org.
Merge remote branch 'origin/master' into memleak1


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

Branch: refs/heads/master
Commit: 777178a4b9d2d1b9a59f2b7096b6ef217f0989a6
Parents: c164c5b be54167
Author: Suresh Subbiah <su...@apache.org>
Authored: Mon Oct 10 15:28:56 2016 +0000
Committer: Suresh Subbiah <su...@apache.org>
Committed: Mon Oct 10 15:28:56 2016 +0000

----------------------------------------------------------------------
 core/sql/arkcmp/CmpContext.cpp              |    1 -
 core/sql/arkcmp/CmpContext.h                |    8 -
 core/sql/arkcmp/CmpStatement.cpp            |    5 +-
 core/sql/cli/Cli.cpp                        |  110 +-
 core/sql/cli/Cli.h                          |   16 -
 core/sql/cli/CliExtern.cpp                  |   51 -
 core/sql/cli/ExSqlComp.cpp                  |    8 +-
 core/sql/cli/Statement.cpp                  | 1893 +++-------------------
 core/sql/cli/Statement.h                    |   50 +-
 core/sql/comexe/CmpMessage.cpp              |   28 +-
 core/sql/comexe/CmpMessage.h                |   30 +-
 core/sql/comexe/ComTdbRoot.cpp              |    9 +-
 core/sql/comexe/ComTdbRoot.h                |    9 +-
 core/sql/comexe/LateBindInfo.cpp            |  393 ++---
 core/sql/comexe/LateBindInfo.h              |  679 +-------
 core/sql/executor/ExExeUtilMisc.cpp         |    5 +-
 core/sql/executor/ExFastTransport.cpp       |   13 +-
 core/sql/executor/ExFastTransport.h         |    4 +-
 core/sql/executor/ExHdfsScan.cpp            |    5 +-
 core/sql/executor/Ex_esp_msg.h              |   40 -
 core/sql/executor/ex_control.cpp            |    2 +-
 core/sql/executor/ex_ddl.cpp                |    3 -
 core/sql/executor/ex_esp_frag_dir.cpp       |   11 -
 core/sql/executor/ex_esp_msg.cpp            |  243 ---
 core/sql/executor/ex_frag_rt.cpp            |   33 -
 core/sql/executor/ex_globals.cpp            |    2 +
 core/sql/exp/ExpLOBaccess.cpp               |  119 +-
 core/sql/exp/ExpLOBaccess.h                 |   14 +-
 core/sql/exp/ExpLOBinterface.cpp            |   31 +-
 core/sql/exp/ExpLOBinterface.h              |    9 +-
 core/sql/exp/exp_conv.cpp                   |    2 +-
 core/sql/generator/GenExplain.cpp           |    2 +-
 core/sql/generator/GenFastTransport.cpp     |   25 +-
 core/sql/generator/GenRelExeUtil.cpp        |    7 +-
 core/sql/generator/GenRelMisc.cpp           |  102 +-
 core/sql/generator/GenRelScan.cpp           |   45 +-
 core/sql/generator/Generator.cpp            |   16 +
 core/sql/generator/Generator.h              |   10 +
 core/sql/optimizer/RelExeUtil.h             |    2 +-
 core/sql/optimizer/RelMisc.h                |    3 +-
 core/sql/parser/SqlParserAux.cpp            |   21 -
 core/sql/parser/SqlParserAux.h              |    4 -
 core/sql/parser/sqlparser.y                 |   90 +-
 core/sql/regress/tools/regress-filter-linux |    2 +-
 core/sql/sqlcomp/DefaultConstants.h         |    6 +-
 core/sql/sqlcomp/nadefaults.cpp             |   16 +-
 46 files changed, 702 insertions(+), 3475 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/777178a4/core/sql/arkcmp/CmpContext.cpp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/777178a4/core/sql/arkcmp/CmpStatement.cpp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/777178a4/core/sql/generator/GenExplain.cpp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/777178a4/core/sql/generator/GenRelScan.cpp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/777178a4/core/sql/generator/Generator.cpp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/777178a4/core/sql/optimizer/RelExeUtil.h
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/777178a4/core/sql/parser/SqlParserAux.cpp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/777178a4/core/sql/parser/sqlparser.y
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/777178a4/core/sql/sqlcomp/nadefaults.cpp
----------------------------------------------------------------------


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

Posted by su...@apache.org.
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)


[6/7] incubator-trafodion git commit: Rework suggested by Selva

Posted by su...@apache.org.
Rework suggested by Selva


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

Branch: refs/heads/master
Commit: a2dcbba4b07fbff0c2d78a01114eb075bfca509d
Parents: 49bc9c5
Author: Suresh Subbiah <su...@apache.org>
Authored: Mon Oct 10 22:46:28 2016 +0000
Committer: Suresh Subbiah <su...@apache.org>
Committed: Mon Oct 10 22:46:28 2016 +0000

----------------------------------------------------------------------
 core/sql/common/Collections.h | 12 ------------
 1 file changed, 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/a2dcbba4/core/sql/common/Collections.h
----------------------------------------------------------------------
diff --git a/core/sql/common/Collections.h b/core/sql/common/Collections.h
index 6337ba7..915dbf1 100644
--- a/core/sql/common/Collections.h
+++ b/core/sql/common/Collections.h
@@ -1831,10 +1831,6 @@ template <class T> class NASet : public NACollection<T>
 
 public:
 
-  // default constructor
-  /* NASet(CollIndex initSize = 0) : NACollection<T>(initSize)
-     { invalidateCache(); } */
-
   // constructor with user-defined heap
   NASet(CollHeap  *heap,
         CollIndex initSize = 0) : NACollection<T>(heap,initSize)
@@ -1958,10 +1954,6 @@ template <class T> class NAList : public NACollection<T>
 
 public:
 
-  // default constructor
-  /*NAList(CollIndex initLen = 0) : NACollection<T>(initLen) 
-    { first_ = last_ = userIndexCache_ = arrayIndexCache_ = NULL_COLL_INDEX; }*/
-
   // constructor with user-defined heap
   NAList(CollHeap * heap,
          CollIndex initLen = 0) : NACollection<T>(heap,initLen) 
@@ -2216,10 +2208,6 @@ template <class T> class NAArray : public NACollection<T>
 
 public :
 
-  // default constructor
-  //NAArray(CollIndex initialElements = 0) : 
-  //NACollection<T>(initialElements) {}
-
   // constructor with user-defined heap
   NAArray(CollHeap *heap, CollIndex initialElements = 0) : 
        NACollection<T>(heap,initialElements) {}


[7/7] incubator-trafodion git commit: Merge [TRAFODION-2266] PR-748 Fix for a few memory leaks

Posted by su...@apache.org.
Merge [TRAFODION-2266] PR-748 Fix for a few memory leaks


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

Branch: refs/heads/master
Commit: e3c8d7e8045032b4451815fab36fd50dd88d77d8
Parents: 12f602c a2dcbba
Author: Suresh Subbiah <su...@apache.org>
Authored: Tue Oct 11 03:56:51 2016 +0000
Committer: Suresh Subbiah <su...@apache.org>
Committed: Tue Oct 11 03:56:51 2016 +0000

----------------------------------------------------------------------
 .../SqlCompilerDebugger/ItemExpressionView.cpp  |  4 +-
 core/sql/arkcmp/CmpContext.cpp                  |  7 ++-
 core/sql/arkcmp/CmpStatement.cpp                |  2 +
 core/sql/arkcmp/CmpStoredProc.cpp               |  2 +-
 core/sql/arkcmp/cmpargs.cpp                     |  2 +-
 core/sql/cli/Context.cpp                        | 21 ++++----
 core/sql/cli/Globals.cpp                        | 17 ++++---
 core/sql/common/BloomFilter.cpp                 |  2 +-
 core/sql/common/ColIndList.h                    |  4 +-
 core/sql/common/Collections.cpp                 |  1 -
 core/sql/common/Collections.h                   | 47 ++++++++----------
 core/sql/common/ComExeTrace.cpp                 |  1 +
 core/sql/common/Ipc.h                           |  4 +-
 core/sql/common/NAMemory.cpp                    |  2 +-
 core/sql/common/NATestpoint.cpp                 |  3 +-
 core/sql/common/NATraceList.h                   |  2 +-
 core/sql/executor/ExHbaseAccess.cpp             |  1 +
 core/sql/executor/ExHbaseDDL.cpp                |  2 +-
 core/sql/exp/ExpLOB.h                           |  4 +-
 core/sql/exp/ExpPCodeOptimizations.cpp          |  2 +-
 core/sql/exp/ExpPCodeOptsBulk.cpp               |  4 +-
 core/sql/exp/ExpPCodeOptsNativeExpr.cpp         |  2 +-
 core/sql/exp/exp_tuple_desc.cpp                 | 17 ++++---
 core/sql/export/ComDiags.cpp                    |  4 +-
 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                | 16 ++++--
 core/sql/langman/LmRoutineJava.cpp              |  3 +-
 core/sql/langman/LmUtility.cpp                  |  2 +-
 core/sql/optimizer/Analyzer.cpp                 | 15 +++---
 core/sql/optimizer/Analyzer.h                   |  5 ++
 core/sql/optimizer/BindItemExpr.cpp             |  6 +--
 core/sql/optimizer/BindRI.cpp                   |  2 +-
 core/sql/optimizer/BindRelExpr.cpp              |  8 +--
 core/sql/optimizer/BindWA.cpp                   |  1 +
 core/sql/optimizer/BindWA.h                     |  2 +-
 core/sql/optimizer/CacheWA.cpp                  |  3 ++
 core/sql/optimizer/ColStatDesc.cpp              | 20 ++++----
 core/sql/optimizer/ControlDB.cpp                |  8 +--
 core/sql/optimizer/EncodedValue.cpp             |  3 +-
 core/sql/optimizer/HDFSHook.cpp                 |  2 +-
 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/MJVIndexBuilder.cpp          | 12 +++--
 core/sql/optimizer/MVCandidates.cpp             | 10 ++--
 core/sql/optimizer/MVInfo.cpp                   | 13 ++---
 core/sql/optimizer/MVJoinGraph.cpp              |  5 +-
 core/sql/optimizer/MjvBuilder.cpp               |  2 +-
 core/sql/optimizer/MultiJoin.cpp                |  2 +-
 core/sql/optimizer/MvRefreshBuilder.cpp         |  4 +-
 core/sql/optimizer/NAClusterInfo.cpp            |  2 +-
 core/sql/optimizer/NATable.cpp                  |  8 +--
 core/sql/optimizer/NATable.h                    |  9 +++-
 core/sql/optimizer/NodeMap.cpp                  |  2 +-
 core/sql/optimizer/NormRelExpr.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/OptRange.cpp                 |  4 +-
 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                  | 29 ++++++-----
 core/sql/optimizer/RelPackedRows.cpp            |  2 +-
 core/sql/optimizer/RelRoutine.cpp               |  2 +-
 core/sql/optimizer/RelScan.h                    |  7 +--
 core/sql/optimizer/Rule.cpp                     |  4 +-
 core/sql/optimizer/ScanOptimizer.cpp            |  4 +-
 core/sql/optimizer/SchemaDB.cpp                 |  2 +-
 core/sql/optimizer/SearchKey.cpp                |  6 +--
 core/sql/optimizer/Stats.cpp                    |  3 +-
 core/sql/optimizer/Stats.h                      | 12 ++---
 core/sql/optimizer/TableNameMap.h               |  3 +-
 core/sql/optimizer/TransRule.cpp                |  2 +-
 core/sql/optimizer/VEGTable.cpp                 |  6 +--
 core/sql/optimizer/ValueDesc.cpp                |  2 +-
 core/sql/optimizer/memo.cpp                     |  2 +-
 core/sql/parser/ElemDDLHbaseOptions.h           |  3 +-
 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/runtimestats/ssmpipc.cpp               |  2 +-
 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         | 36 +++++++-------
 core/sql/sqlcomp/CmpSeabaseDDLview.cpp          |  4 +-
 core/sql/sqlcomp/PrivMgrDesc.h                  |  8 +--
 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/sqlmsg/GetErrorMessage.cpp             |  2 +-
 core/sql/udrserv/spinfo.cpp                     |  3 +-
 core/sql/ustat/hs_cli.cpp                       |  2 +-
 core/sql/ustat/hs_parser.cpp                    |  4 +-
 110 files changed, 405 insertions(+), 307 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/e3c8d7e8/core/sql/ustat/hs_cli.cpp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/e3c8d7e8/core/sql/ustat/hs_parser.cpp
----------------------------------------------------------------------


[5/7] incubator-trafodion git commit: Fix build failure due to recent change, plus one that slipped through

Posted by su...@apache.org.
Fix build failure due to recent change, plus one that slipped through


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

Branch: refs/heads/master
Commit: 49bc9c5edf65cc290f55a5ac96018615ec1304ab
Parents: 777178a
Author: Suresh Subbiah <su...@apache.org>
Authored: Mon Oct 10 15:51:24 2016 +0000
Committer: Suresh Subbiah <su...@apache.org>
Committed: Mon Oct 10 15:51:24 2016 +0000

----------------------------------------------------------------------
 core/sql/SqlCompilerDebugger/ItemExpressionView.cpp | 4 ++--
 core/sql/generator/Generator.cpp                    | 1 +
 2 files changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/49bc9c5e/core/sql/SqlCompilerDebugger/ItemExpressionView.cpp
----------------------------------------------------------------------
diff --git a/core/sql/SqlCompilerDebugger/ItemExpressionView.cpp b/core/sql/SqlCompilerDebugger/ItemExpressionView.cpp
index 2422886..0619f6b 100644
--- a/core/sql/SqlCompilerDebugger/ItemExpressionView.cpp
+++ b/core/sql/SqlCompilerDebugger/ItemExpressionView.cpp
@@ -78,8 +78,8 @@ void ItemExpressionView::DisplayItemExprRoot(void *tree)
   ExprNode *qTree = (ExprNode *) tree;
   if (qTree != NULL)
   {
-      LIST(ExprNode *) localExpList;
-      LIST(NAString) localLabelList;
+    LIST(ExprNode *) localExpList(NULL);
+    LIST(NAString) localLabelList(NULL);
       ExprNode *currExpr;
       NAString currLabel;
       CollIndex numEntries;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/49bc9c5e/core/sql/generator/Generator.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/Generator.cpp b/core/sql/generator/Generator.cpp
index b9e534f..1417a55 100644
--- a/core/sql/generator/Generator.cpp
+++ b/core/sql/generator/Generator.cpp
@@ -103,6 +103,7 @@ Generator::Generator(CmpContext* currentCmpContext) :
     ,stoiList_(wHeap())  
     ,insertNodesList_(wHeap())  
     ,avgVarCharSizeList_(wHeap())  
+    ,trafSimTableInfoList_(wHeap())
 {
   // nothing generated yet.
   genObj = 0;


[2/7] incubator-trafodion git commit: Merge remote branch 'origin/master' into memleak1

Posted by su...@apache.org.
Merge remote branch 'origin/master' into memleak1

Conflicts:
	core/sql/optimizer/NormRelExpr.cpp


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

Branch: refs/heads/master
Commit: a143ba9b99588e0aa328959abb02512b6adf37a2
Parents: eb3986e 8039cf1
Author: Suresh Subbiah <su...@apache.org>
Authored: Wed Oct 5 04:17:39 2016 +0000
Committer: Suresh Subbiah <su...@apache.org>
Committed: Wed Oct 5 04:17:39 2016 +0000

----------------------------------------------------------------------
 core/conn/jdbc_type2/native/SQLMXDriver.cpp     |   13 -
 core/sqf/commonLogger/CommonLogger.cpp          |    5 +-
 core/sqf/commonLogger/CommonLogger.h            |    2 +
 .../export/include/common/evl_sqlog_eventnum.h  |   41 +
 core/sqf/monitor/linux/cluster.cxx              |  249 ++-
 core/sqf/monitor/linux/cluster.h                |    1 +
 core/sqf/monitor/linux/makefile                 |   25 +-
 core/sqf/monitor/linux/monitor.cxx              |  187 +++
 core/sqf/monitor/linux/monitor.h                |    2 +
 core/sqf/monitor/linux/zclient.cxx              | 1432 ++++++++++++++++++
 core/sqf/monitor/linux/zclient.h                |  116 ++
 core/sqf/monitor/linux/zootest.cxx              |  283 ++++
 core/sqf/monitor/linux/zootest.h                |   34 +
 core/sqf/sqenvcom.sh                            |   19 +-
 .../transactional/TransactionManager.java       |   11 +-
 .../client/transactional/TransactionState.java  |   41 +-
 .../transactional/SsccRegionEndpoint.java.tmpl  |    9 +-
 .../transactional/TrxRegionEndpoint.java.tmpl   |   14 +-
 .../transactional/TrxRegionObserver.java.tmpl   |    2 +-
 .../java/org/trafodion/dtm/HBaseTxClient.java   |   49 +-
 .../java/org/trafodion/dtm/TmAuditTlog.java     |   11 +-
 core/sql/bin/SqlciErrors.txt                    |    5 +-
 core/sql/cli/CliExtern.cpp                      |   15 +-
 core/sql/cli/ExSqlComp.cpp                      |    2 +-
 core/sql/comexe/ComTdbSortGrby.cpp              |    3 +-
 core/sql/comexe/ComTdbSortGrby.h                |   23 +-
 core/sql/common/Ipc.cpp                         |   22 +-
 core/sql/common/Ipc.h                           |    2 +-
 core/sql/executor/ex_frag_rt.cpp                |   30 +-
 core/sql/executor/ex_globals.h                  |   14 +
 core/sql/executor/ex_sort_grby.cpp              | 1041 +++++++++++--
 core/sql/executor/ex_sort_grby.h                |  120 +-
 core/sql/exp/ExpPCodeClauseGen.cpp              |    8 +
 core/sql/exp/exp_clause.cpp                     |   21 +-
 core/sql/exp/exp_clause_derived.h               |    8 +-
 core/sql/exp/exp_comp.cpp                       |  108 +-
 core/sql/generator/GenExpGenerator.cpp          |    1 -
 core/sql/generator/GenExplain.cpp               |   14 +-
 core/sql/generator/GenItemExpr.cpp              |    4 +
 core/sql/generator/GenItemFunc.cpp              |    2 +
 core/sql/generator/GenPreCode.cpp               |   10 +-
 core/sql/generator/GenRelGrby.cpp               |   85 +-
 core/sql/generator/GenRelUpdate.cpp             |  150 +-
 core/sql/optimizer/BindRelExpr.cpp              |   94 +-
 core/sql/optimizer/ImplRule.cpp                 |    8 +
 core/sql/optimizer/ItemExpr.cpp                 |   17 +-
 core/sql/optimizer/ItemExpr.h                   |   10 +-
 core/sql/optimizer/ItemFunc.h                   |   11 +-
 core/sql/optimizer/ItemLog.h                    |   22 +-
 core/sql/optimizer/NormItemExpr.cpp             |    8 +-
 core/sql/optimizer/NormRelExpr.cpp              |   58 +-
 core/sql/optimizer/OptPhysRelExpr.cpp           |   16 +-
 core/sql/optimizer/RelCache.cpp                 |   12 +
 core/sql/optimizer/RelExpr.cpp                  |   18 +-
 core/sql/optimizer/RelGrby.h                    |   39 +-
 core/sql/optimizer/RelJoin.h                    |    2 +-
 core/sql/optimizer/RelMisc.h                    |    1 +
 core/sql/optimizer/SynthType.cpp                |   14 +-
 core/sql/optimizer/TransRule.cpp                |   12 +-
 core/sql/parser/SqlParserAux.cpp                |   11 +-
 core/sql/parser/sqlparser.y                     |   13 +-
 core/sql/qmscommon/QRLogger.cpp                 |    8 +-
 core/sql/regress/compGeneral/EXPECTED011.SB     |   22 +-
 core/sql/regress/compGeneral/EXPECTED023        |    2 +-
 core/sql/regress/executor/TEST106               |    4 +
 core/sql/regress/hive/EXPECTED018               |  182 +--
 core/sql/regress/privs1/EXPECTED132             |  100 +-
 core/sql/regress/privs1/EXPECTED136             |    2 +
 core/sql/regress/privs2/EXPECTED129             |   23 +-
 core/sql/regress/privs2/EXPECTED135             |   17 +-
 core/sql/regress/privs2/EXPECTED138             |   22 +
 core/sql/regress/privs2/EXPECTED139             |   10 +
 core/sql/regress/privs2/EXPECTED140             |    4 +-
 core/sql/regress/privs2/EXPECTED142             |    6 +
 core/sql/regress/seabase/EXPECTED020            |   23 +
 core/sql/regress/seabase/EXPECTED033            |  617 ++++++++
 core/sql/regress/seabase/TEST020                |   10 +
 core/sql/regress/seabase/TEST033                |  162 ++
 core/sql/sqlcomp/PrivMgrDesc.cpp                |   36 +-
 core/sql/sqlcomp/PrivMgrDesc.h                  |   22 +-
 core/sql/sqlcomp/PrivMgrPrivileges.cpp          | 1349 +++++++----------
 core/sql/sqlcomp/PrivMgrPrivileges.h            |   78 +-
 core/sql/sqlcomp/nadefaults.cpp                 |    2 +-
 core/sql/sqlmxevents/logmxevent_traf.cpp        |    8 +-
 core/sql/ustat/hs_globals.cpp                   |    2 +-
 docs/src/site/markdown/index.md                 |   21 +-
 .../site/resources/images/carousel/meetup.png   |  Bin 81640 -> 0 bytes
 docs/src/site/site.xml                          |    2 +-
 install/installer/traf_cloudera_mods            |   11 +-
 .../phoenix/end2end/MultiCfQueryExecTest.java   |    5 +-
 .../end2end/SaltedTableUpsertSelectTest.java    |   13 +-
 91 files changed, 5708 insertions(+), 1655 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/a143ba9b/core/sql/common/Ipc.h
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/a143ba9b/core/sql/optimizer/BindRelExpr.cpp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/a143ba9b/core/sql/optimizer/NormRelExpr.cpp
----------------------------------------------------------------------
diff --cc core/sql/optimizer/NormRelExpr.cpp
index ad90c09,aba6a09..997cff8
--- a/core/sql/optimizer/NormRelExpr.cpp
+++ b/core/sql/optimizer/NormRelExpr.cpp
@@@ -1142,6 -1142,12 +1142,10 @@@ NABoolean RelExpr::getMoreOutputsIfPoss
        maxOutputs,
        outputsNeeded);
        child(i)->getGroupAttr()->addCharacteristicOutputs(outputsToAdd);
+       if (getOperatorType() == REL_MAP_VALUEIDS) 
+       {
+ 	((MapValueIds *)this)->addSameMapEntries(outputsToAdd);
+       }
 -
 -
       // child(i).getGroupAttr()->computeCharacteristicIO
  //	                                            (emptySet,  // no additional inputs
    //                                                   outputsNeeded);

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/a143ba9b/core/sql/optimizer/RelExpr.cpp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/a143ba9b/core/sql/optimizer/TransRule.cpp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/a143ba9b/core/sql/sqlcomp/PrivMgrDesc.h
----------------------------------------------------------------------