You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by se...@apache.org on 2017/08/31 05:08:54 UTC

[2/7] incubator-trafodion git commit: [TRAFODION-2727] Memory leak in the compiler part of the code in Trafodion

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/35a656be/core/sql/parser/sqlparser.y
----------------------------------------------------------------------
diff --git a/core/sql/parser/sqlparser.y b/core/sql/parser/sqlparser.y
index b85c3c5..0639508 100755
--- a/core/sql/parser/sqlparser.y
+++ b/core/sql/parser/sqlparser.y
@@ -3322,7 +3322,7 @@ boolean_literal : truth_value
                     char v = ($1 == TOK_TRUE ? 1 : 0);
                     NAString literalBuf($1 == TOK_TRUE ? "TRUE" : "FALSE");
                     $$ = new (PARSERHEAP()) ConstValue 
-                      (new (PARSERHEAP()) SQLBooleanNative(FALSE),
+                      (new (PARSERHEAP()) SQLBooleanNative(PARSERHEAP(), FALSE),
                        (void *) &v, 1, &literalBuf);
                   }
 
@@ -5476,7 +5476,7 @@ actual_table_name : qualified_name
 				  HostVar *vvX = new (PARSERHEAP()) 
 				    HostVar(*defineName, new (PARSERHEAP()) 
 				      SQLChar(
-				        ComAnsiNamePart::MAX_IDENTIFIER_EXT_LEN));
+				        PARSERHEAP(), ComAnsiNamePart::MAX_IDENTIFIER_EXT_LEN));
 				  vvX->setIsDefine();
                                   $$ = new (PARSERHEAP())
 				    CorrName("envVar$", 
@@ -8144,7 +8144,7 @@ primary :     '(' value_expression ')'
                                   {
                                     SQLInterval *iq =
 				      new (PARSERHEAP()) SQLInterval(
-					TRUE,
+					PARSERHEAP(), TRUE,
 					$4->getStartField(),
 					$4->getLeadingPrecision(),
 					$4->getEndField(),
@@ -8824,7 +8824,7 @@ datetime_misc_function : TOK_CONVERTTIMESTAMP '(' value_expression ')'
      | TOK_EXTEND '(' value_expression ')'
                                 {
                                 DatetimeType *dt = new (PARSERHEAP())
-                                                SQLTimestamp(TRUE, SQLTimestamp::DEFAULT_FRACTION_PRECISION, PARSERHEAP());
+                                                SQLTimestamp(PARSERHEAP(), TRUE, SQLTimestamp::DEFAULT_FRACTION_PRECISION);
 
                                 $$ = new (PARSERHEAP()) Cast ($3, dt);
                                 }
@@ -9870,7 +9870,7 @@ misc_function :
                                                 HashDistPartHash($3),
                                                 new (PARSERHEAP())
                                                 Cast($5, new (PARSERHEAP())
-                                                     SQLInt(FALSE, FALSE)));
+                                                     SQLInt(PARSERHEAP(), FALSE, FALSE)));
                                 }
      | TOK_HASH2PARTFUNC '(' value_expression_list TOK_FOR value_expression ')'
                                 {
@@ -9879,7 +9879,7 @@ misc_function :
                                                  HashDistPartHash($3),
                                                  new (PARSERHEAP())
                                                  Cast($5, new (PARSERHEAP())
-                                                      SQLInt(FALSE, FALSE)));
+                                                      SQLInt(PARSERHEAP(), FALSE, FALSE)));
                                 }
      | TOK_RRPARTFUNC '(' value_expression TOK_FOR value_expression ')'
                                 {
@@ -9891,10 +9891,10 @@ misc_function :
                                                            new (PARSERHEAP()) 
                                                            ConstValue(32)),
                                                      new (PARSERHEAP())
-                                                     SQLInt(FALSE,FALSE)),
+                                                     SQLInt(PARSERHEAP(), FALSE,FALSE)),
                                                 new (PARSERHEAP())
                                                 Cast($5, new (PARSERHEAP())
-                                                     SQLInt(FALSE, FALSE))); */
+                                                     SQLInt(PARSERHEAP(), FALSE, FALSE))); */
                                 }
 
      | TOK_DATE_PART '(' QUOTED_STRING ',' value_expression  ')'
@@ -10024,7 +10024,7 @@ misc_function :
                             maybeNullable = FALSE;
                            }
 
-                         SQLInterval *iq = new (PARSERHEAP()) SQLInterval(maybeNullable, REC_DATE_MONTH, 6, REC_DATE_MONTH, 1);
+                         SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), maybeNullable, REC_DATE_MONTH, 6, REC_DATE_MONTH, 1);
                          ItemExpr *iq2 =	new (PARSERHEAP()) Cast($5, iq);
                          $$ = new (PARSERHEAP())  BiArith(ITM_PLUS, $3,iq2);
 						 ((BiArith*) $$)->setStandardNormalization();
@@ -10046,7 +10046,7 @@ misc_function :
                             maybeNullable = FALSE;
                            }
 
-                         SQLInterval *iq = new (PARSERHEAP()) SQLInterval(maybeNullable, REC_DATE_MONTH, 6, REC_DATE_MONTH, 1);
+                         SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), maybeNullable, REC_DATE_MONTH, 6, REC_DATE_MONTH, 1);
                          ItemExpr *iq2 =	new (PARSERHEAP()) Cast($5, iq);
                          $$ = new (PARSERHEAP())  BiArith(ITM_PLUS, $3,iq2);
 						 UInt32 value = $7;
@@ -10125,7 +10125,7 @@ misc_function :
 				}
          | TOK_COLUMN_LOOKUP '(' dml_column_reference ',' QUOTED_STRING ')'
                               {
-				NAType * type = new(PARSERHEAP()) SQLVarChar(100000);
+				NAType * type = new(PARSERHEAP()) SQLVarChar(PARSERHEAP(), 100000);
 				$$ = new (PARSERHEAP()) 
 				    HbaseColumnLookup($3, *$5, type);
 			      }
@@ -10401,54 +10401,54 @@ audit_image_object: TOK_INDEX_TABLE actual_table_name
 /* type token */
 datetime_keywords : TOK_QUARTER  ',' value_expression 		  // 3 months	Cast 3*num_expr to months
                    	{
-					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_MONTH, 6, REC_DATE_MONTH, 1);
+					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_MONTH, 6, REC_DATE_MONTH, 1);
 					$$ = new (PARSERHEAP()) 
 					       Cast(new (PARSERHEAP())BiArith(ITM_TIMES, $3,  new (PARSERHEAP()) ConstValue(3)), iq);
 					}                    
                    | TOK_WEEK   ',' value_expression 		  // 7 days	  Cast 7*num_expr to days
                     {
-					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_DAY, 6, REC_DATE_DAY, 1);
+					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_DAY, 6, REC_DATE_DAY, 1);
 					$$ = new (PARSERHEAP()) 
 					       Cast(new (PARSERHEAP())BiArith(ITM_TIMES, $3,  new (PARSERHEAP()) ConstValue(7)), iq);
 					}
                    | TOK_YEAR   ',' value_expression
 				    {
-					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_YEAR, 6, REC_DATE_YEAR, 1);
+					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_YEAR, 6, REC_DATE_YEAR, 1);
 					$$ = new (PARSERHEAP()) Cast($3, iq);
 					}
                    | TOK_MONTH  ',' value_expression 
 				    {
-					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_MONTH, 6, REC_DATE_MONTH, 1);
+					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_MONTH, 6, REC_DATE_MONTH, 1);
 					$$ = new (PARSERHEAP()) Cast($3, iq);
 					}
 				   | TOK_DAY    ',' value_expression 
                    	{
-					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_DAY, 6, REC_DATE_DAY, 1);
+					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_DAY, 6, REC_DATE_DAY, 1);
 					$$ = new (PARSERHEAP()) Cast($3, iq);
 					}
                    | TOK_M  ',' value_expression 
 				    {
-					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_MONTH, 6, REC_DATE_MONTH, 1);
+					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_MONTH, 6, REC_DATE_MONTH, 1);
 					$$ = new (PARSERHEAP()) Cast($3, iq);
 					}
 				   | TOK_D    ',' value_expression 
                    	{
-					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_DAY, 6, REC_DATE_DAY, 1);
+					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_DAY, 6, REC_DATE_DAY, 1);
 					$$ = new (PARSERHEAP()) Cast($3, iq);
 					}                   
                    | TOK_HOUR   ',' value_expression
                     {
-					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_HOUR, 8, REC_DATE_HOUR, 1);
+					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_HOUR, 8, REC_DATE_HOUR, 1);
 					$$ = new (PARSERHEAP()) Cast($3, iq);
 					}                    
                    | TOK_MINUTE ',' value_expression
 				    {
-					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_MINUTE, 10, REC_DATE_MINUTE, 1);
+					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_MINUTE, 10, REC_DATE_MINUTE, 1);
 					$$ = new (PARSERHEAP()) Cast($3, iq);
 					}                    
                    | TOK_SECOND ',' value_expression 
 				    {
-					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_SECOND, 12, REC_DATE_SECOND, 1);
+					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_SECOND, 12, REC_DATE_SECOND, 1);
 					$$ = new (PARSERHEAP()) Cast($3, iq);
 					}
 				   | IDENTIFIER ',' value_expression
