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,