trafodion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ansha...@apache.org
Subject [06/10] incubator-trafodion git commit: metadata access performance improvement for accessing traf objects
Date Tue, 02 Aug 2016 23:24:38 GMT
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/optimizer/NAColumn.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/NAColumn.cpp b/core/sql/optimizer/NAColumn.cpp
index 9a726a8..812c951 100644
--- a/core/sql/optimizer/NAColumn.cpp
+++ b/core/sql/optimizer/NAColumn.cpp
@@ -39,6 +39,7 @@
 #include "NATable.h"
 #include "Sqlcomp.h"
 #include "ex_error.h"
+#include "TrafDDLdesc.h"
 
 // -----------------------------------------------------------------------
 // Can't be inline because then circular #include-dependencies
@@ -154,17 +155,16 @@ const QualifiedName& NAColumn::getNotNullConstraintName() const
 
 // warning elimination (removed "inline")
 static NAString makeTableName(const NATable *table,
-			      const columns_desc_struct *column_desc)
+			      const TrafColumnsDesc *column_desc)
 {
   return NAString(
-	      table ?
-		table->getTableName().getQualifiedNameAsAnsiString().data() :
-	      column_desc->tablename ?
-		column_desc->tablename : "");
+       table ?
+       table->getTableName().getQualifiedNameAsAnsiString().data() : "");
 }
+
 // warning elimination (removed "inline")
 static NAString makeColumnName(const NATable *table,
-			       const columns_desc_struct *column_desc)
+			       const TrafColumnsDesc *column_desc)
 {
   NAString nam(makeTableName(table, column_desc));
   if (!nam.isNull()) nam += ".";
@@ -173,9 +173,9 @@ static NAString makeColumnName(const NATable *table,
 }
 
 // -----------------------------------------------------------------------
-// Method for creating NAType from desc_struct.
+// Method for creating NAType from TrafDesc.
 // -----------------------------------------------------------------------
-NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
+NABoolean NAColumn::createNAType(TrafColumnsDesc *column_desc	/*IN*/,
 				 const NATable *table  		/*IN*/,
 				 NAType *&type       		/*OUT*/,
 				 NAMemory *heap			/*IN*/,
@@ -187,7 +187,7 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
   //
   #define REC_INTERVAL REC_MIN_INTERVAL
 
-  DataType datatype = column_desc->datatype;
+  Int16 datatype = column_desc->datatype;
   if (REC_MIN_INTERVAL <= datatype && datatype <= REC_MAX_INTERVAL)
     datatype = REC_INTERVAL;
 
@@ -195,7 +195,7 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
 
   if ( DFS2REC::isAnyCharacter(column_desc->datatype) )
   {
-     if ( CharInfo::isCharSetSupported(column_desc->character_set) == FALSE ) {
+     if ( CharInfo::isCharSetSupported(column_desc->characterSet()) == FALSE ) {
        if (!errorCode)
        {
          *CmpCommon::diags() << DgSqlCode(-4082)
@@ -208,7 +208,7 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
        return TRUE; // error
      }
 
-     if ( CharInfo::is_NCHAR_MP(column_desc->character_set) )
+     if ( CharInfo::is_NCHAR_MP(column_desc->characterSet()) )
         charCount /= SQL_DBCHAR_SIZE;
   }
 
@@ -217,7 +217,7 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
 
     case REC_BPINT_UNSIGNED :
       type = new (heap)
-      SQLBPInt(column_desc->precision, column_desc->null_flag, FALSE, heap);
+      SQLBPInt(column_desc->precision, column_desc->isNullable(), FALSE, heap);
       break;
 
     case REC_BIN8_SIGNED:
@@ -227,13 +227,13 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
 		   column_desc->precision,
 		   column_desc->scale,
 		   TRUE,
-		   column_desc->null_flag,
+		   column_desc->isNullable(),
                    heap
 		   );
       else
 	type = new (heap)
 	SQLTiny(TRUE,
-		 column_desc->null_flag,
+		 column_desc->isNullable(),
                  heap
 		 );
       break;
@@ -244,13 +244,13 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
 		   column_desc->precision,
 		   column_desc->scale,
 		   FALSE,
-		   column_desc->null_flag,
+		   column_desc->isNullable(),
                    heap
 		   );
       else
 	type = new (heap)
 	SQLTiny(FALSE,
-		 column_desc->null_flag,
+		 column_desc->isNullable(),
                  heap
 		 );
       break;
@@ -262,13 +262,13 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
 		   column_desc->precision,
 		   column_desc->scale,
 		   TRUE,
-		   column_desc->null_flag,
+		   column_desc->isNullable(),
                    heap
 		   );
       else
 	type = new (heap)
 	SQLSmall(TRUE,
-		 column_desc->null_flag,
+		 column_desc->isNullable(),
                  heap
 		 );
       break;
@@ -279,13 +279,13 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
 		   column_desc->precision,
 		   column_desc->scale,
 		   FALSE,
-		   column_desc->null_flag,
+		   column_desc->isNullable(),
                    heap
 		   );
       else
 	type = new (heap)
 	SQLSmall(FALSE,
-		 column_desc->null_flag,
+		 column_desc->isNullable(),
                  heap
 		 );
       break;
