You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by su...@apache.org on 2017/10/03 22:39:11 UTC
[1/2] incubator-trafodion git commit: [TRAFODION-2758] Sort operator
that uses TopN sort at runtime is not accurately determined at compile time
Repository: incubator-trafodion
Updated Branches:
refs/heads/master d3a6b6bd2 -> 1c98a7aa8
[TRAFODION-2758] Sort operator that uses TopN sort at runtime is not accurately determined at compile time
This commit includes fixes for these three issues. Please see JIRA for a description of each fix.
[TRAFODION-2758] Sort operator that uses TopN sort at runtime is not accurately determined at compile time
[TRAFODION-2759] Use of rowset with large memory leads to various errors at runtime
[TRAFODION-2760] hbase cache blocks is OFF for broad table with narrow index
[TRAFODION-2758]
comexe/ComTdbSort.cpp
comexe/ComTdbSort.h
executor/ex_sort.cpp
generator/GenExplain.cpp
generator/GenPreCode.cpp
generator/GenRelMisc.cpp
optimizer/RelExpr.cpp
[TRAFODION-2759]
bin/SqlciErrors.txt
generator/GenRelPackedRows.cpp
sqlcomp/DefaultConstants.h
sqlcomp/nadefaults.cpp
[TRAFODION-2760]
generator/GenRelScan.cpp
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/ab59ee76
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/ab59ee76
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/ab59ee76
Branch: refs/heads/master
Commit: ab59ee768d51edfa80a0e258ca58c300273e658b
Parents: 4c9423f
Author: Suresh Subbiah <su...@apache.org>
Authored: Sat Sep 30 03:36:52 2017 +0000
Committer: Suresh Subbiah <su...@apache.org>
Committed: Sat Sep 30 03:36:52 2017 +0000
----------------------------------------------------------------------
core/sql/bin/SqlciErrors.txt | 1 +
core/sql/comexe/ComTdbSort.cpp | 4 ++--
core/sql/comexe/ComTdbSort.h | 21 ++++++++----------
core/sql/executor/ex_sort.cpp | 11 ++++------
core/sql/generator/GenExplain.cpp | 3 +++
core/sql/generator/GenPreCode.cpp | 7 ------
core/sql/generator/GenRelMisc.cpp | 5 -----
core/sql/generator/GenRelPackedRows.cpp | 16 ++++++++++++++
core/sql/generator/GenRelScan.cpp | 32 ++++++++++++++++++----------
core/sql/optimizer/RelExpr.cpp | 32 +++++++++++++++++++++++++---
core/sql/sqlcomp/DefaultConstants.h | 1 +
core/sql/sqlcomp/nadefaults.cpp | 3 +++
12 files changed, 89 insertions(+), 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ab59ee76/core/sql/bin/SqlciErrors.txt
----------------------------------------------------------------------
diff --git a/core/sql/bin/SqlciErrors.txt b/core/sql/bin/SqlciErrors.txt
index 028a379..97b6f32 100644
--- a/core/sql/bin/SqlciErrors.txt
+++ b/core/sql/bin/SqlciErrors.txt
@@ -3951,3 +3951,4 @@ $3~String1.
30047 ZZZZZ 99999 BEGINNER MAJOR DBADMIN NAR details. HexdRow: $0~String0 ErrNum: $1~Int1 ObjectName: $2~TableName PartitionName: $3~String3 FileNum: $4~Int4 RecNum: $5~Int5
30048 ZZZZZ 99999 BEGINNER MAJOR DBADMIN Fast Load failed. Number of error rows($0~Int0) inserted into the exception table exceeded the max allowed($1~Int1).
30049 ZZZZZ 99999 BEGINNER MAJOR DBADMIN Fast Load succeeded. Number of error rows inserted into the exception table is $0~Int0
+30050 ZZZZZ 99999 BEGINNER MAJOR DBADMIN Memory required by input rowset buffer is $0~Int0 MB, exceeding specified limit of $1~Int1. Row length is $2~Int2 bytes and rowset has a maximum of $3~Int3 elements.
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ab59ee76/core/sql/comexe/ComTdbSort.cpp
----------------------------------------------------------------------
diff --git a/core/sql/comexe/ComTdbSort.cpp b/core/sql/comexe/ComTdbSort.cpp
index 4ca4e45..4c58aac 100644
--- a/core/sql/comexe/ComTdbSort.cpp
+++ b/core/sql/comexe/ComTdbSort.cpp
@@ -176,8 +176,8 @@ void SortOptions::displayContents(Space *space)
{
char buf[100];
- str_sprintf(buf, "\nFor SortOptions:\nsortNRows = %d, sortType = %d, internalSort = %d",
- sortNRows_,sortType_,internalSort_);
+ str_sprintf(buf, "\nFor SortOptions:\nsortType = %d, internalSort = %d",
+ sortType_,internalSort_);
space->allocateAndCopyToAlignedSpace(buf, str_len(buf), sizeof(short));
str_sprintf(buf,"Sort Option Flags = %b", flags_);
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ab59ee76/core/sql/comexe/ComTdbSort.h
----------------------------------------------------------------------
diff --git a/core/sql/comexe/ComTdbSort.h b/core/sql/comexe/ComTdbSort.h
index 1e43ce0..ce74c8f 100644
--- a/core/sql/comexe/ComTdbSort.h
+++ b/core/sql/comexe/ComTdbSort.h
@@ -56,7 +56,6 @@ public:
scratchFreeSpaceThreshold_ = 0;
sortType_ = ITER_QUICK;
dontOverflow_ = FALSE;
- sortNRows_ = FALSE;
flags_ = 0;
memoryQuotaMB_ = 0;
bmoMaxMemThresholdMB_ =0;
@@ -84,7 +83,6 @@ public:
UInt16 &scratchFreeSpaceThresholdPct() {return scratchFreeSpaceThreshold_;}
Int16 &sortType(){return sortType_;};
Int32 &dontOverflow(){return dontOverflow_;};
- Int32 &sortNRows(){return sortNRows_;};
Int16 &memoryQuotaMB(){return memoryQuotaMB_;};
UInt16 &bmoMaxMemThresholdMB(){return bmoMaxMemThresholdMB_;};
Int16 &pressureThreshold(){return pressureThreshold_;}
@@ -137,16 +135,15 @@ protected:
Int16 sortMaxHeapSizeMB_; // 04-05
UInt16 scratchFreeSpaceThreshold_; // 06-07
Int32 dontOverflow_; // 08-11
- Int32 sortNRows_; // 12-15
- Int16 sortType_; // 16-17
- UInt16 flags_; // 18-19
- Int16 memoryQuotaMB_; // 20-21
- Int16 pressureThreshold_; // 22-23
- Int16 mergeBufferUnit_; // 24-25
- Int16 scratchIOVectorSize_; // 26-27
- Int32 scratchIOBlockSize_; // 28-31
- UInt16 bmoMaxMemThresholdMB_; // 32-33
- char fillersSortOptions_[22]; // 34-55
+ Int16 sortType_; // 12-13
+ UInt16 flags_; // 14-15
+ Int16 memoryQuotaMB_; // 16-17
+ Int16 pressureThreshold_; // 18-19
+ Int16 mergeBufferUnit_; // 20-21
+ Int16 scratchIOVectorSize_; // 22-23
+ Int32 scratchIOBlockSize_; // 24-27
+ UInt16 bmoMaxMemThresholdMB_; // 28-29
+ char fillersSortOptions_[26]; // 30-55
};
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ab59ee76/core/sql/executor/ex_sort.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ex_sort.cpp b/core/sql/executor/ex_sort.cpp
index 5280d0f..6db6dd0 100644
--- a/core/sql/executor/ex_sort.cpp
+++ b/core/sql/executor/ex_sort.cpp
@@ -695,8 +695,7 @@ short ExSortTcb::workDown()
"Invalid initial state in ex_sort_tcb::workDown()");
if ((request == ex_queue::GET_NOMORE) ||
- ((sortTdb().sortOptions_->sortNRows() == TRUE) &&
- (request == ex_queue::GET_N) &&
+ ((request == ex_queue::GET_N) &&
(pentry_down->downState.requestValue == 0)))
{
// Parent canceled before start, or request 0 row,
@@ -709,8 +708,7 @@ short ExSortTcb::workDown()
{
ex_queue_entry *centry = qchild_.down->getTailEntry();
- if ((sortTdb().sortOptions_->sortNRows() == TRUE) &&
- (request == ex_queue::GET_N))
+ if (request == ex_queue::GET_N)
{
centry->downState.request = ex_queue::GET_ALL;
}
@@ -1670,10 +1668,9 @@ short ExSortTcb::sortReceive(ex_queue_entry * pentry_down,
// stop if first N sorted rows have been returned.
if ((request == ex_queue::GET_NOMORE) ||
- (sortTdb().sortOptions_->sortNRows() == TRUE) &&
- (request == ex_queue::GET_N) &&
+ ((request == ex_queue::GET_N) &&
((Lng32)matchCount >=
- pentry_down->downState.requestValue))
+ pentry_down->downState.requestValue)))
{
// If sort partially complete, lets cancel rest of
// of the child row reads.
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ab59ee76/core/sql/generator/GenExplain.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenExplain.cpp b/core/sql/generator/GenExplain.cpp
index 77d9c9f..5c9da7e 100644
--- a/core/sql/generator/GenExplain.cpp
+++ b/core/sql/generator/GenExplain.cpp
@@ -1948,6 +1948,9 @@ Sort::addSpecificExplainInfo(ExplainTupleMaster *explainTuple,
description += "CIF: OFF ";
}
}
+ if (sortTdb->topNSortEnabled() && sortNRows())
+ description += "topn_enabled: yes ";
+
explainTuple->setDescription(description); // save what we have built
return(explainTuple);
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ab59ee76/core/sql/generator/GenPreCode.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenPreCode.cpp b/core/sql/generator/GenPreCode.cpp
index 06ed196..2f127f1 100644
--- a/core/sql/generator/GenPreCode.cpp
+++ b/core/sql/generator/GenPreCode.cpp
@@ -2074,13 +2074,6 @@ RelExpr * RelRoot::preCodeGen(Generator * generator,
pulledNewInputs -= (ValueIdSet) inputVars();
GenAssert(pulledNewInputs.isEmpty(),"root can't produce these values");
- // propagate the need to return top sorted N rows to all sort
- // nodes in the query.
- if (needFirstSortedRows() == TRUE)
- {
- needSortedNRows(TRUE);
- }
-
// Do not rollback on error for INTERNAL REFRESH commands.
if (isRootOfInternalRefresh())
{
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ab59ee76/core/sql/generator/GenRelMisc.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenRelMisc.cpp b/core/sql/generator/GenRelMisc.cpp
index c429ebe..3f5272d 100644
--- a/core/sql/generator/GenRelMisc.cpp
+++ b/core/sql/generator/GenRelMisc.cpp
@@ -3069,11 +3069,6 @@ short Sort::generateTdb(Generator * generator,
sort_options->scratchIOVectorSize() = (Int16)getDefault(SCRATCH_IO_VECTOR_SIZE_SORT);
- if (sortNRows())
- {
- sort_options->sortNRows() = TRUE;
- }
-
if (CmpCommon::getDefault(EXE_BMO_SET_BUFFERED_WRITES) == DF_ON)
sort_options->setBufferedWrites(TRUE);
if (CmpCommon::getDefault(EXE_DIAGNOSTIC_EVENTS) == DF_ON)
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ab59ee76/core/sql/generator/GenRelPackedRows.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenRelPackedRows.cpp b/core/sql/generator/GenRelPackedRows.cpp
index 4088035..70ebfd0 100644
--- a/core/sql/generator/GenRelPackedRows.cpp
+++ b/core/sql/generator/GenRelPackedRows.cpp
@@ -135,6 +135,22 @@ RelExpr * PhysUnPackRows::preCodeGen(Generator * generator,
(availableValues,
getGroupAttr()->getCharacteristicInputs());
+ Lng32 memLimit = (Lng32)CmpCommon::getDefaultNumeric(MEMORY_LIMIT_ROWSET_IN_MB);
+ if (memLimit > 0)
+ {
+ Lng32 rowLength = getGroupAttr()->getCharacteristicOutputs().getRowLength();
+ Lng32 rowsetSize = getGroupAttr()->getOutputLogPropList()[0]->getResultCardinality().value() ;
+ Lng32 memNeededMB = (rowLength * rowsetSize)/(1024 * 1024);
+ if (memLimit < memNeededMB)
+ {
+ *CmpCommon::diags() << DgSqlCode(-30050) << DgInt0(memNeededMB)
+ << DgInt1(memLimit) << DgInt2(rowLength)
+ << DgInt3(rowsetSize);
+ GenExit();
+ return NULL;
+ }
+ }
+
generator->oltOptInfo()->setMultipleRowsReturned(TRUE);
markAsPreCodeGenned();
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ab59ee76/core/sql/generator/GenRelScan.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenRelScan.cpp b/core/sql/generator/GenRelScan.cpp
index e9c60ac..dd52137 100644
--- a/core/sql/generator/GenRelScan.cpp
+++ b/core/sql/generator/GenRelScan.cpp
@@ -3123,21 +3123,31 @@ short HbaseAccess::codeGen(Generator * generator)
new(space) ComTdbHbaseAccess::HbasePerfAttributes();
if (CmpCommon::getDefault(COMP_BOOL_184) == DF_ON)
hbpa->setUseMinMdamProbeSize(TRUE);
+
+ Lng32 hbaseRowSize;
+ Lng32 hbaseBlockSize;
+ if(getIndexDesc() && getIndexDesc()->getNAFileSet())
+ {
+ const NAFileSet * fileset = getIndexDesc()->getNAFileSet() ;
+ hbaseRowSize = fileset->getRecordLength();
+ hbaseRowSize += ((NAFileSet *)fileset)->getEncodedKeyLength();
+ hbaseBlockSize = fileset->getBlockSize();
+ }
+ else
+ {
+ hbaseRowSize = computedHBaseRowSizeFromMetaData;
+ hbaseBlockSize = CmpCommon::getDefaultLong(HBASE_BLOCK_SIZE);
+ }
+
generator->setHBaseNumCacheRows(MAXOF(getEstRowsAccessed().getValue(),
getMaxCardEst().getValue()),
hbpa, samplePercent()) ;
- generator->setHBaseCacheBlocks(computedHBaseRowSizeFromMetaData,
+ generator->setHBaseCacheBlocks(hbaseRowSize,
getEstRowsAccessed().getValue(),hbpa);
-
- Lng32 hbaseBlockSize = 65536; //default HBaseValue, should not be useful as the if statement should always pass
- if(getIndexDesc() && getIndexDesc()->getNAFileSet())
- hbaseBlockSize = getIndexDesc()->getNAFileSet()->getBlockSize();
-
- generator->setHBaseSmallScanner(computedHBaseRowSizeFromMetaData,
- getEstRowsAccessed().getValue(),
- hbaseBlockSize,
- hbpa);
-
+ generator->setHBaseSmallScanner(hbaseRowSize,
+ getEstRowsAccessed().getValue(),
+ hbaseBlockSize,
+ hbpa);
generator->setHBaseParallelScanner(hbpa);
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ab59ee76/core/sql/optimizer/RelExpr.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/RelExpr.cpp b/core/sql/optimizer/RelExpr.cpp
index 6087a96..d418eec 100644
--- a/core/sql/optimizer/RelExpr.cpp
+++ b/core/sql/optimizer/RelExpr.cpp
@@ -1078,7 +1078,33 @@ void RelExpr::pushDownGenericUpdateRootOutputs( const ValueIdSet &outputs)
//QSTUFF
void RelExpr::needSortedNRows(NABoolean val)
-{
+{
+ // The operators listed below can create OR propogate a GET_N
+ // request. Other operatots will turn a GET_N request into GET_ALL
+ // There are a few exceptions like right side of NJ for semi join etc.
+ // but these are not relevant for FirstN sort
+ // This method should only in the generator since we are using
+ // physical node types.
+ OperatorTypeEnum operatorType = getOperatorType();
+ if ((operatorType != REL_FIRST_N) &&
+ (operatorType != REL_EXCHANGE) &&
+ (operatorType != REL_MERGE_UNION) &&
+ (operatorType != REL_PROBE_CACHE) &&
+ (operatorType != REL_ROOT) &&
+ (operatorType != REL_LEFT_NESTED_JOIN) &&
+ (operatorType != REL_LEFT_TSJ) &&
+ (operatorType != REL_MAP_VALUEIDS))
+ return ;
+
+ if ((operatorType == REL_LEFT_NESTED_JOIN) ||
+ (operatorType == REL_LEFT_TSJ)) {
+ // left side of left tsj propagates a GET_N request if afterPred is empty.
+ if (getSelectionPred().isEmpty())
+ child(0)->castToRelExpr()->needSortedNRows(val);
+
+ return ;
+ }
+
for (Int32 i=0; i < getArity(); i++) {
if (child(i))
child(i)->castToRelExpr()->needSortedNRows(val);
@@ -3446,8 +3472,8 @@ void Sort::addLocalExpr(LIST(ExprNode *) &xlist,
void Sort::needSortedNRows(NABoolean val)
{
sortNRows_ = val;
-
- RelExpr::needSortedNRows(val);
+ // Sort changes a GET_N to GET_ALL, so it does not propagate a
+ // Get_N request. It can simply act on one.
}
// -----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ab59ee76/core/sql/sqlcomp/DefaultConstants.h
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/DefaultConstants.h b/core/sql/sqlcomp/DefaultConstants.h
index 3852e70..3a1f3cf 100644
--- a/core/sql/sqlcomp/DefaultConstants.h
+++ b/core/sql/sqlcomp/DefaultConstants.h
@@ -3888,6 +3888,7 @@ enum DefaultConstants
BMO_MEMORY_EQUAL_QUOTA_SHARE_RATIO,
EXE_MEMORY_FOR_UNPACK_ROWS_IN_MB,
+ MEMORY_LIMIT_ROWSET_IN_MB,
// This enum constant must be the LAST one in the list; it's a count,
// not an Attribute (it's not IN DefaultDefaults; it's the SIZE of it)!
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ab59ee76/core/sql/sqlcomp/nadefaults.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/nadefaults.cpp b/core/sql/sqlcomp/nadefaults.cpp
index dba86b6..11c7082 100644
--- a/core/sql/sqlcomp/nadefaults.cpp
+++ b/core/sql/sqlcomp/nadefaults.cpp
@@ -2234,6 +2234,9 @@ SDDkwd__(ISO_MAPPING, (char *)SQLCHARSETSTRING_ISO88591),
DDui___(MEMORY_LIMIT_HISTCACHE_UPPER_KB, "0"),
DDui___(MEMORY_LIMIT_NATABLECACHE_UPPER_KB, "0"),
DDui___(MEMORY_LIMIT_QCACHE_UPPER_KB, "0"),
+ // Checked at compile time. Set to -1 to disable check.
+ // Value should be >= EXE_MEMORY_FOR_UNPACK_ROWS_IN_MB
+ DDint__(MEMORY_LIMIT_ROWSET_IN_MB, "500"),
// SQL/MX Compiler/Optimzer Memory Monitor.
DDkwd__(MEMORY_MONITOR, "OFF"),
[2/2] incubator-trafodion git commit: Merge [TRAFODION-2758] PR-1250
Sort operator that uses TopN sort at runtime is not accuratelt determined at
compile time
Posted by su...@apache.org.
Merge [TRAFODION-2758] PR-1250 Sort operator that uses TopN sort at runtime is not accuratelt determined at compile time
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/1c98a7aa
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/1c98a7aa
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/1c98a7aa
Branch: refs/heads/master
Commit: 1c98a7aa8e4073625eca5555d447a0a4255f162a
Parents: d3a6b6b ab59ee7
Author: Suresh Subbiah <su...@apache.org>
Authored: Tue Oct 3 22:38:32 2017 +0000
Committer: Suresh Subbiah <su...@apache.org>
Committed: Tue Oct 3 22:38:32 2017 +0000
----------------------------------------------------------------------
core/sql/bin/SqlciErrors.txt | 1 +
core/sql/comexe/ComTdbSort.cpp | 4 ++--
core/sql/comexe/ComTdbSort.h | 21 ++++++++----------
core/sql/executor/ex_sort.cpp | 11 ++++------
core/sql/generator/GenExplain.cpp | 3 +++
core/sql/generator/GenPreCode.cpp | 7 ------
core/sql/generator/GenRelMisc.cpp | 5 -----
core/sql/generator/GenRelPackedRows.cpp | 16 ++++++++++++++
core/sql/generator/GenRelScan.cpp | 32 ++++++++++++++++++----------
core/sql/optimizer/RelExpr.cpp | 32 +++++++++++++++++++++++++---
core/sql/sqlcomp/DefaultConstants.h | 1 +
core/sql/sqlcomp/nadefaults.cpp | 3 +++
12 files changed, 89 insertions(+), 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/1c98a7aa/core/sql/comexe/ComTdbSort.cpp
----------------------------------------------------------------------
diff --cc core/sql/comexe/ComTdbSort.cpp
index 966dd06,4c58aac..0e89d35
--- a/core/sql/comexe/ComTdbSort.cpp
+++ b/core/sql/comexe/ComTdbSort.cpp
@@@ -172,11 -176,11 +172,11 @@@ void SortOptions::displayContents(Spac
{
char buf[100];
- str_sprintf(buf, "\nFor SortOptions:\nsortNRows = %d, sortType = %d, internalSort = %d",
- sortNRows_,sortType_,internalSort_);
+ str_sprintf(buf, "\nFor SortOptions:\nsortType = %d, internalSort = %d",
+ sortType_,internalSort_);
space->allocateAndCopyToAlignedSpace(buf, str_len(buf), sizeof(short));
- str_sprintf(buf,"Sort Option Flags = %b", flags_);
+ str_sprintf(buf,"Sort Option Flags = %x", flags_);
space->allocateAndCopyToAlignedSpace(buf, str_len(buf),sizeof(short));
str_sprintf(buf, "sortMaxHeapSizeMB = %d, scratchFreeSpaceThreshold = %d",
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/1c98a7aa/core/sql/executor/ex_sort.cpp
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/1c98a7aa/core/sql/generator/GenExplain.cpp
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/1c98a7aa/core/sql/generator/GenPreCode.cpp
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/1c98a7aa/core/sql/generator/GenRelMisc.cpp
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/1c98a7aa/core/sql/generator/GenRelPackedRows.cpp
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/1c98a7aa/core/sql/generator/GenRelScan.cpp
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/1c98a7aa/core/sql/optimizer/RelExpr.cpp
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/1c98a7aa/core/sql/sqlcomp/DefaultConstants.h
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/1c98a7aa/core/sql/sqlcomp/nadefaults.cpp
----------------------------------------------------------------------