You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by li...@apache.org on 2018/08/17 14:05:26 UTC
[1/3] trafodion git commit: [TRAFODION-1881] A better way to solve
TRAFODION-1858
Repository: trafodion
Updated Branches:
refs/heads/master 0edaaf416 -> 1ecac0ae7
[TRAFODION-1881] A better way to solve TRAFODION-1858
Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/cad4418c
Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/cad4418c
Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/cad4418c
Branch: refs/heads/master
Commit: cad4418c141fe5ea73888dc4b0a91272197cc14d
Parents: 5e8bfc7
Author: Liu Ming <ov...@sina.com>
Authored: Sun Aug 12 02:05:31 2018 +0000
Committer: Liu Ming <ov...@sina.com>
Committed: Sun Aug 12 02:05:31 2018 +0000
----------------------------------------------------------------------
core/sql/generator/Generator.cpp | 6 +++++-
core/sql/generator/Generator.h | 1 +
core/sql/optimizer/BindRI.cpp | 11 +++++++----
core/sql/sqlcat/TrafDDLdesc.h | 12 +++++++++++-
4 files changed, 24 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafodion/blob/cad4418c/core/sql/generator/Generator.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/Generator.cpp b/core/sql/generator/Generator.cpp
index 895816c..d9e736a 100644
--- a/core/sql/generator/Generator.cpp
+++ b/core/sql/generator/Generator.cpp
@@ -1657,6 +1657,7 @@ TrafDesc * Generator::createKeyDescs(Int32 numKeys,
TrafDesc * Generator::createConstrKeyColsDescs(Int32 numKeys,
ComTdbVirtTableKeyInfo * keyInfo,
+ ComTdbVirtTableColumnInfo * columnInfo,
NAMemory * space)
{
TrafDesc * first_key_desc = NULL;
@@ -1687,6 +1688,9 @@ TrafDesc * Generator::createConstrKeyColsDescs(Int32 numKeys,
tgt->colname = NULL;
tgt->position = src->tableColNum;
+ ComTdbVirtTableColumnInfo * info = columnInfo + src->tableColNum;
+ if(info->columnClass == COM_SYSTEM_COLUMN )
+ tgt->setSystemKey(TRUE);
}
return first_key_desc;
@@ -2062,7 +2066,7 @@ TrafDesc * Generator::createVirtualTableDesc
curr_constr_desc->constrntsDesc()->colcount = constrInfo[i].colCount;
curr_constr_desc->constrntsDesc()->constr_key_cols_desc =
- Generator::createConstrKeyColsDescs(constrInfo[i].colCount, constrInfo[i].keyInfoArray, space);
+ Generator::createConstrKeyColsDescs(constrInfo[i].colCount, constrInfo[i].keyInfoArray, columnInfo, space);
if (constrInfo[i].ringConstrArray)
{
http://git-wip-us.apache.org/repos/asf/trafodion/blob/cad4418c/core/sql/generator/Generator.h
----------------------------------------------------------------------
diff --git a/core/sql/generator/Generator.h b/core/sql/generator/Generator.h
index b22e1f2..2c0ac9e 100644
--- a/core/sql/generator/Generator.h
+++ b/core/sql/generator/Generator.h
@@ -1413,6 +1413,7 @@ public:
static TrafDesc * createConstrKeyColsDescs(Int32 numKeys,
ComTdbVirtTableKeyInfo * keyInfo,
+ ComTdbVirtTableColumnInfo * colInfo,
NAMemory * space);
static TrafDesc * createRefConstrDescStructs(
http://git-wip-us.apache.org/repos/asf/trafodion/blob/cad4418c/core/sql/optimizer/BindRI.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/BindRI.cpp b/core/sql/optimizer/BindRI.cpp
index eeb1e20..c2a1a31 100644
--- a/core/sql/optimizer/BindRI.cpp
+++ b/core/sql/optimizer/BindRI.cpp
@@ -194,13 +194,16 @@ void AbstractRIConstraint::setKeyColumns(
while (keyColDesc)
{
colDesc = keyColDesc->constrntKeyColsDesc();
- column = new (heap) NAColumn(colDesc->colname, colDesc->position, NULL, heap);
+ if( colDesc->isSystemKey() )
+ column = new (heap) NAColumn(colDesc->colname, colDesc->position, NULL, heap, NULL, SYSTEM_COLUMN);
+ else
+ column = new (heap) NAColumn(colDesc->colname, colDesc->position, NULL, heap);
keyColumns_.insertAt(i, column);
i++;
keyColDesc = keyColDesc->next;
}
- CMPASSERT(desc->colcount == (signed)i);
+ CMPASSERT(desc->colcount == (signed)i);
}
UniqueConstraint::~UniqueConstraint()
@@ -456,8 +459,8 @@ void RefConstraint::getPredicateText(NAString &text,
text += "(";
for (CollIndex i = 0; i < keyColumns.entries(); i++)
{
- if(isHiddenColumn(keyColumns[i]->getColName()) )
- continue;
+ if(keyColumns[i]->isSystemColumn() )
+ continue;
if (pos > 0)
{
text += ",";
http://git-wip-us.apache.org/repos/asf/trafodion/blob/cad4418c/core/sql/sqlcat/TrafDDLdesc.h
----------------------------------------------------------------------
diff --git a/core/sql/sqlcat/TrafDDLdesc.h b/core/sql/sqlcat/TrafDDLdesc.h
index 733ffa9..7065924 100644
--- a/core/sql/sqlcat/TrafDDLdesc.h
+++ b/core/sql/sqlcat/TrafDDLdesc.h
@@ -311,9 +311,19 @@ public:
class TrafConstrntKeyColsDesc : public TrafDesc {
public:
+ enum ConsrntKeyDescFlags
+ {
+ SYSTEM_KEY = 0x0001
+ };
// why almost no initializers? see note at top of file
TrafConstrntKeyColsDesc() : TrafDesc(DESC_CONSTRNT_KEY_COLS_TYPE)
- {}
+ {
+ constrntKeyColsDescFlags = 0;
+ }
+
+ void setSystemKey(NABoolean v)
+ {(v ? constrntKeyColsDescFlags |= SYSTEM_KEY: constrntKeyColsDescFlags&= ~SYSTEM_KEY); };
+ NABoolean isSystemKey() { return (constrntKeyColsDescFlags & SYSTEM_KEY) != 0; };
// ---------------------------------------------------------------------
// Redefine virtual functions required for Versioning.
[3/3] trafodion git commit: merge [TRAFODION-1881]
Posted by li...@apache.org.
merge [TRAFODION-1881]
Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/1ecac0ae
Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/1ecac0ae
Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/1ecac0ae
Branch: refs/heads/master
Commit: 1ecac0ae732fb96e60231a45aaaccb5d8fb2d7e7
Parents: 0edaaf4 1011d9f
Author: Liu Ming <ov...@sina.com>
Authored: Fri Aug 17 10:04:58 2018 -0400
Committer: Liu Ming <ov...@sina.com>
Committed: Fri Aug 17 10:04:58 2018 -0400
----------------------------------------------------------------------
core/sql/generator/Generator.cpp | 6 ++++-
core/sql/generator/Generator.h | 1 +
core/sql/optimizer/BindRI.cpp | 49 +++++------------------------------
core/sql/sqlcat/TrafDDLdesc.h | 12 ++++++++-
4 files changed, 24 insertions(+), 44 deletions(-)
----------------------------------------------------------------------
[2/3] trafodion git commit: remove that unused code
Posted by li...@apache.org.
remove that unused code
Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/1011d9fb
Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/1011d9fb
Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/1011d9fb
Branch: refs/heads/master
Commit: 1011d9fb4f6eb9d83acd4989ac38f5fc443ebf22
Parents: cad4418
Author: Liu Ming <ov...@sina.com>
Authored: Sun Aug 12 02:17:16 2018 +0000
Committer: Liu Ming <ov...@sina.com>
Committed: Sun Aug 12 02:17:16 2018 +0000
----------------------------------------------------------------------
core/sql/optimizer/BindRI.cpp | 38 --------------------------------------
1 file changed, 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafodion/blob/1011d9fb/core/sql/optimizer/BindRI.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/BindRI.cpp b/core/sql/optimizer/BindRI.cpp
index c2a1a31..4317aa1 100644
--- a/core/sql/optimizer/BindRI.cpp
+++ b/core/sql/optimizer/BindRI.cpp
@@ -409,44 +409,6 @@ void RefConstraint::getMatchOptionPredicateText(NAString &text,
text += ")";
}
-//helper function to check if the given column name is reserved hidden coloum
-//NOTE:
-// this function hardcode the special name string for SALT, DIVSION columns
-// if the naming convension of SALT/DIVISION column is changed,
-// this function MUST be changed as well
-static NABoolean isHiddenColumn(const char *colname)
-{
- int len = strlen(colname);
- if(strcmp(colname , "_SALT_") ==0)
- return TRUE;
- //check for DIVISION column
- //pattern _DIVISION_%d_
- //must longer than 12
- if(len >= 12) {
- //must end with _
- if(colname[len-1] == '_')
- {
- //if begin with _DIVISION_?
- if(strncmp(colname,"_DIVISION_",10) == 0)
- {
- //middle part are number
- int allDigit = 1;
- for(int i = 0; i< len-11; i++)
- {
- if(isdigit(colname[i+10]) == 0)
- {
- allDigit = 0;
- break; //not digit
- }
- }
- if(allDigit == 1)
- return TRUE;
- }
- }
- }
- return FALSE;
-}
-
// Writes a row-value-constructor consisting of fully qualified column names
// in Ansi (external) format
void RefConstraint::getPredicateText(NAString &text,