@@ -297,13 +297,13 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
 		   column_desc->precision,
 		   column_desc->scale,
 		   TRUE,
-		   column_desc->null_flag,
+		   column_desc->isNullable(),
                    heap
 		   );
       else
 	type = new (heap)
 	SQLInt(TRUE,
-	       column_desc->null_flag,
+	       column_desc->isNullable(),
                heap
 	       );
       break;
@@ -314,13 +314,13 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
 		   column_desc->precision,
 		   column_desc->scale,
 		   FALSE,
-		   column_desc->null_flag,
+		   column_desc->isNullable(),
                    heap
 		   );
       else
 	type = new (heap)
 	SQLInt(FALSE,
-	       column_desc->null_flag,
+	       column_desc->isNullable(),
                heap
 	       );
       break;
@@ -331,13 +331,13 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
 		   column_desc->precision,
 		   column_desc->scale,
 		   TRUE,
-		   column_desc->null_flag,
+		   column_desc->isNullable(),
                    heap
 		   );
       else
 	type = new (heap)
 	SQLLargeInt(TRUE,
-		    column_desc->null_flag,
+		    column_desc->isNullable(),
                     heap
 		    );
       break;
@@ -348,13 +348,13 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
 		   column_desc->precision,
 		   column_desc->scale,
 		   FALSE,
-		   column_desc->null_flag,
+		   column_desc->isNullable(),
                    heap
 		   );
       else
 	type = new (heap)
         SQLLargeInt(FALSE,
-		    column_desc->null_flag,
+		    column_desc->isNullable(),
                     heap
 		    );
       break;
@@ -363,7 +363,7 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
 	SQLDecimal(column_desc->length,
 		   column_desc->scale,
 		   FALSE,
-		   column_desc->null_flag,
+		   column_desc->isNullable(),
                    heap
 		   );
       break;
@@ -372,7 +372,7 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
 	SQLDecimal(column_desc->length,
 		   column_desc->scale,
 		   TRUE,
-		   column_desc->null_flag,
+		   column_desc->isNullable(),
                    heap
 		   );
       break;
@@ -382,7 +382,7 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
 		  column_desc->scale,
 		  TRUE, // is a real bignum
 		  FALSE,
-		  column_desc->null_flag,
+		  column_desc->isNullable(),
 		  heap
 		  );
       break;
@@ -392,65 +392,65 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
 		  column_desc->scale,
 		  TRUE, // is a real bignum
 		  TRUE,
-		  column_desc->null_flag,
+		  column_desc->isNullable(),
 		  heap
 		  );
       break;
 
     case REC_FLOAT32:
       type = new (heap)
-	SQLReal(column_desc->null_flag, heap, column_desc->precision);
+	SQLReal(column_desc->isNullable(), heap, column_desc->precision);
       break;
 
     case REC_FLOAT64:
       type = new (heap)
-	SQLDoublePrecision(column_desc->null_flag, heap, column_desc->precision);
+	SQLDoublePrecision(column_desc->isNullable(), heap, column_desc->precision);
       break;
 
     case REC_BYTE_F_DOUBLE:
       charCount /= SQL_DBCHAR_SIZE;	    // divide the storage length by 2
       type = new (heap)
 	SQLChar(charCount,
-		column_desc->null_flag,
-		column_desc->upshift,
-		column_desc->caseinsensitive,
+		column_desc->isNullable(),
+		column_desc->isUpshifted(),
+		column_desc->isCaseInsensitive(),
 		FALSE,
-		column_desc->character_set,
-		column_desc->collation_sequence,
+		column_desc->characterSet(),
+		column_desc->collationSequence(),
 		CharInfo::IMPLICIT
 		);
       break;
 
     case REC_BYTE_F_ASCII:
