JIRA 1844: support for 'alter table alter column datatype'
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/7b99938c Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/7b99938c Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/7b99938c Branch: refs/heads/master Commit: 7b99938cea8ba68f2c90ed655e8f4d85cc24f06f Parents: fa430a0 Author: Cloud User <[email protected]> Authored: Fri Feb 26 23:09:18 2016 +0000 Committer: Cloud User <[email protected]> Committed: Fri Feb 26 23:09:18 2016 +0000 ---------------------------------------------------------------------- core/sql/common/ComSmallDefs.h | 2 + core/sql/executor/HBaseClient_JNI.cpp | 25 +- core/sql/executor/HBaseClient_JNI.h | 3 +- core/sql/exp/ExpHbaseInterface.cpp | 8 +- core/sql/exp/ExpHbaseInterface.h | 12 +- core/sql/generator/Generator.cpp | 5 + core/sql/optimizer/NAColumn.h | 43 +- core/sql/optimizer/NATable.cpp | 7 +- .../sql/parser/StmtDDLAlterTableAlterColumn.cpp | 20 +- core/sql/parser/StmtDDLAlterTableAlterColumn.h | 17 +- core/sql/parser/sqlparser.y | 6 +- core/sql/regress/compGeneral/EXPECTED071 | 8 +- core/sql/regress/core/EXPECTED056.SB | 52 +- core/sql/regress/executor/EXPECTED013.SB | 38 +- core/sql/regress/privs2/EXPECTED138 | 2 +- core/sql/regress/seabase/EXPECTED011 | 101 +- core/sql/regress/seabase/EXPECTED027 | 433 ++++- core/sql/regress/seabase/TEST011 | 16 - core/sql/regress/seabase/TEST027 | 58 + core/sql/sqlcomp/CmpDescribe.cpp | 180 ++- core/sql/sqlcomp/CmpSeabaseDDL.h | 68 +- core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp | 217 ++- core/sql/sqlcomp/CmpSeabaseDDLschema.cpp | 4 +- core/sql/sqlcomp/CmpSeabaseDDLtable.cpp | 1504 ++++++++++++------ core/sql/sqlcomp/DefaultConstants.h | 4 + core/sql/sqlcomp/nadefaults.cpp | 8 +- .../java/org/trafodion/sql/HBaseClient.java | 33 +- 27 files changed, 1974 insertions(+), 900 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/common/ComSmallDefs.h ---------------------------------------------------------------------- diff --git a/core/sql/common/ComSmallDefs.h b/core/sql/common/ComSmallDefs.h index 1c888fb..3252eac 100644 --- a/core/sql/common/ComSmallDefs.h +++ b/core/sql/common/ComSmallDefs.h @@ -560,6 +560,7 @@ enum ComColumnClass { COM_UNKNOWN_CLASS , COM_USER_COLUMN , COM_ADDED_USER_COLUMN , COM_MV_SYSTEM_ADDED_COLUMN + , COM_ALTERED_USER_COLUMN }; #define COM_UNKNOWN_CLASS_LIT " " @@ -567,6 +568,7 @@ enum ComColumnClass { COM_UNKNOWN_CLASS #define COM_USER_COLUMN_LIT "U " #define COM_ADDED_USER_COLUMN_LIT "A " #define COM_MV_SYSTEM_ADDED_COLUMN_LIT "M " +#define COM_ALTERED_USER_COLUMN_LIT "C " enum ComColumnDefaultClass { COM_CURRENT_DEFAULT , COM_NO_DEFAULT http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/executor/HBaseClient_JNI.cpp ---------------------------------------------------------------------- diff --git a/core/sql/executor/HBaseClient_JNI.cpp b/core/sql/executor/HBaseClient_JNI.cpp index 3ff3e1f..34ab08f 100644 --- a/core/sql/executor/HBaseClient_JNI.cpp +++ b/core/sql/executor/HBaseClient_JNI.cpp @@ -452,7 +452,7 @@ HBC_RetCode HBaseClient_JNI::init() JavaMethods_[JM_GET_REGION_STATS ].jm_name = "getRegionStats"; JavaMethods_[JM_GET_REGION_STATS ].jm_signature = "(Ljava/lang/String;)Lorg/trafodion/sql/ByteArrayList;"; JavaMethods_[JM_COPY ].jm_name = "copy"; - JavaMethods_[JM_COPY ].jm_signature = "(Ljava/lang/String;Ljava/lang/String;)Z"; + JavaMethods_[JM_COPY ].jm_signature = "(Ljava/lang/String;Ljava/lang/String;Z)Z"; JavaMethods_[JM_EXISTS ].jm_name = "exists"; JavaMethods_[JM_EXISTS ].jm_signature = "(Ljava/lang/String;)Z"; JavaMethods_[JM_GRANT ].jm_name = "grant"; @@ -1523,9 +1523,11 @@ ByteArrayList* HBaseClient_JNI::getRegionStats(const char* tblName) ////////////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////////////// -HBC_RetCode HBaseClient_JNI::copy(const char* currTblName, const char* oldTblName) +HBC_RetCode HBaseClient_JNI::copy(const char* srcTblName, + const char* tgtTblName, + NABoolean force) { - QRLogger::log(CAT_SQL_HBASE, LL_DEBUG, "HBaseClient_JNI::copy(%s,%s) called.", currTblName, oldTblName); + QRLogger::log(CAT_SQL_HBASE, LL_DEBUG, "HBaseClient_JNI::copy(%s,%s) called.", srcTblName, tgtTblName); if (jenv_ == NULL) if (initJVM() != JOI_OK) return HBC_ERROR_INIT_PARAM; @@ -1534,28 +1536,31 @@ HBC_RetCode HBaseClient_JNI::copy(const char* currTblName, const char* oldTblNam getExceptionDetails(); return HBC_ERROR_DROP_EXCEPTION; } - jstring js_currTblName = jenv_->NewStringUTF(currTblName); - if (js_currTblName == NULL) + jstring js_srcTblName = jenv_->NewStringUTF(srcTblName); + if (js_srcTblName == NULL) { GetCliGlobals()->setJniErrorStr(getErrorText(HBC_ERROR_DROP_PARAM)); jenv_->PopLocalFrame(NULL); return HBC_ERROR_DROP_PARAM; } - jstring js_oldTblName = jenv_->NewStringUTF(oldTblName); - if (js_oldTblName == NULL) + jstring js_tgtTblName = jenv_->NewStringUTF(tgtTblName); + if (js_tgtTblName == NULL) { GetCliGlobals()->setJniErrorStr(getErrorText(HBC_ERROR_DROP_PARAM)); jenv_->PopLocalFrame(NULL); return HBC_ERROR_DROP_PARAM; } + jboolean j_force = force; tsRecentJMFromJNI = JavaMethods_[JM_COPY].jm_full_name; - jboolean jresult = jenv_->CallBooleanMethod(javaObj_, JavaMethods_[JM_COPY].methodID, js_currTblName, js_oldTblName); + jboolean jresult = jenv_->CallBooleanMethod( + javaObj_, JavaMethods_[JM_COPY].methodID, + js_srcTblName, js_tgtTblName, j_force); - jenv_->DeleteLocalRef(js_currTblName); + jenv_->DeleteLocalRef(js_srcTblName); - jenv_->DeleteLocalRef(js_oldTblName); + jenv_->DeleteLocalRef(js_tgtTblName); if (jenv_->ExceptionCheck()) { http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/executor/HBaseClient_JNI.h ---------------------------------------------------------------------- diff --git a/core/sql/executor/HBaseClient_JNI.h b/core/sql/executor/HBaseClient_JNI.h index d015ec2..1ecd0e2 100644 --- a/core/sql/executor/HBaseClient_JNI.h +++ b/core/sql/executor/HBaseClient_JNI.h @@ -511,7 +511,8 @@ public: HBC_RetCode drop(const char* fileName, bool async, Int64 transID); HBC_RetCode drop(const char* fileName, JNIEnv* jenv, Int64 transID); // thread specific HBC_RetCode dropAll(const char* pattern, bool async); - HBC_RetCode copy(const char* currTblName, const char* oldTblName); + HBC_RetCode copy(const char* srcTblName, const char* tgtTblName, + NABoolean force); ByteArrayList* listAll(const char* pattern); ByteArrayList* getRegionStats(const char* tblName); static HBC_RetCode flushAllTablesStatic(); http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/exp/ExpHbaseInterface.cpp ---------------------------------------------------------------------- diff --git a/core/sql/exp/ExpHbaseInterface.cpp b/core/sql/exp/ExpHbaseInterface.cpp index b58383c..3ca8d8c 100644 --- a/core/sql/exp/ExpHbaseInterface.cpp +++ b/core/sql/exp/ExpHbaseInterface.cpp @@ -249,7 +249,8 @@ Lng32 ExpHbaseInterface::fetchAllRows( return retcode; } -Lng32 ExpHbaseInterface::copy(HbaseStr &currTblName, HbaseStr &oldTblName) +Lng32 ExpHbaseInterface::copy(HbaseStr &srcTblName, HbaseStr &tgtTblName, + NABoolean force) { return -HBASE_COPY_ERROR; } @@ -582,7 +583,8 @@ ByteArrayList* ExpHbaseInterface_JNI::listAll(const char * pattern) } //---------------------------------------------------------------------------- -Lng32 ExpHbaseInterface_JNI::copy(HbaseStr &currTblName, HbaseStr &oldTblName) +Lng32 ExpHbaseInterface_JNI::copy(HbaseStr &srcTblName, HbaseStr &tgtTblName, + NABoolean force) { if (client_ == NULL) { @@ -590,7 +592,7 @@ Lng32 ExpHbaseInterface_JNI::copy(HbaseStr &currTblName, HbaseStr &oldTblName) return -HBASE_ACCESS_ERROR; } - retCode_ = client_->copy(currTblName.val, oldTblName.val); + retCode_ = client_->copy(srcTblName.val, tgtTblName.val, force); if (retCode_ == HBC_OK) return HBASE_ACCESS_SUCCESS; http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/exp/ExpHbaseInterface.h ---------------------------------------------------------------------- diff --git a/core/sql/exp/ExpHbaseInterface.h b/core/sql/exp/ExpHbaseInterface.h index 474503c..3a61e22 100644 --- a/core/sql/exp/ExpHbaseInterface.h +++ b/core/sql/exp/ExpHbaseInterface.h @@ -135,8 +135,10 @@ class ExpHbaseInterface : public NABasicObject // retrieve all objects from hbase that match the pattern virtual ByteArrayList* listAll(const char * pattern) = 0; - // make a copy of currTableName as oldTblName. - virtual Lng32 copy(HbaseStr &currTblName, HbaseStr &oldTblName); + // make a copy of srcTblName as tgtTblName + // if force is true, remove target before copying. + virtual Lng32 copy(HbaseStr &srcTblName, HbaseStr &tgtTblName, + NABoolean force = FALSE); virtual Lng32 exists(HbaseStr &tblName) = 0; @@ -448,8 +450,10 @@ class ExpHbaseInterface_JNI : public ExpHbaseInterface virtual ByteArrayList* listAll(const char * pattern); - // make a copy of currTableName as oldTblName. - virtual Lng32 copy(HbaseStr &currTblName, HbaseStr &oldTblName); + // make a copy of srcTblName as tgtTblName + // if force is true, remove target before copying. + virtual Lng32 copy(HbaseStr &srcTblName, HbaseStr &tgtTblName, + NABoolean force = FALSE); // -1, if table exists. 0, if doesn't. -ve num, error. virtual Lng32 exists(HbaseStr &tblName); http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/generator/Generator.cpp ---------------------------------------------------------------------- diff --git a/core/sql/generator/Generator.cpp b/core/sql/generator/Generator.cpp index 9c8cee3..2486755 100644 --- a/core/sql/generator/Generator.cpp +++ b/core/sql/generator/Generator.cpp @@ -1594,6 +1594,11 @@ desc_struct* Generator::createColDescs( col_desc->body.columns_desc.colclass = 'A'; col_desc->body.columns_desc.addedColumn = 1; } + else if (info->columnClass == COM_ALTERED_USER_COLUMN) + { + col_desc->body.columns_desc.colclass = 'C'; + col_desc->body.columns_desc.addedColumn = 1; + } if (info->colHeading) col_desc->body.columns_desc.heading = (char*)info->colHeading; http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/optimizer/NAColumn.h ---------------------------------------------------------------------- diff --git a/core/sql/optimizer/NAColumn.h b/core/sql/optimizer/NAColumn.h index 6aeac49..ec58fe9 100644 --- a/core/sql/optimizer/NAColumn.h +++ b/core/sql/optimizer/NAColumn.h @@ -88,23 +88,24 @@ public: // --------------------------------------------------------------------- NAColumn(const char* colName, - Lng32 position, - NAType *type, - CollHeap *h, - const NATable* table = NULL, - ColumnClass columnClass = USER_COLUMN, - const ComColumnDefaultClass defaultClass = COM_NO_DEFAULT, - char* defaultValue = NULL, - char* heading = NULL, - NABoolean upshift = FALSE, - NABoolean addedColumn = FALSE, - ComColumnDirection colDirection = COM_UNKNOWN_DIRECTION, - NABoolean isOptional = FALSE, - char *routineParamType = NULL, - NABoolean storedOnDisk = TRUE, - char *computedColExpr = NULL, - NABoolean isSaltColumn = FALSE, - NABoolean isDivisioningColumn = FALSE) + Lng32 position, + NAType *type, + CollHeap *h, + const NATable* table = NULL, + ColumnClass columnClass = USER_COLUMN, + const ComColumnDefaultClass defaultClass = COM_NO_DEFAULT, + char* defaultValue = NULL, + char* heading = NULL, + NABoolean upshift = FALSE, + NABoolean addedColumn = FALSE, + ComColumnDirection colDirection = COM_UNKNOWN_DIRECTION, + NABoolean isOptional = FALSE, + char *routineParamType = NULL, + NABoolean storedOnDisk = TRUE, + char *computedColExpr = NULL, + NABoolean isSaltColumn = FALSE, + NABoolean isDivisioningColumn = FALSE, + NABoolean isAlteredColumn = FALSE) : heap_(h), colName_(colName, h), position_(position), @@ -116,6 +117,7 @@ public: heading_(heading), upshift_(upshift), addedColumn_(addedColumn), + alteredColumn_(isAlteredColumn), keyKind_(NON_KEY), clusteringKeyOrdering_(NOT_ORDERED), isNotNullNondroppable_(NULL), @@ -154,6 +156,7 @@ public: heading_(nac.heading_), upshift_(nac.upshift_), addedColumn_(nac.addedColumn_), + alteredColumn_(nac.alteredColumn_), keyKind_(nac.keyKind_), clusteringKeyOrdering_(nac.clusteringKeyOrdering_), isNotNullNondroppable_(nac.isNotNullNondroppable_), @@ -242,6 +245,7 @@ public: inline const char* getComputedColumnExprString() const { return computedColumnExpression_; } inline NABoolean isStoredOnDisk() const { return storedOnDisk_; } inline NABoolean isAddedColumn() const { return addedColumn_; } + inline NABoolean isAlteredColumn() const { return alteredColumn_; } inline NABoolean isSaltColumn() const { return isSaltColumn_;} inline NABoolean isDivisioningColumn() const { return isDivisioningColumn_; } @@ -518,6 +522,11 @@ private: NABoolean addedColumn_; // ---------------------------------------------------- + // Set to TRUE if this column was altered by datatype change + // ---------------------------------------------------- + NABoolean alteredColumn_; + + // ---------------------------------------------------- // Set to TRUE if there is a join predicate on this column. // ---------------------------------------------------- NABoolean hasJoinPred_; http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/optimizer/NATable.cpp ---------------------------------------------------------------------- diff --git a/core/sql/optimizer/NATable.cpp b/core/sql/optimizer/NATable.cpp index 88036c6..0e59dcf 100644 --- a/core/sql/optimizer/NATable.cpp +++ b/core/sql/optimizer/NATable.cpp @@ -3379,6 +3379,7 @@ NABoolean createNAColumns(desc_struct *column_desc_list /*IN*/, colClass = USER_COLUMN; break; case 'A': + case 'C': colClass = USER_COLUMN; break; case 'M': // MVs -- @@ -3454,14 +3455,16 @@ NABoolean createNAColumns(desc_struct *column_desc_list /*IN*/, defaultValue, heading, column_desc->upshift, - (column_desc->colclass == 'A'), + ((column_desc->colclass == 'A') || + (column_desc->colclass == 'C')), COM_UNKNOWN_DIRECTION, FALSE, NULL, column_desc->stored_on_disk, computed_column_text, isSaltColumn, - isDivisioningColumn); + isDivisioningColumn, + (column_desc->colclass == 'C')); } else { http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/parser/StmtDDLAlterTableAlterColumn.cpp ---------------------------------------------------------------------- diff --git a/core/sql/parser/StmtDDLAlterTableAlterColumn.cpp b/core/sql/parser/StmtDDLAlterTableAlterColumn.cpp index cf994d2..b2c1f9c 100644 --- a/core/sql/parser/StmtDDLAlterTableAlterColumn.cpp +++ b/core/sql/parser/StmtDDLAlterTableAlterColumn.cpp @@ -55,16 +55,22 @@ StmtDDLAlterTableAlterColumn::getText() const //---------------------------------------------------------------------------- // CLASS StmtDDLAlterTableAlterColumnDatatype //---------------------------------------------------------------------------- -StmtDDLAlterTableAlterColumnDatatype::StmtDDLAlterTableAlterColumnDatatype( - const NAString &columnName - , NAType * natype - , CollHeap *heap) +StmtDDLAlterTableAlterColumnDatatype::StmtDDLAlterTableAlterColumnDatatype( + ElemDDLNode * pColumnToAlter + ,CollHeap * heap) : StmtDDLAlterTableAlterColumn(DDL_ALTER_TABLE_ALTER_COLUMN_DATATYPE, - columnName, + NAString(""), NULL, - heap) + heap), + pColumnToAlter_(pColumnToAlter) { - natype_ = natype->newCopy(heap); + ElemDDLColDef *pColDef = pColumnToAlter->castToElemDDLColDef(); + if (pColDef NEQ NULL) + { + getColDefArray().insert(pColDef); + } + else + *SqlParser_Diags << DgSqlCode(-1001); } // http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/parser/StmtDDLAlterTableAlterColumn.h ---------------------------------------------------------------------- diff --git a/core/sql/parser/StmtDDLAlterTableAlterColumn.h b/core/sql/parser/StmtDDLAlterTableAlterColumn.h index 92fe23f..7ad20de 100644 --- a/core/sql/parser/StmtDDLAlterTableAlterColumn.h +++ b/core/sql/parser/StmtDDLAlterTableAlterColumn.h @@ -144,9 +144,8 @@ class StmtDDLAlterTableAlterColumnDatatype : public StmtDDLAlterTableAlterColumn public: // constructor - StmtDDLAlterTableAlterColumnDatatype( const NAString &columnName - , NAType * natype - , CollHeap *heap = PARSERHEAP()); + StmtDDLAlterTableAlterColumnDatatype( ElemDDLNode * pColumnToAlter + ,CollHeap * heap = PARSERHEAP()); // virtual destructor virtual ~StmtDDLAlterTableAlterColumnDatatype(); @@ -157,12 +156,17 @@ public: // method for tracing virtual const NAString getText() const; - const NAType * getDatatype() const { return natype_; } - NAType * getType() { return natype_; } + inline ElemDDLNode * getColToAlter() { return pColumnToAlter_; }; + inline ElemDDLColDefArray & getColDefArray() { return columnDefArray_; }; private: - NAType * natype_; + // column definition + ElemDDLNode * pColumnToAlter_; + + // list of (only one) column definition + ElemDDLColDefArray columnDefArray_; + // // please do not use the following methods // @@ -174,5 +178,4 @@ private: }; // class StmtDDLAlterTableAlterColumnDatatype - #endif //STMTDDLALTERTABLEALTERCOLUMN_H http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/parser/sqlparser.y ---------------------------------------------------------------------- diff --git a/core/sql/parser/sqlparser.y b/core/sql/parser/sqlparser.y index 4e8033d..e565f14 100755 --- a/core/sql/parser/sqlparser.y +++ b/core/sql/parser/sqlparser.y @@ -31229,13 +31229,11 @@ alter_table_column_clause : TOK_COLUMN identifier heading } // type pStmtDDL -alter_table_alter_column_datatype : TOK_ALTER TOK_COLUMN column_name predefined_type +alter_table_alter_column_datatype : TOK_ALTER TOK_COLUMN column_definition { $$ = new (PARSERHEAP()) StmtDDLAlterTableAlterColumnDatatype( - *$3, // column name - $4 ); - delete $3; + $3 /* column definition */); restoreInferCharsetState(); } http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/regress/compGeneral/EXPECTED071 ---------------------------------------------------------------------- diff --git a/core/sql/regress/compGeneral/EXPECTED071 b/core/sql/regress/compGeneral/EXPECTED071 index a5a4d39..8c1813c 100644 --- a/core/sql/regress/compGeneral/EXPECTED071 +++ b/core/sql/regress/compGeneral/EXPECTED071 @@ -162,8 +162,8 @@ MTDTRIGTARGET2D BT 0 STORE_ID 0 4 U MTDTRIGTARGET2D BT 1 ITEM_ID 0 4 U 1 3 none MTDTRIGTARGET2D BT 2 SALE_DATE 0 4 U 3 4 none MTDTRIGTARGET2D BT 3 SALE_AMT ? 8 U 2 none none -MTDTRIGTARGET2D BT 4 _DIVISION_1_ 0 4 S 7 1 DATE_PART('YEARMONTH',SALE_DATE) -MTDTRIGTARGET2D BT 5 SALE_AMT_BEFORE ? 8 A 3 none none +MTDTRIGTARGET2D BT 4 SALE_AMT_BEFORE ? 8 A 3 none none +MTDTRIGTARGET2D BT 5 _DIVISION_1_ 0 4 S 7 1 DATE_PART('YEARMONTH',SALE_DATE) --- 49 row(s) selected. >> @@ -1414,8 +1414,8 @@ MTDTRIGTARGET2D BT 0 STORE_ID 0 4 U MTDTRIGTARGET2D BT 1 ITEM_ID 0 4 U 1 3 none MTDTRIGTARGET2D BT 2 SALE_DATE 0 4 U 3 4 none MTDTRIGTARGET2D BT 3 SALE_AMT ? 8 U 2 none none -MTDTRIGTARGET2D BT 4 _DIVISION_1_ 0 4 S 7 1 DATE_PART('YEARMONTH',SALE_DATE) -MTDTRIGTARGET2D BT 5 SALE_AMT_BEFORE ? 8 A 3 none none +MTDTRIGTARGET2D BT 4 SALE_AMT_BEFORE ? 8 A 3 none none +MTDTRIGTARGET2D BT 5 _DIVISION_1_ 0 4 S 7 1 DATE_PART('YEARMONTH',SALE_DATE) --- 70 row(s) selected. >>prepare smdviewquery from http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/regress/core/EXPECTED056.SB ---------------------------------------------------------------------- diff --git a/core/sql/regress/core/EXPECTED056.SB b/core/sql/regress/core/EXPECTED056.SB index 4ddfcd4..f1ebf88 100755 --- a/core/sql/regress/core/EXPECTED056.SB +++ b/core/sql/regress/core/EXPECTED056.SB @@ -1,14 +1,14 @@ >>obey TEST056(tests1); >>showddl T056t10; -CREATE TABLE SEABASE.SCH.T056T10 +CREATE TABLE TRAFODION.SCH.T056T10 ( SWALLOW INT DEFAULT 121 NOT NULL NOT DROPPABLE , BARNOWL INT DEFAULT 1000 NOT NULL NOT DROPPABLE ) ; -CREATE UNIQUE INDEX T056IN5 ON SEABASE.SCH.T056T10 +CREATE UNIQUE INDEX T056IN5 ON TRAFODION.SCH.T056T10 ( BARNOWL ASC ) @@ -22,7 +22,7 @@ CREATE UNIQUE INDEX T056IN5 ON SEABASE.SCH.T056T10 >>--showlabel index T056in5,detail; >>showddl T056t11; -CREATE TABLE SEABASE.SCH.T056T11 +CREATE TABLE TRAFODION.SCH.T056T11 ( WREN INT NO DEFAULT NOT NULL NOT DROPPABLE , JUNCO INT NO DEFAULT NOT NULL NOT DROPPABLE @@ -31,7 +31,7 @@ CREATE TABLE SEABASE.SCH.T056T11 ) ; -CREATE UNIQUE INDEX T056IN6 ON SEABASE.SCH.T056T11 +CREATE UNIQUE INDEX T056IN6 ON TRAFODION.SCH.T056T11 ( BLACKBIRD ASC ) @@ -102,14 +102,14 @@ CREATE UNIQUE INDEX T056IN6 ON SEABASE.SCH.T056T11 >> >>showddl T056t10; -CREATE TABLE SEABASE.SCH.T056T10 +CREATE TABLE TRAFODION.SCH.T056T10 ( SWALLOW INT DEFAULT 121 NOT NULL NOT DROPPABLE , BARNOWL INT DEFAULT 1000 NOT NULL NOT DROPPABLE - , DUCK INT DEFAULT 20 NOT NULL NOT DROPPABLE /* - added col */ - , GOSLING INT DEFAULT 700 HEADING 'goose' /* added - col */ + , DUCK INT DEFAULT 20 NOT NULL NOT DROPPABLE + /*added_col*/ + , GOSLING INT DEFAULT 700 HEADING 'goose' + /*added_col*/ ) ; @@ -135,17 +135,17 @@ ALTER TABLE TRAFODION.SCH.T056T10 ADD CONSTRAINT TRAFODION.SCH.DUCK_PK UNIQUE --- SQL operation complete. >>showddl T056t11; -CREATE TABLE SEABASE.SCH.T056T11 +CREATE TABLE TRAFODION.SCH.T056T11 ( WREN INT NO DEFAULT NOT NULL NOT DROPPABLE , JUNCO INT NO DEFAULT NOT NULL NOT DROPPABLE , BLACKBIRD INT DEFAULT NULL - , BLUEJAY INT DEFAULT 203 NOT NULL NOT DROPPABLE /* - added col */ - , RAVEN INT DEFAULT NULL /* added col */ - , SEAGULL INT DEFAULT 400 NOT NULL NOT DROPPABLE /* - added col */ - , ROBIN INT DEFAULT 410 /* added col */ + , BLUEJAY INT DEFAULT 203 NOT NULL NOT DROPPABLE + /*added_col*/ + , RAVEN INT DEFAULT NULL /*added_col*/ + , SEAGULL INT DEFAULT 400 NOT NULL NOT DROPPABLE + /*added_col*/ + , ROBIN INT DEFAULT 410 /*added_col*/ , PRIMARY KEY (WREN ASC, JUNCO ASC) ) ; @@ -185,10 +185,10 @@ ALTER TABLE TRAFODION.SCH.T056T11 ADD CONSTRAINT TRAFODION.SCH.T056T11_CK >>#ifMX >>showddl T056vw12; -CREATE VIEW SEABASE.SCH.T056VW12 AS - SELECT SEABASE.SCH.T056T10.DUCK, SEABASE.SCH.T056T11.RAVEN, - SEABASE.SCH.T056T10.SWALLOW, SEABASE.SCH.T056T11.WREN FROM - SEABASE.SCH.T056T10, SEABASE.SCH.T056T11 ; +CREATE VIEW TRAFODION.SCH.T056VW12 AS + SELECT TRAFODION.SCH.T056T10.DUCK, TRAFODION.SCH.T056T11.RAVEN, + TRAFODION.SCH.T056T10.SWALLOW, TRAFODION.SCH.T056T11.WREN FROM + TRAFODION.SCH.T056T10, TRAFODION.SCH.T056T11 ; --- SQL operation complete. >>#ifMX @@ -2030,7 +2030,7 @@ T056T56_COL T056T56_COL2 T056T56_COL3 T056T56_COL4 --- SQL operation complete. >>showddl t056t57; -CREATE TABLE SEABASE.SCH.T056T57 +CREATE TABLE TRAFODION.SCH.T056T57 ( A1 NUMERIC(2, 2) DEFAULT 0 NOT NULL NOT DROPPABLE @@ -2055,7 +2055,7 @@ A1 --- SQL operation complete. >>showddl t056t58; -CREATE TABLE SEABASE.SCH.T056T58 +CREATE TABLE TRAFODION.SCH.T056T58 ( A1 DECIMAL(4, 4) DEFAULT -0.0000 NOT NULL NOT DROPPABLE @@ -2080,7 +2080,7 @@ A1 --- SQL operation complete. >>showddl t056t59; -CREATE TABLE SEABASE.SCH.T056T59 +CREATE TABLE TRAFODION.SCH.T056T59 ( A1 DECIMAL(3, 3) DEFAULT -0000.12 NOT NULL NOT DROPPABLE @@ -2105,7 +2105,7 @@ A1 --- SQL operation complete. >>showddl t056t60; -CREATE TABLE SEABASE.SCH.T056T60 +CREATE TABLE TRAFODION.SCH.T056T60 ( A1 NUMERIC(2, 2) UNSIGNED DEFAULT 0.00 NOT NULL NOT DROPPABLE @@ -2130,7 +2130,7 @@ A1 --- SQL operation complete. >>showddl t056t61; -CREATE TABLE SEABASE.SCH.T056T61 +CREATE TABLE TRAFODION.SCH.T056T61 ( A1 NUMERIC(2, 2) DEFAULT -0.0 NOT NULL NOT DROPPABLE @@ -2918,7 +2918,7 @@ I VCH1 VCH2 VCH3 >>obey test056(test6NullVarchar); >>drop table t056t64; -*** ERROR[1389] Object SEABASE.SCH.T056T64 does not exist in SeaBase. +*** ERROR[1389] Object TRAFODION.SCH.T056T64 does not exist in Trafodion. --- SQL operation failed with errors. >>create table t056t64 http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/regress/executor/EXPECTED013.SB ---------------------------------------------------------------------- diff --git a/core/sql/regress/executor/EXPECTED013.SB b/core/sql/regress/executor/EXPECTED013.SB index e4faaec..0b31ff5 100644 --- a/core/sql/regress/executor/EXPECTED013.SB +++ b/core/sql/regress/executor/EXPECTED013.SB @@ -21,7 +21,7 @@ >>invoke t013t1; -- Definition of Trafodion table TRAFODION.T013_SCH.T013T1 --- Definition current Sat Jan 23 02:44:37 2016 +-- Definition current Sun Feb 21 07:35:15 2016 ( A INT DEFAULT NULL @@ -49,7 +49,7 @@ A >>invoke t013t1; -- Definition of Trafodion volatile table T013T1 --- Definition current Sat Jan 23 02:44:54 2016 +-- Definition current Sun Feb 21 07:35:27 2016 ( A INT NO DEFAULT NOT NULL NOT DROPPABLE @@ -111,7 +111,7 @@ A >>invoke t013t1; -- Definition of Trafodion table TRAFODION.T013_SCH.T013T1 --- Definition current Sat Jan 23 02:45:57 2016 +-- Definition current Sun Feb 21 07:36:26 2016 ( A INT DEFAULT NULL @@ -136,7 +136,7 @@ A >>invoke t013t1; -- Definition of Trafodion volatile table T013T1 --- Definition current Sat Jan 23 02:46:10 2016 +-- Definition current Sun Feb 21 07:36:38 2016 ( A INT NO DEFAULT NOT NULL NOT DROPPABLE @@ -175,7 +175,7 @@ A B C >>invoke t013t1; -- Definition of Trafodion table TRAFODION.T013_SCH.T013T1 --- Definition current Sat Jan 23 02:46:25 2016 +-- Definition current Sun Feb 21 07:36:52 2016 ( A INT DEFAULT NULL @@ -197,7 +197,7 @@ A >>invoke t013t1; -- Definition of Trafodion volatile table T013T1 --- Definition current Sat Jan 23 02:46:32 2016 +-- Definition current Sun Feb 21 07:36:58 2016 ( A INT NO DEFAULT NOT NULL NOT DROPPABLE @@ -448,12 +448,12 @@ CONTROL QUERY DEFAULT >>invoke t013t1; -- Definition of Trafodion table TRAFODION.T013_SCH.T013T1 --- Definition current Sat Jan 23 02:47:38 2016 +-- Definition current Sun Feb 21 07:37:55 2016 ( A INT DEFAULT NULL - , Z INT DEFAULT 0 NOT NULL NOT DROPPABLE /* - added col */ + , Z INT DEFAULT 0 NOT NULL NOT DROPPABLE + /*added_col*/ ) --- SQL operation complete. @@ -468,12 +468,12 @@ CONTROL QUERY DEFAULT >>invoke t013t1; -- Definition of Trafodion table TRAFODION.T013_SCH.T013T1 --- Definition current Sat Jan 23 02:47:43 2016 +-- Definition current Sun Feb 21 07:38:00 2016 ( A INT DEFAULT NULL - , Z INT DEFAULT 0 NOT NULL NOT DROPPABLE /* - added col */ + , Z INT DEFAULT 0 NOT NULL NOT DROPPABLE + /*added_col*/ ) --- SQL operation complete. @@ -559,7 +559,7 @@ control query shape nested_join(anything,anything); >>invoke t013t3; -- Definition of Trafodion table TRAFODION.T013SCH1.T013T3 --- Definition current Sat Jan 23 02:48:28 2016 +-- Definition current Sun Feb 21 07:38:45 2016 ( A INT DEFAULT NULL @@ -576,7 +576,7 @@ control query shape nested_join(anything,anything); >>invoke t013t3; -- Definition of Trafodion volatile table T013T3 --- Definition current Sat Jan 23 02:48:35 2016 +-- Definition current Sun Feb 21 07:38:50 2016 ( A INT NO DEFAULT NOT NULL NOT DROPPABLE @@ -591,7 +591,7 @@ control query shape nested_join(anything,anything); >>invoke t013t3; -- Definition of Trafodion table TRAFODION.T013SCH1.T013T3 --- Definition current Sat Jan 23 02:48:47 2016 +-- Definition current Sun Feb 21 07:39:03 2016 ( A INT DEFAULT NULL @@ -656,7 +656,7 @@ CREATE VOLATILE TABLE T013T3 >>invoke t013t3; -- Definition of Trafodion table TRAFODION.T013SCH1.T013T3 --- Definition current Sat Jan 23 02:49:31 2016 +-- Definition current Sun Feb 21 07:39:46 2016 ( A INT DEFAULT NULL @@ -1277,12 +1277,12 @@ CREATE VOLATILE TABLE T013T1 >>invoke t013t1; -- Definition of Trafodion table TRAFODION.T013_SCH.T013T1 --- Definition current Sat Jan 23 02:55:57 2016 +-- Definition current Sun Feb 21 07:46:01 2016 ( A INT DEFAULT NULL - , Z INT DEFAULT 0 NOT NULL NOT DROPPABLE /* - added col */ + , Z INT DEFAULT 0 NOT NULL NOT DROPPABLE + /*added_col*/ ) --- SQL operation complete. http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/regress/privs2/EXPECTED138 ---------------------------------------------------------------------- diff --git a/core/sql/regress/privs2/EXPECTED138 b/core/sql/regress/privs2/EXPECTED138 index a67e390..92caae5 100644 --- a/core/sql/regress/privs2/EXPECTED138 +++ b/core/sql/regress/privs2/EXPECTED138 @@ -830,7 +830,7 @@ CREATE TABLE TRAFODION.T138SCH.USER1_T1 ( C1 INT NO DEFAULT NOT NULL NOT DROPPABLE , C2 INT DEFAULT NULL - , C3 INT DEFAULT 0 /* added col */ + , C3 INT DEFAULT 0 /*added_col*/ , PRIMARY KEY (C1 ASC) ) ; http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/regress/seabase/EXPECTED011 ---------------------------------------------------------------------- diff --git a/core/sql/regress/seabase/EXPECTED011 b/core/sql/regress/seabase/EXPECTED011 index 012f55f..61031c9 100644 --- a/core/sql/regress/seabase/EXPECTED011 +++ b/core/sql/regress/seabase/EXPECTED011 @@ -7,7 +7,7 @@ >>invoke T011T1; -- Definition of Trafodion table TRAFODION.SCH.T011T1 --- Definition current Sat Jan 23 04:06:15 2016 +-- Definition current Wed Feb 24 09:06:39 2016 ( A INT NO DEFAULT NOT NULL NOT DROPPABLE @@ -142,7 +142,7 @@ A B ------------------------------------------------------------------ PLAN SUMMARY MODULE_NAME .............. DYNAMICALLY COMPILED STATEMENT_NAME ........... NOT NAMED -PLAN_ID .................. 212320281977039065 +PLAN_ID .................. 212323064800054288 ROWS_OUT ................. 7 EST_TOTAL_COST ........... 0.01 STATEMENT ................ select * from t011t1 where a >= 3 and a < 5; @@ -181,7 +181,7 @@ DESCRIPTION SCHEMA ................. TRAFODION.SCH QUERY_CACHE ............ 0 GENERATE_EXPLAIN ....... ON - ObjectUIDs ............. 3130652840489752733 + ObjectUIDs ............. 2452863879398277316 select_list ............ TRAFODION.SCH.T011T1.A, TRAFODION.SCH.T011T1.B @@ -1268,7 +1268,7 @@ METRIC_TEXT_TABLE >>invoke trafodion."_REPOS_".metric_query_table; -- Definition of Trafodion table TRAFODION."_REPOS_".METRIC_QUERY_TABLE --- Definition current Sat Jan 23 04:08:38 2016 +-- Definition current Wed Feb 24 09:08:40 2016 ( INSTANCE_ID INT UNSIGNED NO DEFAULT NOT NULL NOT @@ -1450,7 +1450,7 @@ METRIC_TEXT_TABLE >>-- get qid for the prepared stmt >>get qid for statement explstmt; -MXID11000005561212320281953925061000000000206U3333300_1924_EXPLSTMT +MXID11000020741212323064781124001000000000206U3333300_1924_EXPLSTMT --- SQL operation complete. >> @@ -1502,7 +1502,7 @@ SEQ_NUM OPERATOR --- SQL command prepared. >>get qid for statement explstmt2; -MXID11000005561212320281953925061000000000206U3333300_1935_EXPLSTMT2 +MXID11000020741212323064781124001000000000206U3333300_1935_EXPLSTMT2 --- SQL operation complete. >>set qid MXID123456 for explstmt2; @@ -2067,91 +2067,6 @@ LC RC OP OPERATOR OPT DESCRIPTION CARD --- SQL operation complete. >> ->>-- tests for alter column ->>create table t011t7(a int not null, b varchar(2), -+> c varchar(4) character set utf8 not null); - ---- SQL operation complete. ->>invoke t011t7; - --- Definition of Trafodion table TRAFODION.SCH.T011T7 --- Definition current Sat Jan 23 04:09:41 2016 - - ( - A INT NO DEFAULT NOT NULL NOT DROPPABLE - , B VARCHAR(2) CHARACTER SET ISO88591 COLLATE - DEFAULT DEFAULT NULL - , C VARCHAR(4 CHARS) CHARACTER SET UTF8 - COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE - ) - ---- SQL operation complete. ->>alter table t011t7 alter column b varchar(3); - ---- SQL operation complete. ->>invoke t011t7; - --- Definition of Trafodion table TRAFODION.SCH.T011T7 --- Definition current Sat Jan 23 04:09:45 2016 - - ( - A INT NO DEFAULT NOT NULL NOT DROPPABLE - , B VARCHAR(3) CHARACTER SET ISO88591 COLLATE - DEFAULT DEFAULT NULL - , C VARCHAR(4 CHARS) CHARACTER SET UTF8 - COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE - ) - ---- SQL operation complete. ->>alter table t011t7 alter column c varchar(5) character set utf8; - ---- SQL operation complete. ->>invoke t011t7; - --- Definition of Trafodion table TRAFODION.SCH.T011T7 --- Definition current Sat Jan 23 04:09:49 2016 - - ( - A INT NO DEFAULT NOT NULL NOT DROPPABLE - , B VARCHAR(3) CHARACTER SET ISO88591 COLLATE - DEFAULT DEFAULT NULL - , C VARCHAR(20 BYTES) CHARACTER SET UTF8 - COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE - ) - ---- SQL operation complete. ->> ->>-- negative tests for alter column ->>alter table t011t7 alter column a largeint; - -*** ERROR[1404] Column A cannot be altered. Reason: Old and New datatypes must be VARCHAR. - ---- SQL operation failed with errors. ->>alter table t011t7 alter column b int; - -*** ERROR[1404] Column B cannot be altered. Reason: Old and New datatypes must be VARCHAR. - ---- SQL operation failed with errors. ->>alter table t011t7 alter column b varchar(4) character set utf8; - -*** ERROR[1404] Column B cannot be altered. Reason: Old and New character sets must be the same. - ---- SQL operation failed with errors. ->>alter table t011t7 alter column c varchar(6); - -*** ERROR[1404] Column C cannot be altered. Reason: Old and New character sets must be the same. - ---- SQL operation failed with errors. ->>alter table t011t7 alter column b varchar(2); - -*** ERROR[1404] Column B cannot be altered. Reason: New length must be greater than or equal to old length. - ---- SQL operation failed with errors. ->>alter table t011t7 alter column c varchar(4) character set utf8; - -*** ERROR[1404] Column C cannot be altered. Reason: New length must be greater than or equal to old length. - ---- SQL operation failed with errors. >> >> >> @@ -2191,7 +2106,9 @@ LC RC OP OPERATOR OPT DESCRIPTION CARD >> >>drop table t011t7; ---- SQL operation complete. +*** ERROR[1389] Object TRAFODION.SCH.T011T7 does not exist in Trafodion. + +--- SQL operation failed with errors. >> >>-- delete explain for statement explstmt from repository >>set parserflags 131072; http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/regress/seabase/EXPECTED027 ---------------------------------------------------------------------- diff --git a/core/sql/regress/seabase/EXPECTED027 b/core/sql/regress/seabase/EXPECTED027 index 5071189..8c48546 100644 --- a/core/sql/regress/seabase/EXPECTED027 +++ b/core/sql/regress/seabase/EXPECTED027 @@ -12,7 +12,7 @@ >>invoke t027t01; -- Definition of Trafodion table TRAFODION.SCH027.T027T01 --- Definition current Tue Nov 10 19:18:48 2015 +-- Definition current Fri Feb 26 20:36:16 2016 ( A INT NO DEFAULT NOT NULL NOT DROPPABLE @@ -39,7 +39,7 @@ CREATE TABLE TRAFODION.SCH027.T027T01 >>invoke t027t01; -- Definition of Trafodion table TRAFODION.SCH027.T027T01 --- Definition current Tue Nov 10 19:18:55 2015 +-- Definition current Fri Feb 26 20:36:25 2016 ( "cf".A INT NO DEFAULT NOT NULL NOT DROPPABLE @@ -67,7 +67,7 @@ CREATE TABLE TRAFODION.SCH027.T027T01 >>invoke t027t01; -- Definition of Trafodion table TRAFODION.SCH027.T027T01 --- Definition current Tue Nov 10 19:19:04 2015 +-- Definition current Fri Feb 26 20:36:30 2016 ( "cf".A INT NO DEFAULT NOT NULL NOT DROPPABLE @@ -98,7 +98,7 @@ CREATE TABLE TRAFODION.SCH027.T027T01 >>invoke t027t01; -- Definition of Trafodion table TRAFODION.SCH027.T027T01 --- Definition current Tue Nov 10 19:19:14 2015 +-- Definition current Fri Feb 26 20:36:39 2016 ( "cf".A INT NO DEFAULT NOT NULL NOT DROPPABLE @@ -127,7 +127,7 @@ CREATE TABLE TRAFODION.SCH027.T027T01 >>invoke t027t01; -- Definition of Trafodion table TRAFODION.SCH027.T027T01 --- Definition current Tue Nov 10 19:19:19 2015 +-- Definition current Fri Feb 26 20:36:40 2016 ( "cf".A INT NO DEFAULT NOT NULL NOT DROPPABLE @@ -191,13 +191,13 @@ A B C >>invoke t027t01; -- Definition of Trafodion table TRAFODION.SCH027.T027T01 --- Definition current Tue Nov 10 19:19:22 2015 +-- Definition current Fri Feb 26 20:36:46 2016 ( "cf".A INT NO DEFAULT NOT NULL NOT DROPPABLE , "cf2".B INT DEFAULT NULL , CF3.C INT DEFAULT NULL - , "cf2".D INT DEFAULT NULL /* added col */ + , "cf2".D INT DEFAULT NULL /*added_col*/ ) --- SQL operation complete. @@ -208,7 +208,7 @@ CREATE TABLE TRAFODION.SCH027.T027T01 "cf".A INT NO DEFAULT NOT NULL NOT DROPPABLE , "cf2".B INT DEFAULT NULL , CF3.C INT DEFAULT NULL - , "cf2".D INT DEFAULT NULL /* added col */ + , "cf2".D INT DEFAULT NULL /*added_col*/ , PRIMARY KEY (A ASC) ) ATTRIBUTES DEFAULT COLUMN FAMILY 'cf' @@ -228,14 +228,14 @@ CREATE INDEX T027T01I1 ON TRAFODION.SCH027.T027T01 >>invoke t027t01; -- Definition of Trafodion table TRAFODION.SCH027.T027T01 --- Definition current Tue Nov 10 19:19:29 2015 +-- Definition current Fri Feb 26 20:36:49 2016 ( "cf".A INT NO DEFAULT NOT NULL NOT DROPPABLE , "cf2".B INT DEFAULT NULL , CF3.C INT DEFAULT NULL - , "cf2".D INT DEFAULT NULL /* added col */ - , "cf4".E INT DEFAULT NULL /* added col */ + , "cf2".D INT DEFAULT NULL /*added_col*/ + , "cf4".E INT DEFAULT NULL /*added_col*/ ) --- SQL operation complete. @@ -246,8 +246,8 @@ CREATE TABLE TRAFODION.SCH027.T027T01 "cf".A INT NO DEFAULT NOT NULL NOT DROPPABLE , "cf2".B INT DEFAULT NULL , CF3.C INT DEFAULT NULL - , "cf2".D INT DEFAULT NULL /* added col */ - , "cf4".E INT DEFAULT NULL /* added col */ + , "cf2".D INT DEFAULT NULL /*added_col*/ + , "cf4".E INT DEFAULT NULL /*added_col*/ , PRIMARY KEY (A ASC) ) ATTRIBUTES DEFAULT COLUMN FAMILY 'cf' @@ -267,13 +267,13 @@ CREATE INDEX T027T01I1 ON TRAFODION.SCH027.T027T01 >>invoke t027t01; -- Definition of Trafodion table TRAFODION.SCH027.T027T01 --- Definition current Tue Nov 10 19:19:31 2015 +-- Definition current Fri Feb 26 20:36:54 2016 ( "cf".A INT NO DEFAULT NOT NULL NOT DROPPABLE , "cf2".B INT DEFAULT NULL , CF3.C INT DEFAULT NULL - , "cf4".E INT DEFAULT NULL /* added col */ + , "cf4".E INT DEFAULT NULL /*added_col*/ ) --- SQL operation complete. @@ -284,7 +284,7 @@ CREATE TABLE TRAFODION.SCH027.T027T01 "cf".A INT NO DEFAULT NOT NULL NOT DROPPABLE , "cf2".B INT DEFAULT NULL , CF3.C INT DEFAULT NULL - , "cf4".E INT DEFAULT NULL /* added col */ + , "cf4".E INT DEFAULT NULL /*added_col*/ , PRIMARY KEY (A ASC) ) ATTRIBUTES DEFAULT COLUMN FAMILY 'cf' @@ -304,14 +304,14 @@ CREATE INDEX T027T01I1 ON TRAFODION.SCH027.T027T01 >>invoke t027t01; -- Definition of Trafodion table TRAFODION.SCH027.T027T01 --- Definition current Tue Nov 10 19:19:36 2015 +-- Definition current Fri Feb 26 20:36:55 2016 ( "cf".A INT NO DEFAULT NOT NULL NOT DROPPABLE , "cf2".B INT DEFAULT NULL , CF3.C INT DEFAULT NULL - , "cf4".E INT DEFAULT NULL /* added col */ - , "cf2".D INT DEFAULT NULL /* added col */ + , "cf4".E INT DEFAULT NULL /*added_col*/ + , "cf2".D INT DEFAULT NULL /*added_col*/ ) --- SQL operation complete. @@ -322,8 +322,8 @@ CREATE TABLE TRAFODION.SCH027.T027T01 "cf".A INT NO DEFAULT NOT NULL NOT DROPPABLE , "cf2".B INT DEFAULT NULL , CF3.C INT DEFAULT NULL - , "cf4".E INT DEFAULT NULL /* added col */ - , "cf2".D INT DEFAULT NULL /* added col */ + , "cf4".E INT DEFAULT NULL /*added_col*/ + , "cf2".D INT DEFAULT NULL /*added_col*/ , PRIMARY KEY (A ASC) ) ATTRIBUTES DEFAULT COLUMN FAMILY 'cf' @@ -343,7 +343,7 @@ CREATE INDEX T027T01I1 ON TRAFODION.SCH027.T027T01 >>invoke t027t011; -- Definition of Trafodion table TRAFODION.SCH027.T027T011 --- Definition current Tue Nov 10 19:19:47 2015 +-- Definition current Fri Feb 26 20:37:02 2016 ( "cf".A INT NO DEFAULT NOT NULL NOT DROPPABLE @@ -387,7 +387,7 @@ A B C E D >>invoke t027t011; -- Definition of Trafodion table TRAFODION.SCH027.T027T011 --- Definition current Tue Nov 10 19:19:53 2015 +-- Definition current Fri Feb 26 20:37:06 2016 ( "cf".A INT NO DEFAULT NOT NULL NOT DROPPABLE @@ -426,7 +426,7 @@ CREATE TABLE TRAFODION.SCH027.T027T011 >>invoke t027t011; -- Definition of Trafodion table TRAFODION.SCH027.T027T011 --- Definition current Tue Nov 10 19:20:03 2015 +-- Definition current Fri Feb 26 20:37:15 2016 ( A INT NO DEFAULT NOT NULL NOT DROPPABLE @@ -460,7 +460,7 @@ CREATE TABLE TRAFODION.SCH027.T027T011 >>invoke t027t011; -- Definition of Trafodion table TRAFODION.SCH027.T027T011 --- Definition current Tue Nov 10 19:20:07 2015 +-- Definition current Fri Feb 26 20:37:19 2016 ( "cf".A INT NO DEFAULT NOT NULL NOT DROPPABLE @@ -491,7 +491,7 @@ CREATE TABLE TRAFODION.SCH027.T027T011 >>invoke t027t03; -- Definition of Trafodion volatile table T027T03 --- Definition current Tue Nov 10 19:20:14 2015 +-- Definition current Fri Feb 26 20:37:25 2016 ( "cf1".A INT NO DEFAULT NOT NULL NOT DROPPABLE @@ -522,7 +522,7 @@ CREATE VOLATILE TABLE T027T03 >>invoke t027t03; -- Definition of Trafodion volatile table T027T03 --- Definition current Tue Nov 10 19:20:36 2015 +-- Definition current Fri Feb 26 20:37:45 2016 ( "cf1".A INT NO DEFAULT NOT NULL NOT DROPPABLE @@ -570,7 +570,7 @@ CREATE VOLATILE TABLE T027T03 >>invoke t027t02; -- Definition of Trafodion table TRAFODION.SCH027.T027T02 --- Definition current Tue Nov 10 19:20:58 2015 +-- Definition current Fri Feb 26 20:38:04 2016 ( "cf".A0A0 INT DEFAULT NULL @@ -621,7 +621,7 @@ CREATE VOLATILE TABLE T027T03 >>invoke t027t03; -- Definition of Trafodion table TRAFODION.SCH027.T027T03 --- Definition current Tue Nov 10 19:21:19 2015 +-- Definition current Fri Feb 26 20:38:26 2016 ( "cf1".A INT NO DEFAULT NOT NULL NOT DROPPABLE @@ -657,7 +657,7 @@ A B C D >>invoke t027t02; -- Definition of Trafodion table TRAFODION.SCH027.T027T02 --- Definition current Tue Nov 10 19:21:35 2015 +-- Definition current Fri Feb 26 20:38:40 2016 ( OBJECT_UID LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE @@ -756,8 +756,381 @@ create index t027t01i2 on t027t01("cf2".b); --- SQL operation failed with errors. >> +>>-- tests for alter varchar column +>>drop table if exists t027t7; + +--- SQL operation complete. +>>create table t027t7(a int not null, b varchar(2), ++> c varchar(4) character set utf8 not null, z int not null primary key) ++>salt using 2 partitions; + +--- SQL operation complete. +>> +>>invoke t027t7; + +-- Definition of Trafodion table TRAFODION.SCH027.T027T7 +-- Definition current Fri Feb 26 20:39:06 2016 + + ( + A INT NO DEFAULT NOT NULL NOT DROPPABLE + , B VARCHAR(2) CHARACTER SET ISO88591 COLLATE + DEFAULT DEFAULT NULL + , C VARCHAR(4 CHARS) CHARACTER SET UTF8 + COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE + , Z INT NO DEFAULT NOT NULL NOT DROPPABLE + ) + +--- SQL operation complete. +>>insert into t027t7 values (1, 'ab', 'cd', 10); + +--- 1 row(s) inserted. +>>select * from t027t7; + +A B C Z +----------- -- ---------------- ----------- + + 1 ab cd 10 + +--- 1 row(s) selected. +>>alter table t027t7 alter column b varchar(3); + +--- SQL operation complete. +>>invoke t027t7; + +-- Definition of Trafodion table TRAFODION.SCH027.T027T7 +-- Definition current Fri Feb 26 20:39:13 2016 + + ( + A INT NO DEFAULT NOT NULL NOT DROPPABLE + , B VARCHAR(3) CHARACTER SET ISO88591 COLLATE + DEFAULT DEFAULT NULL /*altered_col*/ + , C VARCHAR(4 CHARS) CHARACTER SET UTF8 + COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE + , Z INT NO DEFAULT NOT NULL NOT DROPPABLE + ) + +--- SQL operation complete. +>>alter table t027t7 alter column c varchar(5) character set utf8; + +--- SQL operation complete. +>>invoke t027t7; + +-- Definition of Trafodion table TRAFODION.SCH027.T027T7 +-- Definition current Fri Feb 26 20:39:35 2016 + + ( + A INT NO DEFAULT NOT NULL NOT DROPPABLE + , B VARCHAR(3) CHARACTER SET ISO88591 COLLATE + DEFAULT DEFAULT NULL /*altered_col*/ + , C VARCHAR(5 CHARS) CHARACTER SET UTF8 + COLLATE DEFAULT DEFAULT NULL /*altered_col*/ + , Z INT NO DEFAULT NOT NULL NOT DROPPABLE + ) + +--- SQL operation complete. +>>alter table t027t7 alter column c varchar(4) character set utf8; + +--- SQL operation complete. +>>invoke t027t7; + +-- Definition of Trafodion table TRAFODION.SCH027.T027T7 +-- Definition current Fri Feb 26 20:39:50 2016 + + ( + A INT NO DEFAULT NOT NULL NOT DROPPABLE + , B VARCHAR(3) CHARACTER SET ISO88591 COLLATE + DEFAULT DEFAULT NULL /*altered_col*/ + , C VARCHAR(4 CHARS) CHARACTER SET UTF8 + COLLATE DEFAULT DEFAULT NULL /*altered_col*/ + , Z INT NO DEFAULT NOT NULL NOT DROPPABLE + ) + +--- SQL operation complete. +>> +>>alter table t027t7 alter column a largeint; + +--- SQL operation complete. +>>invoke t027t7; + +-- Definition of Trafodion table TRAFODION.SCH027.T027T7 +-- Definition current Fri Feb 26 20:40:08 2016 + + ( + A LARGEINT DEFAULT NULL /*altered_col*/ + , B VARCHAR(3) CHARACTER SET ISO88591 COLLATE + DEFAULT DEFAULT NULL /*altered_col*/ + , C VARCHAR(4 CHARS) CHARACTER SET UTF8 + COLLATE DEFAULT DEFAULT NULL /*altered_col*/ + , Z INT NO DEFAULT NOT NULL NOT DROPPABLE + ) + +--- SQL operation complete. +>>alter table t027t7 alter column b varchar(4) character set utf8; + +--- SQL operation complete. +>>invoke t027t7; + +-- Definition of Trafodion table TRAFODION.SCH027.T027T7 +-- Definition current Fri Feb 26 20:40:26 2016 + + ( + A LARGEINT DEFAULT NULL /*altered_col*/ + , B VARCHAR(4 CHARS) CHARACTER SET UTF8 + COLLATE DEFAULT DEFAULT NULL /*altered_col*/ + , C VARCHAR(4 CHARS) CHARACTER SET UTF8 + COLLATE DEFAULT DEFAULT NULL /*altered_col*/ + , Z INT NO DEFAULT NOT NULL NOT DROPPABLE + ) + +--- SQL operation complete. +>>alter table t027t7 alter column c varchar(6); + +--- SQL operation complete. +>>invoke t027t7; + +-- Definition of Trafodion table TRAFODION.SCH027.T027T7 +-- Definition current Fri Feb 26 20:40:43 2016 + + ( + A LARGEINT DEFAULT NULL /*altered_col*/ + , B VARCHAR(4 CHARS) CHARACTER SET UTF8 + COLLATE DEFAULT DEFAULT NULL /*altered_col*/ + , C VARCHAR(6) CHARACTER SET ISO88591 COLLATE + DEFAULT DEFAULT NULL /*altered_col*/ + , Z INT NO DEFAULT NOT NULL NOT DROPPABLE + ) + +--- SQL operation complete. +>>alter table t027t7 alter column b varchar(2); + +--- SQL operation complete. +>>invoke t027t7; + +-- Definition of Trafodion table TRAFODION.SCH027.T027T7 +-- Definition current Fri Feb 26 20:40:58 2016 + + ( + A LARGEINT DEFAULT NULL /*altered_col*/ + , B VARCHAR(2) CHARACTER SET ISO88591 COLLATE + DEFAULT DEFAULT NULL /*altered_col*/ + , C VARCHAR(6) CHARACTER SET ISO88591 COLLATE + DEFAULT DEFAULT NULL /*altered_col*/ + , Z INT NO DEFAULT NOT NULL NOT DROPPABLE + ) + +--- SQL operation complete. +>>alter table t027t7 alter column a int; + +--- SQL operation complete. +>>invoke t027t7; + +-- Definition of Trafodion table TRAFODION.SCH027.T027T7 +-- Definition current Fri Feb 26 20:41:12 2016 + + ( + A INT DEFAULT NULL /*altered_col*/ + , B VARCHAR(2) CHARACTER SET ISO88591 COLLATE + DEFAULT DEFAULT NULL /*altered_col*/ + , C VARCHAR(6) CHARACTER SET ISO88591 COLLATE + DEFAULT DEFAULT NULL /*altered_col*/ + , Z INT NO DEFAULT NOT NULL NOT DROPPABLE + ) + +--- SQL operation complete. +>>alter table t027t7 alter column a smallint default 0 not null; + +--- SQL operation complete. +>>invoke t027t7; + +-- Definition of Trafodion table TRAFODION.SCH027.T027T7 +-- Definition current Fri Feb 26 20:41:30 2016 + + ( + A SMALLINT DEFAULT 0 NOT NULL NOT DROPPABLE + /*altered_col*/ + , B VARCHAR(2) CHARACTER SET ISO88591 COLLATE + DEFAULT DEFAULT NULL /*altered_col*/ + , C VARCHAR(6) CHARACTER SET ISO88591 COLLATE + DEFAULT DEFAULT NULL /*altered_col*/ + , Z INT NO DEFAULT NOT NULL NOT DROPPABLE + ) + +--- SQL operation complete. +>>select * from t027t7; + +A B C Z +------ -- ------ ----------- + + 1 ab cd 10 + +--- 1 row(s) selected. +>> +>>-- aligned format +>>drop table if exists t027t7; + +--- SQL operation complete. +>>create table t027t7(a int not null, b varchar(2), ++> c varchar(4) character set utf8 not null, z int not null primary key) ++>salt using 2 partitions attribute aligned format; + +--- SQL operation complete. +>>invoke t027t7; + +-- Definition of Trafodion table TRAFODION.SCH027.T027T7 +-- Definition current Fri Feb 26 20:41:52 2016 + + ( + A INT NO DEFAULT NOT NULL NOT DROPPABLE + , B VARCHAR(2) CHARACTER SET ISO88591 COLLATE + DEFAULT DEFAULT NULL + , C VARCHAR(4 CHARS) CHARACTER SET UTF8 + COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE + , Z INT NO DEFAULT NOT NULL NOT DROPPABLE + ) + +--- SQL operation complete. +>>insert into t027t7 values (1, 'ab', 'cd', 10); + +--- 1 row(s) inserted. +>>select * from t027t7; + +A B C Z +----------- -- ---------------- ----------- + + 1 ab cd 10 + +--- 1 row(s) selected. +>>alter table t027t7 alter column a largeint; + +--- SQL operation complete. +>>invoke t027t7; + +-- Definition of Trafodion table TRAFODION.SCH027.T027T7 +-- Definition current Fri Feb 26 20:42:09 2016 + + ( + A LARGEINT DEFAULT NULL /*altered_col*/ + , B VARCHAR(2) CHARACTER SET ISO88591 COLLATE + DEFAULT DEFAULT NULL + , C VARCHAR(4 CHARS) CHARACTER SET UTF8 + COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE + , Z INT NO DEFAULT NOT NULL NOT DROPPABLE + ) + +--- SQL operation complete. +>>select * from t027t7; + +A B C Z +-------------------- -- ---------------- ----------- + + 1 ab cd 10 + +--- 1 row(s) selected. +>>alter table t027t7 drop column b; + +--- SQL operation complete. +>>invoke t027t7; + +-- Definition of Trafodion table TRAFODION.SCH027.T027T7 +-- Definition current Fri Feb 26 20:42:35 2016 + + ( + A LARGEINT DEFAULT NULL /*altered_col*/ + , C VARCHAR(4 CHARS) CHARACTER SET UTF8 + COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE + , Z INT NO DEFAULT NOT NULL NOT DROPPABLE + ) + +--- SQL operation complete. +>>select * from t027t7; + +A C Z +-------------------- ---------------- ----------- + + 1 cd 10 + +--- 1 row(s) selected. +>>alter table t027t7 add column b char(10) default 'abc' not null; + +--- SQL operation complete. +>>invoke t027t7; + +-- Definition of Trafodion table TRAFODION.SCH027.T027T7 +-- Definition current Fri Feb 26 20:42:38 2016 + + ( + A LARGEINT DEFAULT NULL /*altered_col*/ + , C VARCHAR(4 CHARS) CHARACTER SET UTF8 + COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE + , Z INT NO DEFAULT NOT NULL NOT DROPPABLE + , B CHAR(10) CHARACTER SET ISO88591 COLLATE + DEFAULT DEFAULT _ISO88591'abc' NOT NULL NOT DROPPABLE /*added_col*/ + ) + +--- SQL operation complete. +>>select * from t027t7; + +A C Z B +-------------------- ---------------- ----------- ---------- + + 1 cd 10 abc + +--- 1 row(s) selected. +>>alter table t027t7 drop column b; + +--- SQL operation complete. +>>invoke t027t7; + +-- Definition of Trafodion table TRAFODION.SCH027.T027T7 +-- Definition current Fri Feb 26 20:43:02 2016 + + ( + A LARGEINT DEFAULT NULL /*altered_col*/ + , C VARCHAR(4 CHARS) CHARACTER SET UTF8 + COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE + , Z INT NO DEFAULT NOT NULL NOT DROPPABLE + ) + +--- SQL operation complete. +>>select * from t027t7; + +A C Z +-------------------- ---------------- ----------- + + 1 cd 10 + +--- 1 row(s) selected. +>> +>>-- negative tests for alter/drop column +>>alter table t027t7 alter column b int; + +*** ERROR[1009] Column B does not exist in the specified table. + +--- SQL operation failed with errors. +>>alter table t027t7 alter column a char(10); + +*** ERROR[1404] Column A cannot be altered. Reason: Old and New datatypes must be compatible. + +--- SQL operation failed with errors. +>>alter table t027t7 alter column c char(1); + +*** ERROR[8402] A string overflow occurred during the evaluation of a character expression. Conversion of Source Type:VARCHAR(REC_BYTE_V_ASCII,2 BYTES,ISO88591) Source Value:cd to Target Type:CHAR(REC_BYTE_F_ASCII,1 BYTES,ISO88591). + +*** ERROR[8839] Transaction was aborted. + +*** ERROR[1404] Column C cannot be altered. Reason: Old data could not be updated using the altered column definition. + +--- SQL operation failed with errors. +>>alter table t027t7 drop column e; + +*** ERROR[1009] Column E does not exist in the specified table. + +--- SQL operation failed with errors. >> >>-- cleanup +>>drop table if exists t027t7; + +--- SQL operation complete. >>drop table if exists t027t01; --- SQL operation complete. http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/regress/seabase/TEST011 ---------------------------------------------------------------------- diff --git a/core/sql/regress/seabase/TEST011 b/core/sql/regress/seabase/TEST011 index ed3b15d..d33bee0 100644 --- a/core/sql/regress/seabase/TEST011 +++ b/core/sql/regress/seabase/TEST011 @@ -557,22 +557,6 @@ select count(*) from t011t6b; drop table t011t6a ; drop table t011t6b ; --- tests for alter column -create table t011t7(a int not null, b varchar(2), - c varchar(4) character set utf8 not null); -invoke t011t7; -alter table t011t7 alter column b varchar(3); -invoke t011t7; -alter table t011t7 alter column c varchar(5) character set utf8; -invoke t011t7; - --- negative tests for alter column -alter table t011t7 alter column a largeint; -alter table t011t7 alter column b int; -alter table t011t7 alter column b varchar(4) character set utf8; -alter table t011t7 alter column c varchar(6); -alter table t011t7 alter column b varchar(2); -alter table t011t7 alter column c varchar(4) character set utf8; http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/regress/seabase/TEST027 ---------------------------------------------------------------------- diff --git a/core/sql/regress/seabase/TEST027 b/core/sql/regress/seabase/TEST027 index 82b8b82..d828640 100644 --- a/core/sql/regress/seabase/TEST027 +++ b/core/sql/regress/seabase/TEST027 @@ -20,6 +20,7 @@ -- @@@ END COPYRIGHT @@@ -- -- tests for support of multiple column families +-- tests for alter table alter column create schema trafodion.sch027; set schema trafodion.sch027; @@ -178,8 +179,65 @@ create table t027t02 ( a20.a20 int, a21.a21 int, a22.a22 int, a23.a23 int, a24.a24 int, a25.a25 int, a26.a26 int, a27.a27 int, a28.a28 int, a29.a29 int, a30.a30 int, a31.a31 int) attribute default column family 'cf'; +-- tests for alter varchar column +drop table if exists t027t7; +create table t027t7(a int not null, b varchar(2), + c varchar(4) character set utf8 not null, z int not null primary key) +salt using 2 partitions; + +invoke t027t7; +insert into t027t7 values (1, 'ab', 'cd', 10); +select * from t027t7; +alter table t027t7 alter column b varchar(3); +invoke t027t7; +alter table t027t7 alter column c varchar(5) character set utf8; +invoke t027t7; +alter table t027t7 alter column c varchar(4) character set utf8; +invoke t027t7; + +alter table t027t7 alter column a largeint; +invoke t027t7; +alter table t027t7 alter column b varchar(4) character set utf8; +invoke t027t7; +alter table t027t7 alter column c varchar(6); +invoke t027t7; +alter table t027t7 alter column b varchar(2); +invoke t027t7; +alter table t027t7 alter column a int; +invoke t027t7; +alter table t027t7 alter column a smallint default 0 not null; +invoke t027t7; +select * from t027t7; + +-- aligned format +drop table if exists t027t7; +create table t027t7(a int not null, b varchar(2), + c varchar(4) character set utf8 not null, z int not null primary key) +salt using 2 partitions attribute aligned format; +invoke t027t7; +insert into t027t7 values (1, 'ab', 'cd', 10); +select * from t027t7; +alter table t027t7 alter column a largeint; +invoke t027t7; +select * from t027t7; +alter table t027t7 drop column b; +invoke t027t7; +select * from t027t7; +alter table t027t7 add column b char(10) default 'abc' not null; +invoke t027t7; +select * from t027t7; +alter table t027t7 drop column b; +invoke t027t7; +select * from t027t7; + +-- negative tests for alter/drop column +alter table t027t7 alter column b int; +alter table t027t7 alter column a char(10); +alter table t027t7 alter column c char(1); +alter table t027t7 drop column e; -- cleanup +drop table if exists t027t7; drop table if exists t027t01; drop table if exists t027t02; drop table if exists t027t011; http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/sqlcomp/CmpDescribe.cpp ---------------------------------------------------------------------- diff --git a/core/sql/sqlcomp/CmpDescribe.cpp b/core/sql/sqlcomp/CmpDescribe.cpp index 480853b..8b692aa 100644 --- a/core/sql/sqlcomp/CmpDescribe.cpp +++ b/core/sql/sqlcomp/CmpDescribe.cpp @@ -200,11 +200,13 @@ short CmpDescribeSeabaseTable ( NABoolean withoutDivisioning = FALSE, NABoolean noTrailingSemi = FALSE, - // used to add or remove column definition from col list. - // valid for 'createLike' mode. Used for 'alter add/drop col'. + // used to add,rem,alter column definition from col list. + // valid for 'createLike' mode. + // Used for 'alter add/drop/alter col'. char * colName = NULL, - NABoolean isAdd = FALSE, - const NAColumn * nacol = NULL); + short ada = 0, // 0,add. 1,drop. 2,alter + const NAColumn * nacol = NULL, + const NAType * natype = NULL); short CmpDescribeSequence ( const CorrName &dtName, @@ -2304,26 +2306,37 @@ short CmpDescribeHiveTable ( } // type: 1, invoke. 2, showddl. 3, create_like -static short cmpDisplayColumn(const NAColumn *nac, - short type, - Space &space, char * buf, - Lng32 &ii, - NABoolean namesOnly, - NABoolean &identityCol, - NABoolean isExternalTable, - NABoolean isAlignedRowFormat) +short cmpDisplayColumn(const NAColumn *nac, + char * inColName, + const NAType *inNAT, + short displayType, + Space *inSpace, + char * buf, + Lng32 &ii, + NABoolean namesOnly, + NABoolean &identityCol, + NABoolean isExternalTable, + NABoolean isAlignedRowFormat) { + Space lSpace; + + Space * space; + if (inSpace) + space = inSpace; + else + space = &lSpace; + identityCol = FALSE; - const NAString &colName = nac->getColName(); + NAString colName(inColName ? inColName : nac->getColName()); NATable * naTable = (NATable*)nac->getNATable(); NAString colFam; - if ((nac->getNATable()->isSQLMXAlignedTable()) || + if ((nac->getNATable() && nac->getNATable()->isSQLMXAlignedTable()) || (nac->getHbaseColFam() == SEABASE_DEFAULT_COL_FAMILY) || isExternalTable) colFam = ""; - else if (nac->getNATable()->isSeabaseTable()) + else if (nac->getNATable() && nac->getNATable()->isSeabaseTable()) { int index = 0; CmpSeabaseDDL::extractTrafColFam(nac->getHbaseColFam(), index); @@ -2336,7 +2349,7 @@ static short cmpDisplayColumn(const NAColumn *nac, colFam += "."; } - if (type == 3) + if (displayType == 3) { NAString quotedColName = "\""; quotedColName += colName.data(); @@ -2358,12 +2371,12 @@ static short cmpDisplayColumn(const NAColumn *nac, { NAString colString(buf); Int32 j = ii; - outputColumnLine(space, colString, j); + outputColumnLine(*space, colString, j); return 0; } - const NAType * nat = nac->getType(); + const NAType * nat = (inNAT ? inNAT : nac->getType()); NAString nas; ((NAType*)nat)->getMyTypeAsText(&nas, FALSE); @@ -2399,7 +2412,7 @@ static short cmpDisplayColumn(const NAColumn *nac, defVal = "GENERATED ALWAYS AS IDENTITY"; NAString idOptions; - if ((type != 1) && (nac->getNATable()->getSGAttributes())) + if ((displayType != 1) && (nac->getNATable()->getSGAttributes())) nac->getNATable()->getSGAttributes()->display(NULL, &idOptions, TRUE); if (NOT idOptions.isNull()) @@ -2434,35 +2447,43 @@ static short cmpDisplayColumn(const NAColumn *nac, char * sqlmxRegr = getenv("SQLMX_REGRESS"); if ((! sqlmxRegr) || - (type == 3)) + (displayType == 3)) { if ((NOT isAlignedRowFormat) && CmpSeabaseDDL::isSerialized(nac->getHbaseColFlags())) attrStr += " SERIALIZED"; else if ((CmpCommon::getDefault(HBASE_SERIALIZATION) == DF_ON) || - (type == 3)) + (displayType == 3)) attrStr += " NOT SERIALIZED"; } - if (nac->isAddedColumn()) + if (displayType != 3) { - attrStr += " /* added col */ "; + if (nac->isAlteredColumn()) + { + attrStr += " /*altered_col*/ "; + } + else if (nac->isAddedColumn()) + { + attrStr += " /*added_col*/ "; + } } - + sprintf(&buf[strlen(buf)], "%s %s", nas.data(), attrStr.data()); NAString colString(buf); Int32 j = ii; - outputColumnLine(space, colString, j); + if (inSpace) + outputColumnLine(*space, colString, j); return 0; } // type: 1, invoke. 2, showddl. 3, create_like short cmpDisplayColumns(const NAColumnArray & naColArr, - short type, + short displayType, Space &space, char * buf, NABoolean displaySystemCols, NABoolean namesOnly, @@ -2470,8 +2491,9 @@ short cmpDisplayColumns(const NAColumnArray & naColArr, NABoolean isExternalTable, NABoolean isAlignedRowFormat, char * inColName = NULL, - NABoolean isAdd = FALSE, - const NAColumn * nacol = NULL) + short ada = 0, // 0,add. 1,drop. 2,alter + const NAColumn * nacol = NULL, + const NAType * natype = NULL) { Lng32 ii = 0; identityColPos = -1; @@ -2488,14 +2510,25 @@ short cmpDisplayColumns(const NAColumnArray & naColArr, const NAString &colName = nac->getColName(); - if ((inColName) && (NOT isAdd)) + if ((inColName) && (ada == 1)) { if (colName == inColName) // remove this column continue; } - if (cmpDisplayColumn(nac, type, space, buf, ii, namesOnly, identityCol, isExternalTable, isAlignedRowFormat)) - return -1; + if ((inColName) && (colName == inColName) && + (ada == 2) && (nacol) && (natype)) + { + if (cmpDisplayColumn(nac, NULL, natype, displayType, &space, buf, ii, namesOnly, identityCol, + isExternalTable, isAlignedRowFormat)) + return -1; + } + else + { + if (cmpDisplayColumn(nac, NULL, NULL, displayType, &space, buf, ii, namesOnly, identityCol, + isExternalTable, isAlignedRowFormat)) + return -1; + } if (identityCol) identityColPos = i; @@ -2503,31 +2536,36 @@ short cmpDisplayColumns(const NAColumnArray & naColArr, ii++; } - if ((inColName) && (isAdd) && (nacol)) + if ((inColName) && (ada == 0) && (nacol)) { - if (cmpDisplayColumn(nacol, type, space, buf, ii, namesOnly, identityCol, isExternalTable, isAlignedRowFormat)) + if (cmpDisplayColumn(nacol, NULL, NULL, displayType, &space, buf, ii, namesOnly, identityCol, + isExternalTable, isAlignedRowFormat)) return -1; } return 0; } -static short cmpDisplayPrimaryKey(const NAColumnArray & naColArr, - Lng32 numKeys, - NABoolean displaySystemCols, - Space &space, char * buf, - NABoolean displayCompact, - NABoolean displayAscDesc) +short cmpDisplayPrimaryKey(const NAColumnArray & naColArr, + Lng32 numKeys, + NABoolean displaySystemCols, + Space &space, char * buf, + NABoolean displayCompact, + NABoolean displayAscDesc, + NABoolean displayParens) { if (numKeys > 0) { - if (displayCompact) - sprintf(&buf[strlen(buf)], "("); - else + if (displayParens) { - outputShortLine(space, " ( "); + if (displayCompact) + sprintf(&buf[strlen(buf)], "("); + else + { + outputShortLine(space, " ( "); + } } - + NABoolean isFirst = TRUE; Int32 j = -1; for (Int32 jj = 0; jj < numKeys; jj++) @@ -2544,12 +2582,14 @@ static short cmpDisplayPrimaryKey(const NAColumnArray & naColArr, const NAString &keyName = nac->getColName(); if (displayCompact) - sprintf(&buf[strlen(buf)], "%s%s%s", - (NOT isFirst ? ", " : ""), - ANSI_ID(keyName.data()), - (displayAscDesc ? - (! naColArr.isAscending(jj) ? " DESC" : " ASC") : - " ")); + { + sprintf(&buf[strlen(buf)], "%s%s%s", + (NOT isFirst ? ", " : ""), + ANSI_ID(keyName.data()), + (displayAscDesc ? + (! naColArr.isAscending(jj) ? " DESC" : " ASC") : + " ")); + } else { sprintf(buf, "%s%s", @@ -2564,15 +2604,18 @@ static short cmpDisplayPrimaryKey(const NAColumnArray & naColArr, isFirst = FALSE; } // for - - if (displayCompact) - { - sprintf(&buf[strlen(buf)], ")"); - outputLine(space, buf, 2); - } - else + + if (displayParens) { - outputShortLine(space, " )"); + if (displayCompact) + { + sprintf(&buf[strlen(buf)], ")"); + outputLine(space, buf, 2); + } + else + { + outputShortLine(space, " )"); + } } } // if @@ -2593,8 +2636,9 @@ short CmpDescribeSeabaseTable ( NABoolean withoutDivisioning, NABoolean noTrailingSemi, char * colName, - NABoolean isAdd, - const NAColumn * nacol) + short ada, + const NAColumn * nacol, + const NAType * natype) { const NAString& tableName = dtName.getQualifiedNameObj().getQualifiedNameAsAnsiString(TRUE); @@ -2646,6 +2690,7 @@ short CmpDescribeSeabaseTable ( displayPrivilegeGrants = FALSE; // display syscols for invoke if not running regrs + // NABoolean displaySystemCols = ((!sqlmxRegr) && (type == 1)); NABoolean isView = (naTable->getViewText() ? TRUE : FALSE); @@ -2782,7 +2827,7 @@ short CmpDescribeSeabaseTable ( FALSE, identityColPos, isExternalTable, naTable->isSQLMXAlignedTable(), - colName, isAdd, nacol); + colName, ada, nacol, natype); Int32 nonSystemKeyCols = 0; NABoolean isStoreBy = FALSE; @@ -2861,7 +2906,7 @@ short CmpDescribeSeabaseTable ( cmpDisplayPrimaryKey(naf->getIndexKeyColumns(), naf->getIndexKeyColumns().entries(), displaySystemCols, - space, buf, TRUE, TRUE); + space, buf, TRUE, TRUE, TRUE); } // if } @@ -2876,7 +2921,7 @@ short CmpDescribeSeabaseTable ( cmpDisplayPrimaryKey(naf->getIndexKeyColumns(), naf->getIndexKeyColumns().entries(), displaySystemCols, - space, buf, TRUE, TRUE); + space, buf, TRUE, TRUE, TRUE); } if ((isSalted) && !withoutSalt) @@ -2985,6 +3030,7 @@ short CmpDescribeSeabaseTable ( NABoolean attributesSet = FALSE; if (((NOT sqlmxRegr) && ((NOT isAudited) || (isAligned))) || + ((sqlmxRegr) && (type == 3) && ((NOT isAudited) || (isAligned))) || ((NOT naTable->defaultColFam().isNull()) && (naTable->defaultColFam() != SEABASE_DEFAULT_COL_FAMILY))) { @@ -3132,7 +3178,7 @@ short CmpDescribeSeabaseTable ( cmpDisplayPrimaryKey(naf->getIndexKeyColumns(), numIndexCols, displaySystemCols, - space, buf, FALSE, TRUE); + space, buf, FALSE, TRUE, TRUE); if ((NOT sqlmxRegr) && isAligned) { @@ -3207,7 +3253,7 @@ short CmpDescribeSeabaseTable ( cmpDisplayPrimaryKey(nacarr, uniqConstr->keyColumns().entries(), FALSE, - space, &buf[strlen(buf)], FALSE, FALSE); + space, &buf[strlen(buf)], FALSE, FALSE, TRUE); outputShortLine(space, ";"); } // for @@ -3252,7 +3298,7 @@ short CmpDescribeSeabaseTable ( cmpDisplayPrimaryKey(nacarr, refConstr->keyColumns().entries(), FALSE, - space, &buf[strlen(buf)], FALSE, FALSE); + space, &buf[strlen(buf)], FALSE, FALSE, TRUE); const NAString& ansiOtherTableName = uniqueConstraintReferencedByMe.getTableName().getQualifiedNameAsAnsiString(TRUE); @@ -3272,7 +3318,7 @@ short CmpDescribeSeabaseTable ( cmpDisplayPrimaryKey(nacarr2, otherConstr->keyColumns().entries(), FALSE, - space, &buf[strlen(buf)], FALSE, FALSE); + space, &buf[strlen(buf)], FALSE, FALSE, TRUE); if (NOT refConstr->getIsEnforced()) { http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7b99938c/core/sql/sqlcomp/CmpSeabaseDDL.h ---------------------------------------------------------------------- diff --git a/core/sql/sqlcomp/CmpSeabaseDDL.h b/core/sql/sqlcomp/CmpSeabaseDDL.h index 5ab446e..e616f85 100644 --- a/core/sql/sqlcomp/CmpSeabaseDDL.h +++ b/core/sql/sqlcomp/CmpSeabaseDDL.h @@ -563,6 +563,9 @@ class CmpSeabaseDDL LobsStorage &lobStorage, ULng32 &hbaseColFlags, Int64 &colFlags); + + short getNAColumnFromColDef(ElemDDLColDef * colNode, + NAColumn* &naCol); short createRowId(NAString &key, NAString &part1, Lng32 part1MaxLen, @@ -905,7 +908,7 @@ class CmpSeabaseDDL NABoolean isCompound = FALSE); void createSeabaseTable( - StmtDDLCreateTable * createTableNode, + StmtDDLCreateTable * createTableNode, NAString &currCatName, NAString &currSchName, NABoolean isCompound = FALSE); @@ -913,6 +916,13 @@ class CmpSeabaseDDL StmtDDLCreateTable * createTableNode, NAString &currCatName, NAString &currSchName); + short createSeabaseTableLike2( + CorrName &cn, + const NAString &likeTabName, + NABoolean withPartns = FALSE, + NABoolean withoutSalt = FALSE, + NABoolean withoutDivision = FALSE); + void createSeabaseTableLike( StmtDDLCreateTable * createTableNode, NAString &currCatName, NAString &currSchName); @@ -923,6 +933,19 @@ class CmpSeabaseDDL const ComObjectName &tgtTableName, const ComObjectName &srcTableName); + // makes a copy of underlying hbase table + short cloneHbaseTable( + const NAString &srcTable, const NAString &clonedTable, + ExpHbaseInterface * inEHI); + + // makes a copy of traf metadata and underlying hbase table + short cloneSeabaseTable( + CorrName &cn, + const NATable * naTable, + const NAString &clonedTabName, + ExpHbaseInterface * ehi = NULL, + ExeCliInterface * cilInterface = NULL); + short dropSeabaseTable2( ExeCliInterface *cliInterface, StmtDDLDropTable * dropTableNode, @@ -969,17 +992,23 @@ class CmpSeabaseDDL StmtDDLAlterTableAddColumn * alterAddColNode, NAString &currCatName, NAString &currSchName); - void alterSeabaseTableDropColumn( - StmtDDLAlterTableDropColumn * alterDropColNode, - NAString &currCatName, NAString &currSchName); - - short alignedFormatTableAddDropColumn( - Int64 objUID, - NABoolean isAdd, + + short updateMDforDropCol(ExeCliInterface &cliInterface, + const NATable * naTable, + Lng32 dropColNum); + + short alignedFormatTableDropColumn + ( const NAString &catalogNamePart, const NAString &schemaNamePart, const NAString &objectNamePart, - char * colName, const NAColumn * nacol); + const NATable * naTable, + const NAString &altColName, + ElemDDLColDef *pColDef); + + void alterSeabaseTableDropColumn( + StmtDDLAlterTableDropColumn * alterDropColNode, + NAString &currCatName, NAString &currSchName); short recreateViews(ExeCliInterface &cliInterface, NAList<NAString> &viewNameList, @@ -989,6 +1018,21 @@ class CmpSeabaseDDL StmtDDLAlterTableAlterColumnSetSGOption * alterIdentityColNode, NAString &currCatName, NAString &currSchName); + short alignedFormatTableAlterColumn + ( + const NAString &catalogNamePart, + const NAString &schemaNamePart, + const NAString &objectNamePart, + const NATable * naTable, + const NAString &altColName, + ElemDDLColDef *pColDef); + + short alterColumnAttr( + const NAString &catalogNamePart, const NAString &schemaNamePart, + const NAString &objectNamePart, + const NATable * naTable, const NAColumn * naCol, NAType * newType, + StmtDDLAlterTableAlterColumnDatatype * alterColNode); + void alterSeabaseTableAlterColumnDatatype( StmtDDLAlterTableAlterColumnDatatype * alterColumnDatatype, NAString &currCatName, NAString &currSchName); @@ -1142,6 +1186,12 @@ class CmpSeabaseDDL short dropSeabaseObjectsFromHbase(const char * pattern); short updateSeabaseAuths(ExeCliInterface * cliInterface, const char * sysCat); + short truncateHbaseTable(const NAString &catalogNamePart, + const NAString &schemaNamePart, + const NAString &objectNamePart, + NATable * naTable, + ExpHbaseInterface * ehi); + void purgedataHbaseTable(DDLExpr * ddlExpr, NAString &currCatName, NAString &currSchName);