@@ -10456,43 +10456,43 @@ datetime_keywords : TOK_QUARTER  ',' value_expression 		  // 3 months	Cast 3*num
                       $1->toUpper();
                       if      ( *$1 == "YYYY" | *$1 == "YY" )
 					    {
-					      SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_YEAR, 6, REC_DATE_YEAR, 1);
+					      SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_YEAR, 6, REC_DATE_YEAR, 1);
 					      $$ = new (PARSERHEAP()) Cast($3, iq);
 					    }
                       else if ( *$1 == "MM" ) 
 				        {
-					      SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_MONTH, 6, REC_DATE_MONTH, 1);
+					      SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_MONTH, 6, REC_DATE_MONTH, 1);
 					      $$ = new (PARSERHEAP()) Cast($3, iq);
 					    }                       
                       else if ( *$1 == "DD" ) 
                    	    {
-					       SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_DAY, 6, REC_DATE_DAY, 1);
+					       SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_DAY, 6, REC_DATE_DAY, 1);
 					       $$ = new (PARSERHEAP()) Cast($3, iq);
 					    }                       
                       else if ( *$1 == "HH"  ) 
                         {
-        					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_HOUR, 8, REC_DATE_HOUR, 1);
+        					SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_HOUR, 8, REC_DATE_HOUR, 1);
 		        			$$ = new (PARSERHEAP()) Cast($3, iq);
 					    }
                       else if ( *$1 == "MI" | *$1 == "N" ) 
 				        {
-				       	   SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_MINUTE, 10, REC_DATE_MINUTE, 1);
+				       	   SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_MINUTE, 10, REC_DATE_MINUTE, 1);
 				       	   $$ = new (PARSERHEAP()) Cast($3, iq);
 					    }                       
                       else if ( *$1 == "SS" | *$1 == "S" ) 
 				        {
-					      SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_SECOND, 12, REC_DATE_SECOND, 1);
+					      SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_SECOND, 12, REC_DATE_SECOND, 1);
 					      $$ = new (PARSERHEAP()) Cast($3, iq);
 					    }                        
                       else if ( *$1 == "QQ" | *$1 == "Q" ) 
                         {
-					      SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_MONTH, 6, REC_DATE_MONTH, 1);
+					      SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_MONTH, 6, REC_DATE_MONTH, 1);
 					      $$ = new (PARSERHEAP()) 
 					             Cast(new (PARSERHEAP())BiArith(ITM_TIMES, $3,  new (PARSERHEAP()) ConstValue(3)), iq);
 					    }                       
                       else if ( *$1 == "WK" | *$1 == "WW" ) 
                        	{
-				         SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_DAY, 6, REC_DATE_DAY, 1);
+				         SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_DAY, 6, REC_DATE_DAY, 1);
 					     $$ = new (PARSERHEAP()) 
 					          Cast(new (PARSERHEAP())BiArith(ITM_TIMES, $3,  new (PARSERHEAP()) ConstValue(7)), iq);
 				     	}
@@ -10508,43 +10508,43 @@ timestamp_keywords : IDENTIFIER ',' value_expression
     $1->toUpper();
     if ( *$1 == "SQL_TSI_YEAR" )
       {
-        SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_YEAR, 6, REC_DATE_YEAR, 1);
+        SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_YEAR, 6, REC_DATE_YEAR, 1);
         $$ = new (PARSERHEAP()) Cast($3, iq);
       }
     else if ( *$1 == "SQL_TSI_MONTH" )
       {
-        SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_MONTH, 6, REC_DATE_MONTH, 1);
+        SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_MONTH, 6, REC_DATE_MONTH, 1);
         $$ = new (PARSERHEAP()) Cast($3, iq);
       }
     else if ( *$1 == "SQL_TSI_DAY" )
       {
-        SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_DAY, 6, REC_DATE_DAY, 1);
+        SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_DAY, 6, REC_DATE_DAY, 1);
         $$ = new (PARSERHEAP()) Cast($3, iq);
       }
     else if ( *$1 == "SQL_TSI_HOUR" )
       {
-        SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_HOUR, 8, REC_DATE_HOUR, 1);
+        SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_HOUR, 8, REC_DATE_HOUR, 1);
         $$ = new (PARSERHEAP()) Cast($3, iq);
       }
     else if ( *$1 == "SQL_TSI_MINUTE" )
       {
-        SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_MINUTE, 10, REC_DATE_MINUTE, 1);
+        SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_MINUTE, 10, REC_DATE_MINUTE, 1);
         $$ = new (PARSERHEAP()) Cast($3, iq);
       }
     else if ( *$1 == "SQL_TSI_SECOND" )
       {
-        SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_SECOND, 12, REC_DATE_SECOND, 1);
+        SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_SECOND, 12, REC_DATE_SECOND, 1);
         $$ = new (PARSERHEAP()) Cast($3, iq);
       }
     else if ( *$1 == "SQL_TSI_QUARTER" )
       {
-        SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_MONTH, 6, REC_DATE_MONTH, 1);
+        SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_MONTH, 6, REC_DATE_MONTH, 1);
         $$ = new (PARSERHEAP()) 
               Cast(new (PARSERHEAP())BiArith(ITM_TIMES, $3,  new (PARSERHEAP()) ConstValue(3)), iq);
       }
     else if ( *$1 == "SQL_TSI_WEEK" )
       {
-        SQLInterval *iq = new (PARSERHEAP()) SQLInterval(TRUE, REC_DATE_DAY, 6, REC_DATE_DAY, 1);
+        SQLInterval *iq = new (PARSERHEAP()) SQLInterval(PARSERHEAP(), TRUE, REC_DATE_DAY, 6, REC_DATE_DAY, 1);
         $$ = new (PARSERHEAP()) 
         Cast(new (PARSERHEAP())BiArith(ITM_TIMES, $3,  new (PARSERHEAP()) ConstValue(7)), iq);
       }
@@ -10928,21 +10928,21 @@ predefined_type : date_time_type
 rowset_type : TOK_ROWSET unsigned_integer predefined_type
 	      {
 #pragma nowarn(1506)   // warning elimination 
-		$$ = new (PARSERHEAP()) SQLRowset( $3, $2, $2);
+		$$ = new (PARSERHEAP()) SQLRowset(PARSERHEAP(), $3, $2, $2);
 	      }
              | TOK_ROWSET unsigned_integer float_type
 	      {
-		$$ = new (PARSERHEAP()) SQLRowset( $3, $2, $2);
+		$$ = new (PARSERHEAP()) SQLRowset(PARSERHEAP(), $3, $2, $2);
 	      }
 
 /* type na_type */
 proc_arg_rowset_type : TOK_ROWSET unsigned_integer predefined_type
 	      {
-		$$ = new (PARSERHEAP()) SQLRowset( $3, $2, $2);
+		$$ = new (PARSERHEAP()) SQLRowset(PARSERHEAP(), $3, $2, $2);
 	      }
              | TOK_ROWSET unsigned_integer proc_arg_float_type
 	      {
-		$$ = new (PARSERHEAP()) SQLRowset( $3, $2, $2);
+		$$ = new (PARSERHEAP()) SQLRowset(PARSERHEAP(), $3, $2, $2);
 #pragma warn(1506)  // warning elimination
 	      }
 
@@ -10953,15 +10953,15 @@ numeric_type : non_int_type
 /* na type for the numeric */
 int_type : TOK_INTEGER signed_option
              {
-		$$ = new (PARSERHEAP()) SQLInt( $2, TRUE);
+		$$ = new (PARSERHEAP()) SQLInt(PARSERHEAP(),  $2, TRUE);
              }
 	 | TOK_SMALLINT signed_option
              {
-		$$ = new (PARSERHEAP()) SQLSmall( $2, TRUE);
+		$$ = new (PARSERHEAP()) SQLSmall( PARSERHEAP(), $2, TRUE);
              }
 	 | TOK_LARGEINT signed_option
              {
-               $$ = new (PARSERHEAP()) SQLLargeInt( $2, TRUE);
+               $$ = new (PARSERHEAP()) SQLLargeInt(PARSERHEAP(),  $2, TRUE);
              }
          | TOK_BIGINT signed_option
              {
@@ -10972,7 +10972,7 @@ int_type : TOK_INTEGER signed_option
                   yyerror(""); 
                   YYERROR;
                 }
-                $$ = new (PARSERHEAP()) SQLLargeInt ($2,TRUE);
+                $$ = new (PARSERHEAP()) SQLLargeInt (PARSERHEAP(), $2,TRUE);
                 // ((SQLLargeInt *)$$)->setDisplayDataType("BIGINT");
 	     }
 	 | TOK_BIT TOK_PRECISION TOK_INTEGER left_unsigned_right signed_option
@@ -10987,12 +10987,12 @@ int_type : TOK_INTEGER signed_option
                    *SqlParser_Diags << DgSqlCode(-3126);
 		   YYABORT;
 		}
-		$$ = new (PARSERHEAP()) SQLBPInt ($4, TRUE, FALSE);
+		$$ = new (PARSERHEAP()) SQLBPInt (PARSERHEAP(), $4, TRUE, FALSE);
 	     }
 	 | TOK_BIT
        { 
          // odbc SQL_BIT is single bit binary data
-         $$ = new (PARSERHEAP()) SQLChar(1);
+         $$ = new (PARSERHEAP()) SQLChar(PARSERHEAP(), 1);
          // ((SQLChar *)$$)->setDisplayDataType("BIT");
        }
 	 | TOK_TINYINT signed_option