-      if (column_desc->character_set == CharInfo::UTF8 ||
-          (column_desc->character_set == CharInfo::SJIS &&
-           column_desc->encoding_charset == CharInfo::SJIS))
+      if (column_desc->characterSet() == CharInfo::UTF8 ||
+          (column_desc->characterSet() == CharInfo::SJIS &&
+           column_desc->encodingCharset() == CharInfo::SJIS))
       {
-        Lng32 maxBytesPerChar = CharInfo::maxBytesPerChar(column_desc->character_set);
+        Lng32 maxBytesPerChar = CharInfo::maxBytesPerChar(column_desc->characterSet());
         Lng32 sizeInChars = charCount ;  // Applies when CharLenUnit == BYTES
         if ( column_desc->precision > 0 )
            sizeInChars = column_desc->precision;
         type = new (heap)
 	SQLChar(CharLenInfo(sizeInChars, charCount/*in_bytes*/),
-		column_desc->null_flag,
-		column_desc->upshift,
-		column_desc->caseinsensitive,
+		column_desc->isNullable(),
+		column_desc->isUpshifted(),
+		column_desc->isCaseInsensitive(),
 		FALSE, // varLenFlag
-		column_desc->character_set,
-		column_desc->collation_sequence,
+		column_desc->characterSet(),
+		column_desc->collationSequence(),
 		CharInfo::IMPLICIT, // Coercibility
-		column_desc->encoding_charset
+		column_desc->encodingCharset()
 		);
       }
       else // keep the old behavior
       type = new (heap)
 	SQLChar(charCount,
-		column_desc->null_flag,
-		column_desc->upshift,
-		column_desc->caseinsensitive,
+		column_desc->isNullable(),
+		column_desc->isUpshifted(),
+		column_desc->isCaseInsensitive(),
 		FALSE,
-		column_desc->character_set,
-		column_desc->collation_sequence,
+		column_desc->characterSet(),
+		column_desc->collationSequence(),
 		CharInfo::IMPLICIT
 		);
       break;
@@ -459,32 +459,32 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
       charCount /= SQL_DBCHAR_SIZE;	    // divide the storage length by 2
       // fall thru
     case REC_BYTE_V_ASCII:
-      if (column_desc->character_set == CharInfo::SJIS ||
-          column_desc->character_set == CharInfo::UTF8)
+      if (column_desc->characterSet() == CharInfo::SJIS ||
+          column_desc->characterSet() == CharInfo::UTF8)
       {
-        Lng32 maxBytesPerChar = CharInfo::maxBytesPerChar(column_desc->character_set);
+        Lng32 maxBytesPerChar = CharInfo::maxBytesPerChar(column_desc->characterSet());
         Lng32 sizeInChars = charCount ;  // Applies when CharLenUnit == BYTES
         if ( column_desc->precision > 0 )
            sizeInChars = column_desc->precision;
         type = new (heap)
 	SQLVarChar(CharLenInfo(sizeInChars, charCount/*in_bytes*/),
-		   column_desc->null_flag,
-		   column_desc->upshift,
-		   column_desc->caseinsensitive,
-		   column_desc->character_set,
-		   column_desc->collation_sequence,
+		   column_desc->isNullable(),
+		   column_desc->isUpshifted(),
+		   column_desc->isCaseInsensitive(),
+		   column_desc->characterSet(),
+		   column_desc->collationSequence(),
 		   CharInfo::IMPLICIT, // Coercibility
-		   column_desc->encoding_charset
+		   column_desc->encodingCharset()
 		   );
       }
       else // keep the old behavior
       type = new (heap)
 	SQLVarChar(charCount,
-		   column_desc->null_flag,
-		   column_desc->upshift,
-		   column_desc->caseinsensitive,
-		   column_desc->character_set,
-		   column_desc->collation_sequence,
+		   column_desc->isNullable(),
+		   column_desc->isUpshifted(),
+		   column_desc->isCaseInsensitive(),
+		   column_desc->characterSet(),
+		   column_desc->collationSequence(),
 		   CharInfo::IMPLICIT
 		   );
       break;
@@ -493,47 +493,47 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
       type = new (heap)
 	SQLLongVarChar(charCount,
 		       FALSE,
-		       column_desc->null_flag,
-		       column_desc->upshift,
-		       column_desc->caseinsensitive,
-		       column_desc->character_set,
-		       column_desc->collation_sequence,
+		       column_desc->isNullable(),
+		       column_desc->isUpshifted(),
+		       column_desc->isCaseInsensitive(),
+		       column_desc->characterSet(),
+		       column_desc->collationSequence(),
 		       CharInfo::IMPLICIT
 		      );
       break;
     case REC_DATETIME:
       type = DatetimeType::constructSubtype(
-					    column_desc->null_flag,
-					    column_desc->datetimestart,
-					    column_desc->datetimeend,
+					    column_desc->isNullable(),
+					    column_desc->datetimeStart(),
+					    column_desc->datetimeEnd(),
 					    column_desc->datetimefractprec,
 					    heap
 					    );
       CMPASSERT(type);
       if (!type->isSupportedType())
 	{
-         column_desc->defaultClass = COM_NO_DEFAULT;           // can't set a default
for these, either.
+          column_desc->setDefaultClass(COM_NO_DEFAULT);           // can't set a default
for these, either.
 	  // 4030 Column is an unsupported combination of datetime fields
-     if (!errorCode)
-     {
-         *CmpCommon::diags() << DgSqlCode(4030)
-	    << DgColumnName(makeColumnName(table, column_desc))
-	    << DgInt0(column_desc->datetimestart)
-	    << DgInt1(column_desc->datetimeend)
-	    << DgInt2(column_desc->datetimefractprec);
-     }
-     else
-     {
-       *errorCode = 4030;
-     }
+          if (!errorCode)
+            {
+              *CmpCommon::diags() << DgSqlCode(4030)
+                                  << DgColumnName(makeColumnName(table, column_desc))
+                                  << DgInt0(column_desc->datetimeStart())
+                                  << DgInt1(column_desc->datetimeEnd())
+                                  << DgInt2(column_desc->datetimefractprec);
+            }
+          else
+            {
+              *errorCode = 4030;
+            }
 	}
       break;
     case REC_INTERVAL:
       type = new (heap)
-         SQLInterval(column_desc->null_flag,
-		    column_desc->datetimestart,
+         SQLInterval(column_desc->isNullable(),
+		    column_desc->datetimeStart(),
 		    column_desc->intervalleadingprec,
-		    column_desc->datetimeend,
+		    column_desc->datetimeEnd(),
 		    column_desc->datetimefractprec,
                     heap
 		    );
@@ -542,7 +542,7 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
          return TRUE;                                            // error
       if (!type->isSupportedType())
       {
-        column_desc->defaultClass = COM_NO_DEFAULT;           // can't set a default for
these, either.
+        column_desc->setDefaultClass(COM_NO_DEFAULT);           // can't set a default
for these, either.
         if (!errorCode)
           *CmpCommon::diags() << DgSqlCode(3044) << DgString0(column_desc->colname);
         else
@@ -553,17 +553,17 @@ NABoolean NAColumn::createNAType(columns_desc_struct *column_desc	/*IN*/,
     case REC_BLOB :
       type = new (heap)
 	SQLBlob(column_desc->precision, Lob_Invalid_Storage,
-		column_desc->null_flag);
+		column_desc->isNullable());
       break;
 
     case REC_CLOB :
       type = new (heap)
 	SQLClob(column_desc->precision, Lob_Invalid_Storage,
-		column_desc->null_flag);
+		column_desc->isNullable());
       break;
 
     case REC_BOOLEAN :
-      type = new (heap) SQLBooleanNative(column_desc->null_flag);
+      type = new (heap) SQLBooleanNative(column_desc->isNullable());
       break;
 
     default:

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/optimizer/NAColumn.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/NAColumn.h b/core/sql/optimizer/NAColumn.h
index 2c13c57..4c3d928 100644
--- a/core/sql/optimizer/NAColumn.h
+++ b/core/sql/optimizer/NAColumn.h
@@ -54,7 +54,7 @@ class CheckConstraint;
 class DomainDesc;
 class NATable;
 class NAType;
-struct columns_desc_struct;
+class TrafColumnsDesc;
 
 enum ColumnClass  { SYSTEM_COLUMN, USER_COLUMN, USER_AND_SYSTEM_COLUMNS };
 enum SortOrdering { NOT_ORDERED = 0, ASCENDING = +1, DESCENDING = -1 };
@@ -328,7 +328,7 @@ public:
   inline void setMvSystemAddedColumn() { mvSystemAddedColumn_ = TRUE; }
   inline NABoolean isMvSystemAddedColumn() const { return mvSystemAddedColumn_; }
 
-  static NABoolean createNAType(columns_desc_struct *column_desc	/*IN*/,
+  static NABoolean createNAType(TrafColumnsDesc *column_desc	/*IN*/,
 				const NATable *table  		/*IN*/,
 				NAType *&type       		/*OUT*/,
 				NAMemory *heap			/*IN*/,

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/optimizer/NAFileSet.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/NAFileSet.cpp b/core/sql/optimizer/NAFileSet.cpp
index ea6b840..3f2b699 100644
--- a/core/sql/optimizer/NAFileSet.cpp
+++ b/core/sql/optimizer/NAFileSet.cpp
@@ -76,7 +76,7 @@ NAFileSet::NAFileSet(const QualifiedName & fileSetName,
 		     NABoolean isVolatile,
 		     NABoolean inMemObjectDefn,
                      Int64 indexUID,
-                     desc_struct *keysDesc,
+                     TrafDesc *keysDesc,
                      HHDFSTableStats *hHDFSTableStats,
                      Lng32 numSaltPartns,
                      NAList<HbaseCreateOption*>* hbaseCreateOptions,

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/optimizer/NAFileSet.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/NAFileSet.h b/core/sql/optimizer/NAFileSet.h
index ea4414e..92b1c3c 100644
--- a/core/sql/optimizer/NAFileSet.h
+++ b/core/sql/optimizer/NAFileSet.h
@@ -53,7 +53,7 @@ class NAFileSetList;
 // Forward declarations
 // -----------------------------------------------------------------------
 class PartitioningFunction;
-struct desc_struct;
+class TrafDesc;
 class HHDFSTableStats;
 class HbaseCreateOption;
 
@@ -117,7 +117,7 @@ public:
 	    NABoolean isVolatile,
 	    NABoolean inMemObjectDefn,
             Int64 indexUID,
-            desc_struct *keysDesc,
+            TrafDesc *keysDesc,
             HHDFSTableStats *hHDFSTableStats,
             Lng32 numSaltPartns,
             NAList<HbaseCreateOption*>* hbaseCreateOptions,
@@ -153,8 +153,8 @@ public:
   const NAColumnArray & getIndexKeyColumns() const
                                               { return indexKeyColumns_; }
 
-  const desc_struct * getKeysDesc() const { return keysDesc_; }
-  desc_struct * getKeysDesc() { return keysDesc_; }
+  const TrafDesc * getKeysDesc() const { return keysDesc_; }
+  TrafDesc * getKeysDesc() { return keysDesc_; }
 
   Lng32 getCountOfFiles() const                  { return countOfFiles_; }
 
@@ -391,7 +391,7 @@ private:
   // uid for index
   Int64 indexUID_;
 
-  desc_struct *keysDesc_;  // needed for parallel label operations.
+  TrafDesc *keysDesc_;  // needed for parallel label operations.
 
   // ---------------------------------------------------------------------
   // Horizontal partitioning:

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/optimizer/NARoutine.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/NARoutine.cpp b/core/sql/optimizer/NARoutine.cpp
index bc8c504..e3d8571 100644
--- a/core/sql/optimizer/NARoutine.cpp
+++ b/core/sql/optimizer/NARoutine.cpp
@@ -32,7 +32,7 @@
 **************************************************************************
 */
 #include "BaseTypes.h"
-#include "desc.h"
+#include "TrafDDLdesc.h"
 #include "BindWA.h"
 #include "NAType.h"
 #include "NumericType.h"
@@ -343,29 +343,29 @@ NARoutine::NARoutine (const NARoutine &old, CollHeap *h)
 }
 
 NARoutine::NARoutine(const QualifiedName   &name,
-           const desc_struct    *routine_desc,
+           const TrafDesc    *routine_desc,
            BindWA                *bindWA,
            Int32                 &errorOccurred,
            NAMemory              *heap)
     : name_                   (name, heap)
     , hashKey_                (name, heap) 
-    , language_               (routine_desc->body.routine_desc.language)
-    , UDRType_                (routine_desc->body.routine_desc.UDRType)
-    , sqlAccess_              (routine_desc->body.routine_desc.sqlAccess)
-    , transactionAttributes_  (routine_desc->body.routine_desc.transactionAttributes)
-    , maxResults_             (routine_desc->body.routine_desc.maxResults)
-    , stateAreaSize_          (routine_desc->body.routine_desc.stateAreaSize)
+    , language_               (routine_desc->routineDesc()->language)
+    , UDRType_                (routine_desc->routineDesc()->UDRType)
+    , sqlAccess_              (routine_desc->routineDesc()->sqlAccess)
+    , transactionAttributes_  (routine_desc->routineDesc()->transactionAttributes)
+    , maxResults_             (routine_desc->routineDesc()->maxResults)
+    , stateAreaSize_          (routine_desc->routineDesc()->stateAreaSize)
     , externalFile_           ("", heap)
-    , externalPath_           (routine_desc->body.routine_desc.libraryFileName, heap)
+    , externalPath_           (routine_desc->routineDesc()->libraryFileName, heap)
     , externalName_           ("", heap)
-    , librarySqlName_         (routine_desc->body.routine_desc.librarySqlName, COM_UNKNOWN_NAME,
FALSE, heap) //TODO
-    , signature_              (routine_desc->body.routine_desc.signature, heap)
-    , paramStyle_             (routine_desc->body.routine_desc.paramStyle)
+    , librarySqlName_         (routine_desc->routineDesc()->librarySqlName, COM_UNKNOWN_NAME,
FALSE, heap) //TODO
+    , signature_              (routine_desc->routineDesc()->signature, heap)
+    , paramStyle_             (routine_desc->routineDesc()->paramStyle)
     , paramStyleVersion_      (COM_ROUTINE_PARAM_STYLE_VERSION_1)
-    , isDeterministic_        (routine_desc->body.routine_desc.isDeterministic)
-    , isCallOnNull_           (routine_desc->body.routine_desc.isCallOnNull )
-    , isIsolate_              (routine_desc->body.routine_desc.isIsolate)
-    , externalSecurity_       (routine_desc->body.routine_desc.externalSecurity)
+    , isDeterministic_        (routine_desc->routineDesc()->isDeterministic)
+    , isCallOnNull_           (routine_desc->routineDesc()->isCallOnNull )
+    , isIsolate_              (routine_desc->routineDesc()->isIsolate)
+    , externalSecurity_       (routine_desc->routineDesc()->externalSecurity)
     , isExtraCall_            (FALSE) //TODO
     , hasOutParams_           (FALSE)
     , redefTime_              (0)  //TODO
@@ -379,33 +379,33 @@ NARoutine::NARoutine(const QualifiedName   &name,
     , isUniversal_            (0) // TODO
     , actionPosition_         (0) // TODO
     , executionMode_          (COM_ROUTINE_SAFE_EXECUTION)
-    , objectUID_              (routine_desc->body.routine_desc.objectUID)
-    , dllName_                (routine_desc->body.routine_desc.libraryFileName, heap)
-    , dllEntryPoint_          (routine_desc->body.routine_desc.externalName, heap)
+    , objectUID_              (routine_desc->routineDesc()->objectUID)
+    , dllName_                (routine_desc->routineDesc()->libraryFileName, heap)
+    , dllEntryPoint_          (routine_desc->routineDesc()->externalName, heap)
     , sasFormatWidth_         ("", heap) //TODO
     , systemName_             ("", heap) // TODO
     , dataSource_             ("", heap) // TODO
     , fileSuffix_             ("", heap) // TODO
     , schemaVersionOfRoutine_ ((COM_VERSION)0) // TODO
-    , objectOwner_            (routine_desc->body.routine_desc.owner)
-    , schemaOwner_            (routine_desc->body.routine_desc.schemaOwner)
+    , objectOwner_            (routine_desc->routineDesc()->owner)
+    , schemaOwner_            (routine_desc->routineDesc()->schemaOwner)
     , privInfo_               (NULL)
     , heap_(heap)
 {
   char parallelism[5];
-  CmGetComRoutineParallelismAsLit(routine_desc->body.routine_desc.parallelism, parallelism);
+  CmGetComRoutineParallelismAsLit(routine_desc->routineDesc()->parallelism, parallelism);
   comRoutineParallelism_ = ((char *)parallelism);
 
   if (paramStyle_ == COM_STYLE_JAVA_CALL)
   {
-    NAString extName(routine_desc->body.routine_desc.externalName);
+    NAString extName(routine_desc->routineDesc()->externalName);
     size_t pos=extName.last('.');
     externalName_ = extName(pos+1, (extName.length()-pos-1)); // method_name
     externalFile_ = extName.remove (pos); // package_name.class_name 
   }
   else
   {
-    externalName_ = routine_desc->body.routine_desc.externalName;
+    externalName_ = routine_desc->routineDesc()->externalName;
     if (language_ == COM_LANGUAGE_C ||
         language_ == COM_LANGUAGE_CPP)
       {
@@ -434,7 +434,7 @@ NARoutine::NARoutine(const QualifiedName   &name,
       } // if (len > 0)
   }
 
-  ComSInt32 colCount = routine_desc->body.routine_desc.paramsCount;
+  ComSInt32 colCount = routine_desc->routineDesc()->paramsCount;
   NAColumn *newCol = NULL;
   NAType   *newColType = NULL;
   extRoutineName_ = new (heap) ExtendedQualName( name_, heap );
@@ -475,16 +475,16 @@ NARoutine::NARoutine(const QualifiedName   &name,
   normalRowCost_.setIOTime( normIOCost < 0 ? csMinusOne  : normalIOCost);
   normalRowCost_.setMSGTime( normMsgCost < 0 ? csMinusOne  : normalMsgCost);
 
-  const desc_struct *params_desc_list  = routine_desc->body.routine_desc.params;
-  const columns_desc_struct *param_desc;
+  TrafDesc *params_desc_list  = routine_desc->routineDesc()->params;
+  TrafColumnsDesc *param_desc;
 
   int i = 0;
   while (params_desc_list)
   {
-    param_desc = &params_desc_list->body.columns_desc;
+    param_desc = params_desc_list->columnsDesc();
 
     // Create the new NAType.
-    if (NAColumn::createNAType((columns_desc_struct *)param_desc, (const NATable *)NULL,
newColType, heap_))
+    if (NAColumn::createNAType(param_desc->columnsDesc(), (const NATable *)NULL, newColType,
heap_))
       {
       errorOccurred = TRUE;
       return;
@@ -494,7 +494,7 @@ NARoutine::NARoutine(const QualifiedName   &name,
       memset(param_desc->colname, 0, 2);
     }
 
-    ComParamDirection colDirection = param_desc->paramDirection;
+    ComParamDirection colDirection = param_desc->paramDirection();
     
     // Create the new NAColumn and insert it into the NAColumnArray
     newCol = new (heap) NAColumn(
@@ -507,10 +507,10 @@ NARoutine::NARoutine(const QualifiedName   &name,
          , COM_NO_DEFAULT
          , NULL   // default value
          , UDRCopyString("", heap) // TODO:heading can it have some value
-         , param_desc->upshift
+         , param_desc->isUpshifted()
          , FALSE // addedColumn
          , (ComColumnDirection) colDirection
-         , param_desc->isOptional
+         , param_desc->isOptional()
          , (char *) COM_NORMAL_PARAM_TYPE_LIT
 				 );
 	
@@ -566,7 +566,7 @@ NARoutine::NARoutine(const QualifiedName   &name,
 
     direction[i] = (ComColumnDirection) colDirection;
     
-    params_desc_list = params_desc_list->header.next;
+    params_desc_list = params_desc_list->next;
     i++;
   } // for
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/optimizer/NARoutine.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/NARoutine.h b/core/sql/optimizer/NARoutine.h
index d725c0d..395955c 100644
--- a/core/sql/optimizer/NARoutine.h
+++ b/core/sql/optimizer/NARoutine.h
@@ -100,7 +100,7 @@ public:
   // How to set up the NARoutineDB and delete the NARoutineDB entry at the
   // end of the statement, use contextHeap()
   NARoutine(const QualifiedName   &name,
-            const desc_struct    *desc_struct,
+            const TrafDesc    *TrafDesc,
             BindWA                *bindWA,
             Int32                   &errorOccurred,
             NAMemory              *heap = CmpCommon::contextHeap());


Mime
View raw message