You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by an...@apache.org on 2016/08/02 23:24:38 UTC
[06/10] incubator-trafodion git commit: metadata access performance
improvement for accessing traf objects
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 = ¶ms_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());