@@ -11000,9 +11000,9 @@ int_type : TOK_INTEGER signed_option
          // odbc SQL_TINYINT is exact numeric value with precision 3 &
          // scale 0. signed: -128<=n<=127, unsigned: 0<=n<=255.
          if (CmpCommon::getDefault(TRAF_TINYINT_SUPPORT) == DF_OFF)
-           $$ = new (PARSERHEAP()) SQLSmall( $2, TRUE);
+           $$ = new (PARSERHEAP()) SQLSmall(PARSERHEAP(),  $2, TRUE);
          else
-           $$ = new (PARSERHEAP()) SQLTiny( $2, TRUE);
+           $$ = new (PARSERHEAP()) SQLTiny(PARSERHEAP(),  $2, TRUE);
        }
 	 | TOK_BYTEINT signed_option
        {
@@ -11010,9 +11010,9 @@ int_type : TOK_INTEGER signed_option
          // BYTEINT is supposed to be exact numeric value with precision 3 &
          // scale 0. signed: -128<=n<=127, unsigned: 0<=n<=255.
          if (CmpCommon::getDefault(TRAF_TINYINT_SUPPORT) == DF_OFF)
-           $$ = new (PARSERHEAP()) SQLSmall( $2, TRUE);
+           $$ = new (PARSERHEAP()) SQLSmall(PARSERHEAP(),  $2, TRUE);
          else
-           $$ = new (PARSERHEAP()) SQLTiny( $2, TRUE);
+           $$ = new (PARSERHEAP()) SQLTiny(PARSERHEAP(),  $2, TRUE);
        }
 
 numeric_type_token :    TOK_NUMERIC
@@ -11079,11 +11079,11 @@ non_int_type : numeric_type_token left_uint_uint_right signed_option
 	       if (($2->left() > MAX_HARDWARE_SUPPORTED_SIGNED_NUMERIC_PRECISION) ||
 		   (($2->left() > MAX_HARDWARE_SUPPORTED_UNSIGNED_NUMERIC_PRECISION) AND NOT $3))
 		 $$ = new (PARSERHEAP())
-		   SQLBigNum($2->left(), $2->right(), TRUE, $3, TRUE, NULL);
+		   SQLBigNum(PARSERHEAP(), $2->left(), $2->right(), TRUE, $3, TRUE);
 	       else {
 		 const Int16 DisAmbiguate = 0; // added for 64bit project
 		 $$ = new (PARSERHEAP())
-		   SQLNumeric( $3,$2->left(), $2->right(), DisAmbiguate );
+		   SQLNumeric(PARSERHEAP(), $3,$2->left(), $2->right(), DisAmbiguate );
 	       }
 	       delete $2;
              }
@@ -11096,7 +11096,7 @@ non_int_type : numeric_type_token left_uint_uint_right signed_option
                  prec = 18; 
 
 	       const Int16 DisAmbiguate = 0; // added for 64bit project
-	       $$ = new (PARSERHEAP()) SQLNumeric($2, prec, 0, DisAmbiguate);
+	       $$ = new (PARSERHEAP()) SQLNumeric(PARSERHEAP(), $2, prec, 0, DisAmbiguate);
 	     }
 	 | TOK_LSDECIMAL left_uint_uint_right signed_option
              {
@@ -11133,14 +11133,14 @@ non_int_type : numeric_type_token left_uint_uint_right signed_option
                     YYABORT;
                 }
 		$$ = new (PARSERHEAP())
-		  LSDecimal( $2->left(), $2->right(), $3);
+		  LSDecimal(PARSERHEAP(), $2->left(), $2->right(), $3);
                 delete $2;
 #pragma warn(1506)  // warning elimination
              }
 	 | TOK_LSDECIMAL signed_option 
              {
 	       // Default (precision,scale) for DECIMAL is (9,0)
-	       $$ = new (PARSERHEAP()) LSDecimal(9, 0, $2);
+	       $$ = new (PARSERHEAP()) LSDecimal(PARSERHEAP(),9, 0, $2);
 	     }
 	 | TOK_DECIMAL left_uint_uint_right signed_option
              {
@@ -11177,23 +11177,23 @@ non_int_type : numeric_type_token left_uint_uint_right signed_option
                     YYABORT;
                 }
 		$$ = new (PARSERHEAP())
-		  SQLDecimal( $2->left(), $2->right(), $3);
+		  SQLDecimal(PARSERHEAP(), $2->left(), $2->right(), $3);
                 delete $2;
 #pragma warn(1506)  // warning elimination
              }
 	 | TOK_DECIMAL signed_option
              {
 	       // Default (precision,scale) for DECIMAL is (9,0)
-	       $$ = new (PARSERHEAP()) SQLDecimal(9, 0, $2);
+	       $$ = new (PARSERHEAP()) SQLDecimal(PARSERHEAP(),9, 0, $2);
 	     }
 float_type : TOK_FLOAT
              {
-               //               $$ = new (PARSERHEAP()) SQLDoublePrecision(TRUE, NULL, SQL_DOUBLE_PRECISION, TRUE);
-               $$ = new (PARSERHEAP()) SQLDoublePrecision(TRUE, NULL, 0, TRUE);
+               //               $$ = new (PARSERHEAP()) SQLDoublePrecision(PARSERHEAP(), TRUE, SQL_DOUBLE_PRECISION, TRUE);
+               $$ = new (PARSERHEAP()) SQLDoublePrecision(PARSERHEAP(), TRUE, 0, TRUE);
              }
 	 | TOK_FLOAT left_unsigned_right
              {
-               $$ = new (PARSERHEAP()) SQLDoublePrecision(TRUE, NULL, $2, TRUE);
+               $$ = new (PARSERHEAP()) SQLDoublePrecision(PARSERHEAP(), TRUE, $2, TRUE);
 
                if (CmpCommon::getDefault(MODE_SPECIAL_4) == DF_OFF)
                  {
@@ -11203,15 +11203,15 @@ float_type : TOK_FLOAT
              }
 	 | TOK_REAL
              {
-		$$ = new (PARSERHEAP()) SQLReal(TRUE, PARSERHEAP());
+		$$ = new (PARSERHEAP()) SQLReal(PARSERHEAP(), TRUE); 
              }
 	 | TOK_DOUBLE TOK_PRECISION
              {
-		$$ = new (PARSERHEAP()) SQLDoublePrecision(TRUE, PARSERHEAP(), 0);
+		$$ = new (PARSERHEAP()) SQLDoublePrecision(PARSERHEAP(), TRUE, 0);
              }
 	 | TOK_SQL_DOUBLE
              {
-		$$ = new (PARSERHEAP()) SQLDoublePrecision(TRUE, PARSERHEAP(), 0);
+		$$ = new (PARSERHEAP()) SQLDoublePrecision(PARSERHEAP(), TRUE, 0);
              }
 
 /* na type for the ieee or tandem floats as PROCEDURE argument in mdf.
@@ -11219,32 +11219,32 @@ float_type : TOK_FLOAT
    not IEEE floats. This is for upward compatibility from pre R2 releases */
 proc_arg_float_type : TOK_FLOAT_IEEE
              {
-		$$ = new (PARSERHEAP()) SQLDoublePrecision(TRUE, PARSERHEAP(), 0);
+		$$ = new (PARSERHEAP()) SQLDoublePrecision(PARSERHEAP(), TRUE, 0);
              }
 	 | TOK_FLOAT_IEEE left_unsigned_right
              {
 #pragma nowarn(1506)  // warning elimination
-		$$ = new (PARSERHEAP()) SQLDoublePrecision(TRUE, NULL, $2);
+		$$ = new (PARSERHEAP()) SQLDoublePrecision(PARSERHEAP(), TRUE, $2);
 #pragma warn(1506)  // warning elimination
                 if (! ((SQLDoublePrecision *)$$)->checkValid(SqlParser_Diags))
                    YYERROR;
              }
 	 | TOK_REAL_IEEE
              {
-		$$ = new (PARSERHEAP()) SQLReal(TRUE, PARSERHEAP(), 0);
+		$$ = new (PARSERHEAP()) SQLReal(PARSERHEAP(), TRUE, 0);
              }
 	 | TOK_DOUBLE_IEEE
              {
-		$$ = new (PARSERHEAP()) SQLDoublePrecision(TRUE, PARSERHEAP(), 0);
+		$$ = new (PARSERHEAP()) SQLDoublePrecision(PARSERHEAP(), TRUE, 0);
              }
 	 | TOK_FLOAT
              {
-		$$ = new (PARSERHEAP()) SQLDoublePrecision(TRUE, PARSERHEAP(), 0);
+		$$ = new (PARSERHEAP()) SQLDoublePrecision(PARSERHEAP(), TRUE, 0);
              }
 	 | TOK_FLOAT left_unsigned_right
              {
 #pragma nowarn(1506)  // warning elimination
-		$$ = new (PARSERHEAP()) SQLDoublePrecision(TRUE, NULL, $2);
+		$$ = new (PARSERHEAP()) SQLDoublePrecision(PARSERHEAP(), TRUE, $2);
 #pragma warn(1506)  // warning elimination
                 if (! ((SQLDoublePrecision *)$$)->checkValid(SqlParser_Diags))
                    YYERROR;
@@ -11253,13 +11253,13 @@ proc_arg_float_type : TOK_FLOAT_IEEE
              {
 	       // For upward compatability, 
 	       // REAL is IEEE real on NT, tandem real on NSK.
-		$$ = new (PARSERHEAP()) SQLReal(TRUE, PARSERHEAP(), 0);
+		$$ = new (PARSERHEAP()) SQLReal(PARSERHEAP(), TRUE, 0);
              }
 	 | TOK_DOUBLE TOK_PRECISION
              {
 	       // For upward compatability, 
 	       // DOUBLE is IEEE double on NT, tandem double on NSK.
-		$$ = new (PARSERHEAP()) SQLDoublePrecision(TRUE, PARSERHEAP(), 0);
+		$$ = new (PARSERHEAP()) SQLDoublePrecision(PARSERHEAP(), TRUE);
              }
 
 /* na_type */
@@ -11392,7 +11392,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
                  {
                    maxLenInBytes = characterLimit * maxBytesPerChar;
                  }
-                 $$ = new (PARSERHEAP()) SQLChar ( CharLenInfo(characterLimit, maxLenInBytes), TRUE,
+                 $$ = new (PARSERHEAP()) SQLChar ( PARSERHEAP(), CharLenInfo(characterLimit, maxLenInBytes), TRUE,
                                                    $5, $6, FALSE, eCharSet, $4.collation_,
                                                    $4.coercibility_, eEncodingCharSet );
                  NAString ddt("CHAR", PARSERHEAP());
@@ -11401,7 +11401,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
                else // keep the old behavior
 #pragma nowarn(1506)  // warning elimination
                $$ = new (PARSERHEAP()) SQLChar
-			(specifiedLength, TRUE, $5, $6, FALSE, 
+			(PARSERHEAP(), specifiedLength, TRUE, $5, $6, FALSE, 
 			 eCharSet, $4.collation_, $4.coercibility_);
 #pragma warn(1506)  // warning elimination
 	       if (checkError3179($$)) YYERROR;
@@ -11411,7 +11411,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
             {
 #pragma nowarn(1506)  // warning elimination
                $$ = new (PARSERHEAP()) ANSIChar
-	       		($2, TRUE, $5, TRUE,
+	       		(PARSERHEAP(), $2, TRUE, $5, TRUE,
 			 $3, $4.collation_, $4.coercibility_);
 #pragma warn(1506)  // warning elimination
 	       if (checkError3179($$)) YYERROR;
@@ -11461,7 +11461,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
                  {
                    maxLenInBytes = characterLimit * maxBytesPerChar; 
                  }
-                 $$ = new (PARSERHEAP()) SQLVarChar ( CharLenInfo(characterLimit, maxLenInBytes),
+                 $$ = new (PARSERHEAP()) SQLVarChar ( PARSERHEAP(), CharLenInfo(characterLimit, maxLenInBytes),
                                                       TRUE, $6, $7, eCharSet, $5.collation_,
                                                       $5.coercibility_, eEncodingCharSet );
                  NAString ddt("VARCHAR", PARSERHEAP());
@@ -11470,7 +11470,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
                else // keep the old behavior
 #pragma nowarn(1506)  // warning elimination
                $$ = new (PARSERHEAP()) SQLVarChar
-			(specifiedLength, TRUE, $6, $7,
+			(PARSERHEAP(), specifiedLength, TRUE, $6, $7,
 			 eCharSet, $5.collation_, $5.coercibility_);
 #pragma warn(1506)  // warning elimination
 	       if (checkError3179($$)) YYERROR;
@@ -11510,7 +11510,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
                  {
                    maxLenInBytes = characterLimit * maxBytesPerChar;
                  }
-                 $$ = new (PARSERHEAP()) SQLVarChar ( CharLenInfo(characterLimit, maxLenInBytes), TRUE,
+                 $$ = new (PARSERHEAP()) SQLVarChar (PARSERHEAP(),  CharLenInfo(characterLimit, maxLenInBytes), TRUE,
                                                       $5, $6, eCharSet, $4.collation_,
                                                       $4.coercibility_, eEncodingCharSet );
                  NAString ddt("VARCHAR", PARSERHEAP());
@@ -11519,7 +11519,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
                else // keep the old behavior
 #pragma nowarn(1506)  // warning elimination
                $$ = new (PARSERHEAP()) SQLVarChar
-			(specifiedLength, TRUE, $5, $6,
+			(PARSERHEAP(), specifiedLength, TRUE, $5, $6,
 			 eCharSet, $4.collation_, $4.coercibility_);
 #pragma warn(1506)  // warning elimination
 	       if (checkError3179($$)) YYERROR;
@@ -11548,7 +11548,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
            Int32 maxBytesPerChar = CharInfo::maxBytesPerChar(eCharSet);
            // compute the length in UCS4 characters for the worse case scenarios
            Int32 characterLimit = maxLenInBytes ;
-           $$ = new (PARSERHEAP()) SQLLongVarChar ( CharLenInfo(characterLimit, maxLenInBytes),
+           $$ = new (PARSERHEAP()) SQLLongVarChar ( PARSERHEAP(), (characterLimit, maxLenInBytes),
                                                     FALSE, TRUE,
                                                     $5, $6, eCharSet, $4.collation_,
                                                     $4.coercibility_, eEncodingCharSet );
@@ -11558,7 +11558,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
          }
          else // keep the old behavior
          $$ = new (PARSERHEAP()) SQLLongVarChar
-           (maxLenInBytes, FALSE, TRUE, $5, $6,
+           (PARSERHEAP(), maxLenInBytes, FALSE, TRUE, $5, $6,
             eCharSet, $4.collation_, $4.coercibility_);
          if (checkError3179($$)) YYERROR;
 
@@ -11607,7 +11607,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
            Int32 maxBytesPerChar = CharInfo::maxBytesPerChar(eCharSet);
            // compute the length in UCS4 characters for the worse case scenarios
            Int32 characterLimit = maxLenInBytes ;
-           $$ = new (PARSERHEAP()) SQLVarChar ( CharLenInfo ( characterLimit , maxLenInBytes)
+           $$ = new (PARSERHEAP()) SQLVarChar ( PARSERHEAP(), CharLenInfo ( characterLimit , maxLenInBytes)
                                               , TRUE // allowSQLnull
                                               , $6   // isUpShifted
                                               , $7   // isCaseInsensitive
@@ -11626,7 +11626,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
          //   "create table t(c long varchar, w longwvarchar)" into
          //   "create table t(c varchar(n),   w varwchar(m))".
          $$ = new (PARSERHEAP()) SQLVarChar
-           (maxLenInBytes, TRUE, $6, $7, eCharSet, $5.collation_, $5.coercibility_);
+           (PARSERHEAP(), maxLenInBytes, TRUE, $6, $7, eCharSet, $5.collation_, $5.coercibility_);
          // end KLUDGE.
 #pragma warn(1506)  // warning elimination
 	       if (checkError3179($$)) YYERROR;
@@ -11636,7 +11636,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
             {
 #pragma nowarn(1506)  // warning elimination
                $$ = new (PARSERHEAP()) SQLChar
-		 	($2, TRUE, $4, $5, FALSE,
+		 	(PARSERHEAP(), $2, TRUE, $4, $5, FALSE,
 			 SqlParser_NATIONAL_CHARSET,
 			 $3.collation_, $3.coercibility_);
 #pragma warn(1506)  // warning elimination
@@ -11646,7 +11646,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
             {
 #pragma nowarn(1506)  // warning elimination
                $$ = new (PARSERHEAP()) SQLVarChar
-		 	($2, TRUE, $4, $5,
+		 	(PARSERHEAP(), $2, TRUE, $4, $5,
 			 SqlParser_NATIONAL_CHARSET,
 			 $3.collation_, $3.coercibility_);
 #pragma warn(1506)  // warning elimination
@@ -11658,7 +11658,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
          // of fixed string length n.
 #pragma nowarn(1506)  // warning elimination
          $$ = new (PARSERHEAP()) SQLChar
-           ($2, TRUE, $4, $5, FALSE, CharInfo::UNICODE, 
+           (PARSERHEAP(), $2, TRUE, $4, $5, FALSE, CharInfo::UNICODE, 
             $3.collation_, $3.coercibility_);
 #pragma warn(1506)  // warning elimination
          if (checkError3179($$)) YYERROR;
@@ -11669,7 +11669,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
          // character string with a maximum string length n.
 #pragma nowarn(1506)  // warning elimination
          $$ = new (PARSERHEAP()) SQLVarChar
-           ($2, TRUE, $4, $5, CharInfo::UNICODE, 
+           (PARSERHEAP(), $2, TRUE, $4, $5, CharInfo::UNICODE, 
             $3.collation_, $3.coercibility_);
 #pragma warn(1506)  // warning elimination
          if (checkError3179($$)) YYERROR;
@@ -11680,7 +11680,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
          // character data. Maximum length is data source-dependent (can be
          // set by control query default MAX_LONG_WVARCHAR_DEFAULT_SIZE).
          $$ = new (PARSERHEAP()) SQLLongVarChar
-           (getDefaultMaxLengthForLongVarChar(CharInfo::UNICODE), 
+           (PARSERHEAP(), getDefaultMaxLengthForLongVarChar(CharInfo::UNICODE), 
             FALSE, TRUE, $3, $4, CharInfo::UNICODE, 
             $2.collation_, $2.coercibility_);
          if (checkError3179($$)) YYERROR;
@@ -11703,7 +11703,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
          }
 #pragma nowarn(1506)  // warning elimination
          $$ = new (PARSERHEAP()) SQLLongVarChar
-           ($2, TRUE, TRUE, $4, $5, CharInfo::UNICODE, 
+           (PARSERHEAP(), $2, TRUE, TRUE, $4, $5, CharInfo::UNICODE, 
             $3.collation_, $3.coercibility_);
 #pragma warn(1506)  // warning elimination
          if (checkError3179($$)) YYERROR;
@@ -11712,7 +11712,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
        {
          // odbc SQL_BINARY is BINARY(n). Binary data of fixed length n.
 #pragma nowarn(1506)  // warning elimination
-         $$ = new (PARSERHEAP()) SQLChar($2, TRUE, FALSE, FALSE);
+         $$ = new (PARSERHEAP()) SQLChar(PARSERHEAP(), $2, TRUE, FALSE, FALSE);
 #pragma warn(1506)  // warning elimination
          if (checkError3179($$)) YYERROR;
        }
@@ -11721,7 +11721,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
          // odbc SQL_VARBINARY is VARBINARY(n). Variable length binary data 
          // of maximum length n. The maximum length is set by the user.
 #pragma nowarn(1506)  // warning elimination
-         $$ = new (PARSERHEAP()) SQLVarChar($2);
+         $$ = new (PARSERHEAP()) SQLVarChar(PARSERHEAP(), $2);
 #pragma warn(1506)  // warning elimination
          if (checkError3179($$)) YYERROR;
        }
@@ -11729,7 +11729,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
        {
          // odbc SQL_LONGVARBINARY is LONG VARBINARY(n). Variable length 
          // binary data. Maximum length is data source-dependent.
-         $$ = new (PARSERHEAP()) SQLLongVarChar(0, FALSE);
+         $$ = new (PARSERHEAP()) SQLLongVarChar(PARSERHEAP(), 0, FALSE);
          if (checkError3179($$)) YYERROR;
        }
      | TOK_LONG TOK_VARBINARY left_unsigned_right
@@ -11751,7 +11751,7 @@ string_type : tok_char_or_character_or_byte new_optional_left_charlen_right char
          // soln 10-040610-6863 by temporarily mapping
          //   "create table t(b long varbinary(n))" into
          //   "create table t(b varchar(n))".
-         $$ = new (PARSERHEAP()) SQLVarChar($3);
+         $$ = new (PARSERHEAP()) SQLVarChar(PARSERHEAP(), $3);
          // end KLUDGE.
 #pragma warn(1506)  // warning elimination
          if (checkError3179($$)) YYERROR;
@@ -11771,24 +11771,24 @@ blob_type : TOK_BLOB blob_optional_left_len_right
             {
 	      if (CmpCommon::getDefault(TRAF_BLOB_AS_VARCHAR) == DF_ON)
 		{
-		  $$ = new (PARSERHEAP()) SQLVarChar($2);
+		  $$ = new (PARSERHEAP()) SQLVarChar(PARSERHEAP(), $2);
                   ((SQLVarChar*)$$)->setClientDataType("BLOB");
 		}
 	      else
 		{
-    		  $$ = new (PARSERHEAP()) SQLBlob ( $2 );
+    		  $$ = new (PARSERHEAP()) SQLBlob (PARSERHEAP(),  $2 );
 		}
             }
           | TOK_CLOB clob_optional_left_len_right
             {
 	      if (CmpCommon::getDefault(TRAF_CLOB_AS_VARCHAR) == DF_ON)
 		{
-		  $$ = new (PARSERHEAP()) SQLVarChar($2);
+		  $$ = new (PARSERHEAP()) SQLVarChar(PARSERHEAP(), $2);
                   ((SQLVarChar*)$$)->setClientDataType("CLOB");
 		}
 	      else
 		{
-                  $$ = new (PARSERHEAP()) SQLClob ( $2 );
+                  $$ = new (PARSERHEAP()) SQLClob (PARSERHEAP(),  $2 );
 		}
             }
  
@@ -11864,7 +11864,7 @@ clob_optional_left_len_right: '(' NUMERIC_LITERAL_EXACT_NO_SCALE optional_lob_un
 /* type na_type */
 boolean_type : TOK_BOOLEAN
             {
-              $$ = new (PARSERHEAP()) SQLBooleanNative (TRUE);
+              $$ = new (PARSERHEAP()) SQLBooleanNative (PARSERHEAP(), TRUE);
             }
 
 /* type pCharLenSpec */
@@ -12204,7 +12204,7 @@ left_uint_uint_right: '(' NUMERIC_LITERAL_EXACT_NO_SCALE ',' NUMERIC_LITERAL_EXA
 /* type na_type */
 date_time_type : TOK_DATE disableCharsetInference format_attributes
                           {
-                            $$ = new (PARSERHEAP()) SQLDate(TRUE,PARSERHEAP());
+                            $$ = new (PARSERHEAP()) SQLDate(PARSERHEAP(), TRUE);
                             SQLDate *pDate = (SQLDate *)$$;
                             // Leave the field blank if FORMAT clause not
                             // specified to leave SHOWDDL output remain
@@ -12221,29 +12221,26 @@ date_time_type : TOK_DATE disableCharsetInference format_attributes
                           }
                | TOK_TIME
                           {
-                              $$ = new (PARSERHEAP()) SQLTime(TRUE, 
-                                                              SQLTime::DEFAULT_FRACTION_PRECISION,
-                                                              PARSERHEAP());
+                              $$ = new (PARSERHEAP()) SQLTime(PARSERHEAP(), TRUE, 
+                                                              SQLTime::DEFAULT_FRACTION_PRECISION);
                           }
                | TOK_TIME ts_left_unsigned_right
                           {
-                              $$ = new (PARSERHEAP()) SQLTime(TRUE,
-                                                              $2,
-                                                              PARSERHEAP());
+                              $$ = new (PARSERHEAP()) SQLTime(PARSERHEAP(), TRUE,
+                                                              $2);
 
                               if (! ((SQLTime *)$$)->checkValid(SqlParser_Diags)) YYERROR;
                           }
 	       | TOK_TIMESTAMP disableCharsetInference  format_attributes
                           {
                               $$ = new (PARSERHEAP()) 
-                                SQLTimestamp(TRUE, 
-                                             SQLTimestamp::DEFAULT_FRACTION_PRECISION, 
-                                             PARSERHEAP() );
+                                SQLTimestamp(PARSERHEAP(), TRUE, 
+                                             SQLTimestamp::DEFAULT_FRACTION_PRECISION); 
                               restoreInferCharsetState();
                           }
 	       | TOK_TIMESTAMP ts_left_unsigned_right disableCharsetInference format_attributes
                           {
-                              $$ = new (PARSERHEAP()) SQLTimestamp(TRUE, $2, PARSERHEAP());
+                              $$ = new (PARSERHEAP()) SQLTimestamp(PARSERHEAP(), TRUE, $2);
                               if (! ((SQLTimestamp *)$$)->checkValid(SqlParser_Diags)) YYERROR;
                               restoreInferCharsetState();
                           }
@@ -12337,7 +12334,7 @@ datetime_fraction_field  : TOK_FRACTION                            // returned i
 interval_type : TOK_INTERVAL interval_qualifier
               {
                 $$ = new (PARSERHEAP())
-		  SQLInterval(TRUE,
+		  SQLInterval(PARSERHEAP(), TRUE,
 			      $2->getStartField(),
 			      $2->getLeadingPrecision(),
 			      $2->getEndField(),
@@ -12356,11 +12353,10 @@ interval_type : TOK_INTERVAL interval_qualifier
 interval_qualifier : start_field TOK_TO end_field
                    {
                       $$ = new (PARSERHEAP())
-	              IntervalQualifier($1->getStartField(),
+	              IntervalQualifier(PARSERHEAP(), $1->getStartField(),
                                         $1->getLeadingPrecision(),
 					$3->getEndField(),
-				        $3->getFractionPrecision(),
-                                        PARSERHEAP());
+				        $3->getFractionPrecision());
 
 		      // Check to see if FRACTION used, pass along to new object
 		      if($3->getDTIFlag(IntervalType::UNSUPPORTED_DDL_DATA_TYPE))
@@ -12379,11 +12375,10 @@ interval_qualifier : start_field TOK_TO end_field
                    | TOK_SECOND TOK_TO interval_fraction_field
                    {
                        $$ = new (PARSERHEAP()) 
-                           IntervalQualifier(REC_DATE_SECOND,
+                           IntervalQualifier(PARSERHEAP(), REC_DATE_SECOND,
                                      SQLInterval::DEFAULT_LEADING_PRECISION,
                                      REC_DATE_SECOND,
-                                     $3,
-                                     PARSERHEAP());
+                                     $3);
 
                       if (! $$->checkValid(SqlParser_Diags)) YYERROR;
 
@@ -12393,11 +12388,10 @@ interval_qualifier : start_field TOK_TO end_field
                    | TOK_SECOND ts_left_unsigned_right TOK_TO interval_fraction_field
                    {
                         $$ = new (PARSERHEAP())
-                          IntervalQualifier(REC_DATE_SECOND,
+                          IntervalQualifier(PARSERHEAP(), REC_DATE_SECOND,
                                     $2,
                                     REC_DATE_SECOND,
-                                    $4,
-                                    PARSERHEAP());
+                                    $4);
 
                         if (! $$->checkValid(SqlParser_Diags)) YYERROR;
 			
@@ -12407,19 +12401,17 @@ interval_qualifier : start_field TOK_TO end_field
                    | TOK_SECOND TOK_TO TOK_SECOND
                    {
                         $$ = new (PARSERHEAP()) 
-                            IntervalQualifier(REC_DATE_SECOND,
-                                              IntervalQualifier::DEFAULT_LEADING_PRECISION,
-                                              PARSERHEAP());
+                            IntervalQualifier(PARSERHEAP(), REC_DATE_SECOND,
+                                              IntervalQualifier::DEFAULT_LEADING_PRECISION);
                    }
 
                    | TOK_SECOND ts_left_unsigned_right TOK_TO TOK_SECOND
                    {
                         $$ = new (PARSERHEAP())
-                          IntervalQualifier(REC_DATE_SECOND,
+                          IntervalQualifier(PARSERHEAP(), REC_DATE_SECOND,
                                    $2,
                                    REC_DATE_SECOND,
-                                   0,
-                                   PARSERHEAP());
+                                   0);
                         if (! $$->checkValid(SqlParser_Diags)) YYERROR;
                     }
                     | fraction_only_interval
@@ -12433,51 +12425,47 @@ interval_qualifier : start_field TOK_TO end_field
 /* type intervalQualifier */
 start_field : non_second_datetime_field
             {
-              $$ = new (PARSERHEAP()) IntervalQualifier($1, IntervalQualifier::DEFAULT_LEADING_PRECISION, PARSERHEAP());
+              $$ = new (PARSERHEAP()) IntervalQualifier(PARSERHEAP(), $1, IntervalQualifier::DEFAULT_LEADING_PRECISION);
             }
             | non_second_datetime_field ts_left_unsigned_right
             {
-              $$ = new (PARSERHEAP()) IntervalQualifier($1, $2, PARSERHEAP());
+              $$ = new (PARSERHEAP()) IntervalQualifier(PARSERHEAP(), $1, $2);
             }
 
 fraction_only_interval :  TOK_FRACTION                           // returned in MP mode only
                 {                                  
                    $$ = new (PARSERHEAP())
-                        IntervalQualifier(REC_DATE_FRACTION_MP,
+                        IntervalQualifier(PARSERHEAP(), REC_DATE_FRACTION_MP,
                                       SQLInterval::DEFAULT_LEADING_PRECISION,
                                       REC_DATE_FRACTION_MP,
-                                      SQLInterval::MAX_FRACTION_PRECISION,
-                                      PARSERHEAP() );
+                                      SQLInterval::MAX_FRACTION_PRECISION);
                 }
                 | TOK_FRACTION ts_left_unsigned_right   
                 {                                  
                    $$ = new (PARSERHEAP())
-                        IntervalQualifier(REC_DATE_FRACTION_MP,
+                        IntervalQualifier(PARSERHEAP(), REC_DATE_FRACTION_MP,
                                       $2,
                                       REC_DATE_FRACTION_MP,
-                                      SQLInterval::MAX_FRACTION_PRECISION,
-                                      PARSERHEAP() );
+                                      SQLInterval::MAX_FRACTION_PRECISION);
                    if (! $$->checkValid(SqlParser_Diags)) YYERROR;
                 }
                 | TOK_FRACTION TOK_TO interval_fraction_field
                 {
                    $$ = new (PARSERHEAP())
-                        IntervalQualifier(REC_DATE_FRACTION_MP,
+                        IntervalQualifier(PARSERHEAP(), REC_DATE_FRACTION_MP,
                                       SQLInterval::DEFAULT_LEADING_PRECISION,
                                       REC_DATE_FRACTION_MP,
-                                      $3,
-                                      PARSERHEAP());
+                                      $3);
 
                    if (! $$->checkValid(SqlParser_Diags)) YYERROR;
                 }
                 | TOK_FRACTION ts_left_unsigned_right  TOK_TO interval_fraction_field
                 {
                    $$ = new (PARSERHEAP())
-                        IntervalQualifier(REC_DATE_FRACTION_MP,
+                        IntervalQualifier(PARSERHEAP(), REC_DATE_FRACTION_MP,
                                       $2,
                                       REC_DATE_FRACTION_MP,
-                                      $4,
-                                      PARSERHEAP());
+                                      $4);
 
                    if (! $$->checkValid(SqlParser_Diags)) YYERROR;
                 }
@@ -12493,31 +12481,29 @@ interval_fraction_field  : TOK_FRACTION                            // returned i
 /* type intervalQualifier */
 end_field : non_second_datetime_field
           {
-            $$ = new (PARSERHEAP()) IntervalQualifier($1, IntervalQualifier::DEFAULT_LEADING_PRECISION, PARSERHEAP());
+            $$ = new (PARSERHEAP()) IntervalQualifier(PARSERHEAP(), $1, IntervalQualifier::DEFAULT_LEADING_PRECISION);
           }
           | TOK_SECOND
           {
-            $$ = new (PARSERHEAP()) IntervalQualifier(REC_DATE_SECOND, IntervalQualifier::DEFAULT_LEADING_PRECISION, PARSERHEAP());
+            $$ = new (PARSERHEAP()) IntervalQualifier(PARSERHEAP(), REC_DATE_SECOND, IntervalQualifier::DEFAULT_LEADING_PRECISION);
           }
           | TOK_SECOND ts_left_unsigned_right
           {
              $$ = new (PARSERHEAP())
-	       IntervalQualifier(REC_DATE_SECOND,
+	       IntervalQualifier(PARSERHEAP(), REC_DATE_SECOND,
                             SQLInterval::DEFAULT_LEADING_PRECISION,
                             REC_DATE_SECOND,
-                            $2,
-                            PARSERHEAP());                 
+                            $2);
 
              if (! $$->checkValid(SqlParser_Diags)) YYERROR;
           }
           | interval_fraction_field
             {
              $$ = new (PARSERHEAP())
-	       IntervalQualifier(REC_DATE_SECOND,
+	       IntervalQualifier(PARSERHEAP(), REC_DATE_SECOND,
                             SQLInterval::DEFAULT_LEADING_PRECISION,
                             REC_DATE_SECOND,
-                            $1,
-                            PARSERHEAP());                 
+                            $1);
 
              if (! $$->checkValid(SqlParser_Diags)) YYERROR;
 
@@ -12533,14 +12519,13 @@ single_datetime_field : start_field
                       | TOK_SECOND
                       {
                         $$ = new (PARSERHEAP())
-			  IntervalQualifier(REC_DATE_SECOND,
-                                            IntervalQualifier::DEFAULT_LEADING_PRECISION,
-                                            PARSERHEAP());
+			  IntervalQualifier(PARSERHEAP(), REC_DATE_SECOND,
+                                            IntervalQualifier::DEFAULT_LEADING_PRECISION);
                       }
                       | TOK_SECOND ts_left_unsigned_right
                       {
                         $$ = new (PARSERHEAP())
-			  IntervalQualifier(REC_DATE_SECOND, $2, PARSERHEAP());
+			  IntervalQualifier(PARSERHEAP(), REC_DATE_SECOND, $2);
                         if (! $$->checkValid(SqlParser_Diags)) YYERROR;
                       }
                       | TOK_SECOND '(' unsigned_integer ',' unsigned_integer ')'
@@ -12552,11 +12537,10 @@ single_datetime_field : start_field
                         // to be 6.
                         //
                         $$ = new (PARSERHEAP())
-			  IntervalQualifier(REC_DATE_SECOND,
+			  IntervalQualifier(PARSERHEAP(), REC_DATE_SECOND,
 					    $3,
 					    REC_DATE_SECOND,
-					    $5,
-                                            PARSERHEAP());
+					    $5);
                         if (! $$->checkValid(SqlParser_Diags)) YYERROR;
                       }
 
@@ -13024,9 +13008,9 @@ insert_obj_to_lob_function :
 			        {
 				  ItemExpr *bufAddr = $4;
 				  ItemExpr *bufSize = $7;
-				  bufAddr = new (PARSERHEAP())Cast(bufAddr, new (PARSERHEAP()) SQLLargeInt(TRUE,FALSE));
+				  bufAddr = new (PARSERHEAP())Cast(bufAddr, new (PARSERHEAP()) SQLLargeInt(PARSERHEAP(), TRUE,FALSE));
 				  bufSize = new (PARSERHEAP())
-				    Cast(bufSize, new (PARSERHEAP()) SQLLargeInt(TRUE, FALSE));
+				    Cast(bufSize, new (PARSERHEAP()) SQLLargeInt(PARSERHEAP(), TRUE, FALSE));
 				  $$ = new (PARSERHEAP()) LOBinsert( bufAddr, bufSize, LOBoper::BUFFER_, FALSE);
 				}
                           | TOK_FILETOLOB '(' character_literal_sbyte ')'
@@ -13080,18 +13064,18 @@ update_obj_to_lob_function :
 			        {
 				  ItemExpr *bufAddr = $4;
 				  ItemExpr *bufSize = $7;
-				  bufAddr = new (PARSERHEAP())Cast(bufAddr, new (PARSERHEAP()) SQLLargeInt(TRUE,FALSE));
+				  bufAddr = new (PARSERHEAP())Cast(bufAddr, new (PARSERHEAP()) SQLLargeInt(PARSERHEAP(), TRUE,FALSE));
 				  bufSize = new (PARSERHEAP())
-				    Cast(bufSize, new (PARSERHEAP()) SQLLargeInt(TRUE, FALSE));
+				    Cast(bufSize, new (PARSERHEAP()) SQLLargeInt(PARSERHEAP(), TRUE, FALSE));
 				  $$ = new (PARSERHEAP()) LOBupdate( bufAddr, NULL,bufSize, LOBoper::BUFFER_, FALSE);
 				}
 			  | TOK_BUFFERTOLOB '(' TOK_LOCATION value_expression ',' TOK_SIZE value_expression ',' TOK_APPEND')'
 			        {
 				  ItemExpr *bufAddr = $4;
 				  ItemExpr *bufSize = $7;
-				  bufAddr = new (PARSERHEAP())Cast(bufAddr, new (PARSERHEAP()) SQLLargeInt(TRUE,FALSE));
+				  bufAddr = new (PARSERHEAP())Cast(bufAddr, new (PARSERHEAP()) SQLLargeInt(PARSERHEAP(), TRUE,FALSE));
 				  bufSize = new (PARSERHEAP())
-				    Cast(bufSize, new (PARSERHEAP()) SQLLargeInt(TRUE, FALSE));
+				    Cast(bufSize, new (PARSERHEAP()) SQLLargeInt(PARSERHEAP(), TRUE, FALSE));
 				  $$ = new (PARSERHEAP()) LOBupdate( bufAddr, NULL,bufSize, LOBoper::BUFFER_, TRUE);
 				}
 
@@ -14206,7 +14190,7 @@ rowwise_rowset_info : '(' TOK_MAX TOK_ROWSET TOK_SIZE literal ','
 			  {
 			    ((DynamicParam*)irs)->setDPRowsetForInputSize();
 			    irs = new (PARSERHEAP()) 
-			      Cast(irs, new (PARSERHEAP()) SQLInt(TRUE, FALSE));
+			      Cast(irs, new (PARSERHEAP()) SQLInt(PARSERHEAP(), TRUE, FALSE));
 			  }
 			else
 			  YYERROR;
@@ -14215,7 +14199,7 @@ rowwise_rowset_info : '(' TOK_MAX TOK_ROWSET TOK_SIZE literal ','
 			  {
 			    ((DynamicParam*)irml)->setRowwiseRowsetInputMaxRowlen();
 			    irml = new (PARSERHEAP()) 
-			      Cast(irml, new (PARSERHEAP()) SQLInt(TRUE, FALSE));
+			      Cast(irml, new (PARSERHEAP()) SQLInt(PARSERHEAP(), TRUE, FALSE));
 			  }
 			else
 			  YYERROR;
@@ -14224,7 +14208,7 @@ rowwise_rowset_info : '(' TOK_MAX TOK_ROWSET TOK_SIZE literal ','
 			  {
 			    ((DynamicParam *)rrb)->setRowwiseRowsetInputBuffer();
 			    rrb = new (PARSERHEAP()) 
-			      Cast(rrb, new (PARSERHEAP()) SQLLargeInt(TRUE, FALSE));
+			      Cast(rrb, new (PARSERHEAP()) SQLLargeInt(PARSERHEAP(), TRUE, FALSE));
 			  }
 			else
 			  YYERROR;
@@ -23887,7 +23871,7 @@ schema_definition : TOK_CREATE schema_class TOK_SCHEMA schema_name_clause char_s
 
                     // allocate the CharType object and pass it to StmDDLCreateSchema. 
                     // StmtDDLCreateSchema will free the memory there.
-                    CharType *charType = new CharType(CharType::LiteralSchema, 
+                    CharType *charType = new (PARSERHEAP()) CharType(PARSERHEAP(), CharType::LiteralSchema, 
                                                       0, 0, FALSE, FALSE, FALSE, FALSE, FALSE,
                                                       $5, $6.collation_, $6.coercibility_ );
                                                          
@@ -23911,7 +23895,7 @@ schema_definition : TOK_CREATE schema_class TOK_SCHEMA TOK_IF TOK_NOT TOK_EXISTS
 
                       // allocate the CharType object and pass it to StmDDLCreateSchema. 
                       // StmtDDLCreateSchema will free the memory there.
-                      CharType *charType = new CharType(CharType::LiteralSchema,
+                      CharType *charType = new (PARSERHEAP()) CharType(PARSERHEAP(), CharType::LiteralSchema,
                                                         0, 0, FALSE, FALSE, FALSE, FALSE, FALSE,
                                                         $8, $9.collation_, $9.coercibility_ );
 
@@ -24524,7 +24508,7 @@ routine_predef_type : predef_type
                    {
                      NumericType * nt = (NumericType*)$1;
                      $$ = new (PARSERHEAP()) 
-                       SQLSmall(NOT nt->isUnsigned(), $1->supportsSQLnull());
+                       SQLSmall(PARSERHEAP(), NOT nt->isUnsigned(), $1->supportsSQLnull());
                    }
                }
 
@@ -25550,7 +25534,7 @@ column_definition : qualified_name data_type optional_column_attributes
                                       if ((type->getTypeQualifier() == NA_DATETIME_TYPE) &&
                                           (type->getPrecision() == SQLDTCODE_DATE))
                                         {
-                                          type = new (PARSERHEAP()) SQLTimestamp(TRUE, 0, PARSERHEAP());
+                                          type = new (PARSERHEAP()) SQLTimestamp(PARSERHEAP(), TRUE, 0);
                                         }
 
                                       // change FLOAT(p) to NUMERIC(p)
@@ -25564,13 +25548,13 @@ column_definition : qualified_name data_type optional_column_attributes
 
                                           if (numPrec > MAX_HARDWARE_SUPPORTED_SIGNED_NUMERIC_PRECISION)
                                             type = new (PARSERHEAP()) 
-                                              SQLBigNum(numPrec, 0, TRUE, TRUE, TRUE, NULL);
+                                              SQLBigNum(PARSERHEAP(), numPrec, 0, TRUE, TRUE, TRUE);
                                           else
                                             {
                                               const Int16 DisAmbiguate = 0; // added for 64bit project
 
                                               type = new (PARSERHEAP()) 
-                                                SQLNumeric(TRUE, numPrec, 0, DisAmbiguate);
+                                                SQLNumeric(PARSERHEAP(), TRUE, numPrec, 0, DisAmbiguate);
                                             }
                                         }
                                     }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/35a656be/core/sql/qmscommon/Range.cpp
----------------------------------------------------------------------
diff --git a/core/sql/qmscommon/Range.cpp b/core/sql/qmscommon/Range.cpp
index c20fd10..e09a72b 100644
--- a/core/sql/qmscommon/Range.cpp
+++ b/core/sql/qmscommon/Range.cpp
@@ -635,7 +635,7 @@ IntervalType* RangeSpec::parseIntervalTypeText(const char* text) const
     trailingField = leadingField;  // Only one field specified.
 
   // Construct and return the interval type.
-  return new(mvqrHeap_) SQLInterval(TRUE, leadingField, lp, trailingField, fp, mvqrHeap_);
+  return new(mvqrHeap_) SQLInterval(mvqrHeap_, TRUE, leadingField, lp, trailingField, fp);
 }
 
 void RangeSpec::addDenormalizedSubrange(const char* typeText,
@@ -657,36 +657,36 @@ void RangeSpec::addDenormalizedSubrange(const char* typeText,
 
   // Parse the type text and create the corresponding type object.
   if (!strncmp(typeText, "INTEGER", typeNameLen))
-    numType = new(mvqrHeap_) SQLInt(isSigned, TRUE/*don't care*/, mvqrHeap_);
+    numType = new(mvqrHeap_) SQLInt(mvqrHeap_, isSigned, TRUE/*don't care*/);
   else if (!strncmp(typeText, "SMALLINT", typeNameLen))
-    numType = new(mvqrHeap_) SQLSmall(isSigned, TRUE/*don't care*/, mvqrHeap_);
+    numType = new(mvqrHeap_) SQLSmall(mvqrHeap_, isSigned, TRUE/*don't care*/);
   else if (!strncmp(typeText, "NUMERIC", typeNameLen))
     {
       getPrecScale(typeText + typeNameLen, prec, scale);
-      numType = new(mvqrHeap_) SQLNumeric(isSigned, prec, scale,
+      numType = new(mvqrHeap_) SQLNumeric(mvqrHeap_, isSigned, prec, scale,
                                           DisAmbiguate); // added for 64bit proj.
     }
   else if (!strncmp(typeText, "DECIMAL", typeNameLen))
     {
       getPrecScale(typeText + typeNameLen, prec, scale);
-      numType = new(mvqrHeap_) SQLNumeric(isSigned, prec, scale,
+      numType = new(mvqrHeap_) SQLNumeric(mvqrHeap_, isSigned, prec, scale,
                                           DisAmbiguate); // added for 64bit proj.
     }
   else if (!strncmp(typeText, "REAL", typeNameLen))
-    numType = new(mvqrHeap_) SQLReal(TRUE/*don't care*/, mvqrHeap_);
+    numType = new(mvqrHeap_) SQLReal(mvqrHeap_, TRUE/*don't care*/);
   else if (!strncmp(typeText, "DATE", typeNameLen))
-    dtType = new(mvqrHeap_) SQLDate(TRUE/*don't care*/, mvqrHeap_);
+    dtType = new(mvqrHeap_) SQLDate(mvqrHeap_, TRUE/*don't care*/);
   else if (!strncmp(typeText, "TIME", typeNameLen))
     {
       // Only one value (fractional seconds precision) will be given for this.
       getPrecScale(typeText + typeNameLen, prec, scale);
-      dtType = new(mvqrHeap_) SQLTime(TRUE/*don't care*/, prec, mvqrHeap_);
+      dtType = new(mvqrHeap_) SQLTime(mvqrHeap_, TRUE/*don't care*/, prec);
     }
   else if (!strncmp(typeText, "TIMESTAMP", typeNameLen))
     {
       // Only one value (fractional seconds precision) will be given for this.
       getPrecScale(typeText + typeNameLen, prec, scale);
-      dtType = new(mvqrHeap_) SQLTimestamp(TRUE/*don't care*/, prec, mvqrHeap_);
+      dtType = new(mvqrHeap_) SQLTimestamp(mvqrHeap_, TRUE/*don't care*/, prec);
     }
   else if (!strncmp(typeText, "INTERVAL", typeNameLen))
     intvlType = parseIntervalTypeText(typeText + typeNameLen);

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/35a656be/core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp b/core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp
index 5b407cb..e7a9f5b 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp
@@ -4692,7 +4692,6 @@ short CmpSeabaseDDL::updateSeabaseMDTable(
     {
       useRWRS = TRUE;
     }
-
   Int32 objOwnerID = (tableInfo) ? tableInfo->objOwnerID : SUPER_USER;
   Int32 schemaOwnerID = (tableInfo) ? tableInfo->schemaOwnerID : SUPER_USER;
   Int64 objectFlags = (tableInfo) ? tableInfo->objectFlags : 0;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/35a656be/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp b/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
index 7b6e9eb..c14ad0e 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
@@ -2021,14 +2021,14 @@ short CmpSeabaseDDL::createSeabaseTable2(
   NABoolean implicitPK = FALSE;
 
   NAString syskeyColName("SYSKEY");
-  SQLLargeInt * syskeyType = new(STMTHEAP) SQLLargeInt(TRUE, FALSE, STMTHEAP);
+  SQLLargeInt * syskeyType = new(STMTHEAP) SQLLargeInt(STMTHEAP, TRUE, FALSE);
   ElemDDLColDef syskeyColDef(NULL, &syskeyColName, syskeyType, NULL,
                              STMTHEAP);
   ElemDDLColRef edcr("SYSKEY", COM_ASCENDING_ORDER);
   syskeyColDef.setColumnClass(COM_SYSTEM_COLUMN);
 
   NAString hbRowIdColName("ROW_ID");
-  SQLVarChar * hbRowIdType = new(STMTHEAP) SQLVarChar(1000, FALSE);
+  SQLVarChar * hbRowIdType = new(STMTHEAP) SQLVarChar(STMTHEAP, 1000, FALSE);
   ElemDDLColDef hbRowIdColDef(NULL, &hbRowIdColName, hbRowIdType, NULL,
                               STMTHEAP);
   ElemDDLColRef hbcr("ROW_ID", COM_ASCENDING_ORDER);
@@ -2188,7 +2188,7 @@ short CmpSeabaseDDL::createSeabaseTable2(
         }
 
       NAString saltColName(ElemDDLSaltOptionsClause::getSaltSysColName());
-      SQLInt * saltType = new(STMTHEAP) SQLInt(FALSE, FALSE, STMTHEAP);
+      SQLInt * saltType = new(STMTHEAP) SQLInt(STMTHEAP, FALSE, FALSE);
       ElemDDLColDefault *saltDef = 
         new(STMTHEAP) ElemDDLColDefault(
              ElemDDLColDefault::COL_COMPUTED_DEFAULT);

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/35a656be/core/sql/ustat/hs_cli.cpp
----------------------------------------------------------------------
diff --git a/core/sql/ustat/hs_cli.cpp b/core/sql/ustat/hs_cli.cpp
index acdbb7e..55b27ee 100644
--- a/core/sql/ustat/hs_cli.cpp
+++ b/core/sql/ustat/hs_cli.cpp
@@ -3224,7 +3224,8 @@ template <class T> class HSBin : public SQLInt {
 public:
 
   HSBin(Lng32 id)
-    : id_(id) {}
+    : SQLInt(NULL)
+    , id_(id) {}
   ~HSBin() {}
   double encode(void *data) const
   {  return *((T *)data);  }
@@ -3242,7 +3243,8 @@ class HSLargeint : public SQLInt {
 public:
 
   HSLargeint(Lng32 id)
-    : id_(id) {}
+    : SQLInt(NULL)
+    , id_(id) {}
   ~HSLargeint() {}
   double encode(void *data) const
   {  return convertInt64ToDouble(*((Int64 *)data)); }
@@ -3258,7 +3260,7 @@ class HSDate : public SQLDate {
 
 public:
 
-  HSDate() : SQLDate(FALSE /*nullflag*/) {}
+  HSDate() : SQLDate(NULL, FALSE /*nullflag*/) {}
   double encode(void *data) const
   {
     ULng32 w[4];
@@ -3283,12 +3285,12 @@ NAType* ConstructNumericType( Long addr
   NAType *type;
   switch(length) {
   case 1:
-    type = new(currHeap) SQLTiny(allowNeg, nullflag, currHeap);
+    type = new(currHeap) SQLTiny(currHeap, allowNeg, nullflag);
     break;
   case 2:
     if (!ALIGN2(addr))
       {
-        type = new(currHeap) SQLSmall(allowNeg, nullflag, currHeap);
+        type = new(currHeap) SQLSmall(currHeap, allowNeg, nullflag);
         break;
       }
     if (allowNeg)  // 2-byte aligned
@@ -3299,7 +3301,7 @@ NAType* ConstructNumericType( Long addr
   case 4:
     if (!ALIGN4(addr))
       {
-        type = new(currHeap) SQLInt(allowNeg, nullflag, currHeap);
+        type = new(currHeap) SQLInt(currHeap, allowNeg, nullflag);
         break;
       }
     if (allowNeg)  // 4-byte aligned
@@ -3310,16 +3312,16 @@ NAType* ConstructNumericType( Long addr
   case 8:
     if (!ALIGN8(addr))
       {
-        type = new(currHeap) SQLLargeInt(allowNeg, nullflag);
+        type = new(currHeap) SQLLargeInt(currHeap, allowNeg, nullflag);
         break;
       }
     if (allowNeg)  // 8-byte aligned
       type = new(currHeap) HSLargeint(id);
     else
-      type = new(currHeap) SQLLargeInt(allowNeg, nullflag);
+      type = new(currHeap) SQLLargeInt(currHeap, allowNeg, nullflag);
     break;
   default:
-    type = new(currHeap) SQLNumeric(length, precision, scale, allowNeg, nullflag, currHeap);
+    type = new(currHeap) SQLNumeric(currHeap, length, precision, scale, allowNeg, nullflag);
     break;
   }
   return type;
@@ -3435,29 +3437,29 @@ Lng32 HSCursor::buildNAType()
 	  //datatype = ((precision <= SQL_REAL_PRECISION) ?
 	  //           REC_FLOAT32 : REC_FLOAT64);
 	  if (datatype == REC_FLOAT32)
-	    type = new(heap_) SQLReal(nullflag, NULL, precision);
+	    type = new(heap_) SQLReal(heap_, nullflag, precision);
 	  else  if (datatype == REC_FLOAT64)
-	    type = new(heap_) SQLDoublePrecision(nullflag, NULL, precision);
+	    type = new(heap_) SQLDoublePrecision(heap_, nullflag, precision);
 	  break;
         //
         //
         case REC_DECIMAL_UNSIGNED:
-          type = new(heap_) SQLDecimal(length, scale, FALSE, nullflag, heap_);
+          type = new(heap_) SQLDecimal(heap_, length, scale, FALSE, nullflag);
           break;
         case REC_DECIMAL_LSE:
-          type = new(heap_) SQLDecimal(length, scale, TRUE, nullflag, heap_);
+          type = new(heap_) SQLDecimal(heap_, length, scale, TRUE, nullflag);
           break;
         case REC_NUM_BIG_UNSIGNED:
-          type = new(heap_) SQLBigNum(precision, scale, FALSE, FALSE, nullflag, heap_);
+          type = new(heap_) SQLBigNum(heap_, precision, scale, FALSE, FALSE, nullflag);
           break;
         case REC_NUM_BIG_SIGNED:
-          type = new(heap_) SQLBigNum(precision, scale, FALSE, TRUE, nullflag, heap_);
+          type = new(heap_) SQLBigNum(heap_, precision, scale, FALSE, TRUE, nullflag);
           break;
          //
         //
         case REC_BYTE_F_ASCII:
         case REC_NCHAR_F_UNICODE:
-          type = new(heap_) SQLChar(    length
+          type = new(heap_) SQLChar(heap_,    length
                              ,   nullflag
                              #ifdef FULL_CHARSET_SUPPORT  //##NCHAR: to be done!
                              ,   colDesc_[i].upshifted
@@ -3470,7 +3472,7 @@ Lng32 HSCursor::buildNAType()
           break;
         case REC_BYTE_V_ASCII:
         case REC_NCHAR_V_UNICODE:
-          type = new(heap_) SQLVarChar( length
+          type = new(heap_) SQLVarChar(heap_,  length
                              ,   nullflag
                              #ifdef FULL_CHARSET_SUPPORT  //##NCHAR: to be done!
                              ,   colDesc_[i].upshifted
@@ -3486,14 +3488,14 @@ Lng32 HSCursor::buildNAType()
 	  // be encoded correctly.
 	case REC_DATETIME:
 	case REC_INTERVAL:
-          type = new(heap_) SQLChar(    length
+          type = new(heap_) SQLChar(heap_,    length
                              ,   nullflag
                             );
 
 	  break;
 
         case REC_BOOLEAN:
-          type = new(heap_) SQLBooleanNative(nullflag,heap_);
+          type = new(heap_) SQLBooleanNative(heap_, nullflag);
           break;
 
         default: