commit 1720101b7f538ef983ee3e07b3306f5dbdb62680 Author: chenchun Date: Mon Dec 9 19:54:37 2013 +0800 HIVE-2584 diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java index 7443ea4..ccb9e2b 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java +++ ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java @@ -199,7 +199,7 @@ public TablePartition() { } public TablePartition(ASTNode tblPart) throws SemanticException { - tableName = unescapeIdentifier(tblPart.getChild(0).getText()); + tableName = getUnescapedName((ASTNode) tblPart.getChild(0)); if (tblPart.getChildCount() > 1) { ASTNode part = (ASTNode) tblPart.getChild(1); if (part.getToken().getType() == HiveParser.TOK_PARTSPEC) { @@ -2531,7 +2531,7 @@ private void analyzeAlterTableAlterParts(ASTNode ast) // check if table exists. try { - tab = db.getTable(SessionState.get().getCurrentDatabase(), tblName, true); + tab = db.getTable(tblName, true); inputs.add(new ReadEntity(tab)); } catch (HiveException e) { throw new SemanticException(ErrorMsg.INVALID_TABLE.getMsg(tblName)); @@ -3286,7 +3286,7 @@ private Table getTable(String tblName) throws SemanticException { } private Table getTable(String tblName, boolean throwException) throws SemanticException { - return getTable(SessionState.get().getCurrentDatabase(), tblName, throwException); + return getTable(null, tblName, throwException); } private Table getTable(String database, String tblName, boolean throwException) diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g index 2343a2c..125118d 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g +++ ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g @@ -869,18 +869,18 @@ alterStatement alterTableStatementSuffix @init { msgs.push("alter table statement"); } @after { msgs.pop(); } - : alterStatementSuffixRename - | alterStatementSuffixAddCol - | alterStatementSuffixRenameCol - | alterStatementSuffixDropPartitions - | alterStatementSuffixAddPartitions - | alterStatementSuffixTouch - | alterStatementSuffixArchive - | alterStatementSuffixUnArchive - | alterStatementSuffixProperties - | alterTblPartitionStatement - | alterStatementSuffixSkewedby - | alterStatementSuffixExchangePartition + : (alterStatementSuffixRename) => alterStatementSuffixRename + | (alterStatementSuffixAddCol) => alterStatementSuffixAddCol + | (alterStatementSuffixRenameCol) => alterStatementSuffixRenameCol + | (alterStatementSuffixDropPartitions) => alterStatementSuffixDropPartitions + | (alterStatementSuffixAddPartitions) => alterStatementSuffixAddPartitions + | (alterStatementSuffixTouch) => alterStatementSuffixTouch + | (alterStatementSuffixArchive) => alterStatementSuffixArchive + | (alterStatementSuffixUnArchive) => alterStatementSuffixUnArchive + | (alterStatementSuffixProperties) => alterStatementSuffixProperties + | (alterTblPartitionStatement) => alterTblPartitionStatement + | (alterStatementSuffixSkewedby) => alterStatementSuffixSkewedby + | (alterStatementSuffixExchangePartition) => alterStatementSuffixExchangePartition ; alterViewStatementSuffix @@ -929,23 +929,23 @@ alterDatabaseSuffixProperties alterStatementSuffixRename @init { msgs.push("rename statement"); } @after { msgs.pop(); } - : oldName=identifier KW_RENAME KW_TO newName=identifier + : oldName=tableName KW_RENAME KW_TO newName=identifier -> ^(TOK_ALTERTABLE_RENAME $oldName $newName) ; alterStatementSuffixAddCol @init { msgs.push("add column statement"); } @after { msgs.pop(); } - : identifier (add=KW_ADD | replace=KW_REPLACE) KW_COLUMNS LPAREN columnNameTypeList RPAREN - -> {$add != null}? ^(TOK_ALTERTABLE_ADDCOLS identifier columnNameTypeList) - -> ^(TOK_ALTERTABLE_REPLACECOLS identifier columnNameTypeList) + : tabName=tableName (add=KW_ADD | replace=KW_REPLACE) KW_COLUMNS LPAREN columnNameTypeList RPAREN + -> {$add != null}? ^(TOK_ALTERTABLE_ADDCOLS $tabName columnNameTypeList) + -> ^(TOK_ALTERTABLE_REPLACECOLS $tabName columnNameTypeList) ; alterStatementSuffixRenameCol @init { msgs.push("rename column name"); } @after { msgs.pop(); } - : identifier KW_CHANGE KW_COLUMN? oldName=identifier newName=identifier colType (KW_COMMENT comment=StringLiteral)? alterStatementChangeColPosition? - ->^(TOK_ALTERTABLE_RENAMECOL identifier $oldName $newName colType $comment? alterStatementChangeColPosition?) + : tabName=tableName KW_CHANGE KW_COLUMN? oldName=identifier newName=identifier colType (KW_COMMENT comment=StringLiteral)? alterStatementChangeColPosition? + ->^(TOK_ALTERTABLE_RENAMECOL $tabName $oldName $newName colType $comment? alterStatementChangeColPosition?) ; alterStatementChangeColPosition @@ -957,8 +957,8 @@ alterStatementChangeColPosition alterStatementSuffixAddPartitions @init { msgs.push("add partition statement"); } @after { msgs.pop(); } - : identifier KW_ADD ifNotExists? alterStatementSuffixAddPartitionsElement+ - -> ^(TOK_ALTERTABLE_ADDPARTS identifier ifNotExists? alterStatementSuffixAddPartitionsElement+) + : tabName=tableName KW_ADD ifNotExists? alterStatementSuffixAddPartitionsElement+ + -> ^(TOK_ALTERTABLE_ADDPARTS $tabName ifNotExists? alterStatementSuffixAddPartitionsElement+) ; alterStatementSuffixAddPartitionsElement @@ -968,22 +968,22 @@ alterStatementSuffixAddPartitionsElement alterStatementSuffixTouch @init { msgs.push("touch statement"); } @after { msgs.pop(); } - : identifier KW_TOUCH (partitionSpec)* - -> ^(TOK_ALTERTABLE_TOUCH identifier (partitionSpec)*) + : tabName=tableName KW_TOUCH (partitionSpec)* + -> ^(TOK_ALTERTABLE_TOUCH $tabName (partitionSpec)*) ; alterStatementSuffixArchive @init { msgs.push("archive statement"); } @after { msgs.pop(); } - : identifier KW_ARCHIVE (partitionSpec)* - -> ^(TOK_ALTERTABLE_ARCHIVE identifier (partitionSpec)*) + : tabName=tableName KW_ARCHIVE (partitionSpec)* + -> ^(TOK_ALTERTABLE_ARCHIVE $tabName (partitionSpec)*) ; alterStatementSuffixUnArchive @init { msgs.push("unarchive statement"); } @after { msgs.pop(); } - : identifier KW_UNARCHIVE (partitionSpec)* - -> ^(TOK_ALTERTABLE_UNARCHIVE identifier (partitionSpec)*) + : tabName=tableName KW_UNARCHIVE (partitionSpec)* + -> ^(TOK_ALTERTABLE_UNARCHIVE $tabName (partitionSpec)*) ; partitionLocation @@ -996,16 +996,16 @@ partitionLocation alterStatementSuffixDropPartitions @init { msgs.push("drop partition statement"); } @after { msgs.pop(); } - : identifier KW_DROP ifExists? dropPartitionSpec (COMMA dropPartitionSpec)* ignoreProtection? - -> ^(TOK_ALTERTABLE_DROPPARTS identifier dropPartitionSpec+ ifExists? ignoreProtection?) + : tabName=tableName KW_DROP ifExists? dropPartitionSpec (COMMA dropPartitionSpec)* ignoreProtection? + -> ^(TOK_ALTERTABLE_DROPPARTS $tabName dropPartitionSpec+ ifExists? ignoreProtection?) ; alterStatementSuffixProperties @init { msgs.push("alter properties statement"); } @after { msgs.pop(); } - : name=identifier KW_SET KW_TBLPROPERTIES tableProperties + : (tableName KW_SET KW_TBLPROPERTIES tableProperties) => name=tableName KW_SET KW_TBLPROPERTIES tableProperties -> ^(TOK_ALTERTABLE_PROPERTIES $name tableProperties) - | name=identifier KW_UNSET KW_TBLPROPERTIES ifExists? tableProperties + | name=tableName KW_UNSET KW_TBLPROPERTIES ifExists? tableProperties -> ^(TOK_DROPTABLE_PROPERTIES $name tableProperties ifExists?) ; @@ -1030,17 +1030,17 @@ alterStatementSuffixSerdeProperties tablePartitionPrefix @init {msgs.push("table partition prefix");} @after {msgs.pop();} - :name=identifier partitionSpec? + :name=tableName partitionSpec? ->^(TOK_TABLE_PARTITION $name partitionSpec?) ; alterTblPartitionStatement @init {msgs.push("alter table partition statement");} @after {msgs.pop();} - : tablePartitionPrefix alterTblPartitionStatementSuffix + : (tablePartitionPrefix alterTblPartitionStatementSuffix) => tablePartitionPrefix alterTblPartitionStatementSuffix -> ^(TOK_ALTERTABLE_PARTITION tablePartitionPrefix alterTblPartitionStatementSuffix) - |Identifier KW_PARTITION KW_COLUMN LPAREN columnNameType RPAREN - -> ^(TOK_ALTERTABLE_ALTERPARTS Identifier columnNameType) + |name=tableName KW_PARTITION KW_COLUMN LPAREN columnNameType RPAREN + -> ^(TOK_ALTERTABLE_ALTERPARTS $name columnNameType) ; alterTblPartitionStatementSuffix @@ -1111,14 +1111,10 @@ alterStatementSuffixLocation alterStatementSuffixSkewedby @init {msgs.push("alter skewed by statement");} @after{msgs.pop();} - :name=identifier tableSkewed - ->^(TOK_ALTERTABLE_SKEWED $name tableSkewed) - | - name=identifier KW_NOT KW_SKEWED - ->^(TOK_ALTERTABLE_SKEWED $name) - | - name=identifier KW_NOT storedAsDirs - ->^(TOK_ALTERTABLE_SKEWED $name storedAsDirs) + : name=tableName (tableSkewed | not=KW_NOT (notSkewed=KW_SKEWED | storedAsDirs)) + ->{$not == null}? ^(TOK_ALTERTABLE_SKEWED $name tableSkewed) + ->{$notSkewed != null}? ^(TOK_ALTERTABLE_SKEWED $name) + -> ^(TOK_ALTERTABLE_SKEWED $name storedAsDirs) ; alterStatementSuffixExchangePartition diff --git ql/src/test/queries/clientnegative/alter_table_failure.q ql/src/test/queries/clientnegative/alter_table_failure.q new file mode 100644 index 0000000..b2d93af --- /dev/null +++ ql/src/test/queries/clientnegative/alter_table_failure.q @@ -0,0 +1,3 @@ +create table alter6 (a int); +create database alter_db; +alter table default.alter6 rename to alter_db.alter6; \ No newline at end of file diff --git ql/src/test/queries/clientpositive/alter6.q ql/src/test/queries/clientpositive/alter6.q new file mode 100644 index 0000000..dab5031 --- /dev/null +++ ql/src/test/queries/clientpositive/alter6.q @@ -0,0 +1,59 @@ +create table default_alter6 (a int) partitioned by (p string); + +alter table default.default_alter6 rename to alter6; +describe default.alter6; + +alter table default.alter6 add columns (b int); +describe default.alter6; + +alter table default.alter6 replace columns (a int, b int, c string); +describe default.alter6; + +alter table default.alter6 change column c cc int; +describe default.alter6; + +show partitions alter6; +alter table default.alter6 add partition (p='p1'); +alter table default.alter6 add partition (p='p2'); +show partitions alter6; + +alter table default.alter6 touch partition(p='p1'); + +set hive.archive.enabled = true; +alter table default.alter6 archive partition (p='p1'); +describe extended alter6 partition (p='p1'); + +alter table default.alter6 unarchive partition (p='p1'); +describe extended alter6 partition (p='p1'); +show partitions alter6; + +alter table default.alter6 drop partition (p='p1'); + +alter table default.alter6 set tblproperties('s1'='1'); +describe extended alter6; + +alter table default.alter6 unset tblproperties('s1'='1'); +describe extended alter6; + +alter table default.alter6 partition (p='p2') set fileformat orc; +show create table alter6; + +alter table default.alter6 partition column (p int); +describe default.alter6; + +create table exchange_alter6 like alter6; +show partitions exchange_alter6; +show partitions alter6; +alter table default.alter6 exchange partition (p='p2') with table exchange_alter6; +show partitions exchange_alter6; +show partitions alter6; +drop table exchange_alter6; + +alter table default.alter6 skewed by (a) on ('skew_a') stored as directories; +describe formatted alter6; +alter table default.alter6 not stored as directories; +describe formatted alter6; +alter table default.alter6 not skewed; +describe formatted alter6; + +drop table alter6; diff --git ql/src/test/results/clientnegative/alter_table_failure.q.out ql/src/test/results/clientnegative/alter_table_failure.q.out new file mode 100644 index 0000000..991b768 --- /dev/null +++ ql/src/test/results/clientnegative/alter_table_failure.q.out @@ -0,0 +1,10 @@ +PREHOOK: query: create table alter6 (a int) +PREHOOK: type: CREATETABLE +POSTHOOK: query: create table alter6 (a int) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@alter6 +PREHOOK: query: create database alter_db +PREHOOK: type: CREATEDATABASE +POSTHOOK: query: create database alter_db +POSTHOOK: type: CREATEDATABASE +FAILED: ParseException line 2:45 missing EOF at '.' near 'alter_db' in ddl statement diff --git ql/src/test/results/clientpositive/alter6.q.out ql/src/test/results/clientpositive/alter6.q.out new file mode 100644 index 0000000..2961e01 --- /dev/null +++ ql/src/test/results/clientpositive/alter6.q.out @@ -0,0 +1,454 @@ +PREHOOK: query: create table default_alter6 (a int) partitioned by (p string) +PREHOOK: type: CREATETABLE +POSTHOOK: query: create table default_alter6 (a int) partitioned by (p string) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@default_alter6 +PREHOOK: query: alter table default.default_alter6 rename to alter6 +PREHOOK: type: ALTERTABLE_RENAME +PREHOOK: Input: default@default_alter6 +PREHOOK: Output: default@default_alter6 +POSTHOOK: query: alter table default.default_alter6 rename to alter6 +POSTHOOK: type: ALTERTABLE_RENAME +POSTHOOK: Input: default@default_alter6 +POSTHOOK: Output: default@alter6 +POSTHOOK: Output: default@default_alter6 +PREHOOK: query: describe default.alter6 +PREHOOK: type: DESCTABLE +POSTHOOK: query: describe default.alter6 +POSTHOOK: type: DESCTABLE +a int None +p string None + +# Partition Information +# col_name data_type comment + +p string None +PREHOOK: query: alter table default.alter6 add columns (b int) +PREHOOK: type: ALTERTABLE_ADDCOLS +PREHOOK: Input: default@alter6 +PREHOOK: Output: default@alter6 +POSTHOOK: query: alter table default.alter6 add columns (b int) +POSTHOOK: type: ALTERTABLE_ADDCOLS +POSTHOOK: Input: default@alter6 +POSTHOOK: Output: default@alter6 +PREHOOK: query: describe default.alter6 +PREHOOK: type: DESCTABLE +POSTHOOK: query: describe default.alter6 +POSTHOOK: type: DESCTABLE +a int None +b int None +p string None + +# Partition Information +# col_name data_type comment + +p string None +PREHOOK: query: alter table default.alter6 replace columns (a int, b int, c string) +PREHOOK: type: ALTERTABLE_REPLACECOLS +PREHOOK: Input: default@alter6 +PREHOOK: Output: default@alter6 +POSTHOOK: query: alter table default.alter6 replace columns (a int, b int, c string) +POSTHOOK: type: ALTERTABLE_REPLACECOLS +POSTHOOK: Input: default@alter6 +POSTHOOK: Output: default@alter6 +PREHOOK: query: describe default.alter6 +PREHOOK: type: DESCTABLE +POSTHOOK: query: describe default.alter6 +POSTHOOK: type: DESCTABLE +a int None +b int None +c string None +p string None + +# Partition Information +# col_name data_type comment + +p string None +PREHOOK: query: alter table default.alter6 change column c cc int +PREHOOK: type: ALTERTABLE_RENAMECOL +PREHOOK: Input: default@alter6 +PREHOOK: Output: default@alter6 +POSTHOOK: query: alter table default.alter6 change column c cc int +POSTHOOK: type: ALTERTABLE_RENAMECOL +POSTHOOK: Input: default@alter6 +POSTHOOK: Output: default@alter6 +PREHOOK: query: describe default.alter6 +PREHOOK: type: DESCTABLE +POSTHOOK: query: describe default.alter6 +POSTHOOK: type: DESCTABLE +a int None +b int None +cc int None +p string None + +# Partition Information +# col_name data_type comment + +p string None +PREHOOK: query: show partitions alter6 +PREHOOK: type: SHOWPARTITIONS +POSTHOOK: query: show partitions alter6 +POSTHOOK: type: SHOWPARTITIONS +PREHOOK: query: alter table default.alter6 add partition (p='p1') +PREHOOK: type: ALTERTABLE_ADDPARTS +PREHOOK: Input: default@alter6 +POSTHOOK: query: alter table default.alter6 add partition (p='p1') +POSTHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: Input: default@alter6 +POSTHOOK: Output: default@alter6@p=p1 +PREHOOK: query: alter table default.alter6 add partition (p='p2') +PREHOOK: type: ALTERTABLE_ADDPARTS +PREHOOK: Input: default@alter6 +POSTHOOK: query: alter table default.alter6 add partition (p='p2') +POSTHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: Input: default@alter6 +POSTHOOK: Output: default@alter6@p=p2 +PREHOOK: query: show partitions alter6 +PREHOOK: type: SHOWPARTITIONS +POSTHOOK: query: show partitions alter6 +POSTHOOK: type: SHOWPARTITIONS +p=p1 +p=p2 +PREHOOK: query: alter table default.alter6 touch partition(p='p1') +PREHOOK: type: ALTERTABLE_TOUCH +PREHOOK: Input: default@alter6 +PREHOOK: Output: default@alter6@p=p1 +POSTHOOK: query: alter table default.alter6 touch partition(p='p1') +POSTHOOK: type: ALTERTABLE_TOUCH +POSTHOOK: Input: default@alter6 +POSTHOOK: Input: default@alter6@p=p1 +POSTHOOK: Output: default@alter6@p=p1 +PREHOOK: query: alter table default.alter6 archive partition (p='p1') +PREHOOK: type: ALTERTABLE_ARCHIVE +PREHOOK: Input: default@alter6 +PREHOOK: Output: default@alter6@p=p1 +POSTHOOK: query: alter table default.alter6 archive partition (p='p1') +POSTHOOK: type: ALTERTABLE_ARCHIVE +POSTHOOK: Input: default@alter6 +POSTHOOK: Output: default@alter6@p=p1 +PREHOOK: query: describe extended alter6 partition (p='p1') +PREHOOK: type: DESCTABLE +POSTHOOK: query: describe extended alter6 partition (p='p1') +POSTHOOK: type: DESCTABLE +a int None +b int None +cc int None +p string None + +# Partition Information +# col_name data_type comment + +p string None + +#### A masked pattern was here #### +PREHOOK: query: alter table default.alter6 unarchive partition (p='p1') +PREHOOK: type: ALTERTABLE_UNARCHIVE +PREHOOK: Input: default@alter6 +PREHOOK: Output: default@alter6@p=p1 +POSTHOOK: query: alter table default.alter6 unarchive partition (p='p1') +POSTHOOK: type: ALTERTABLE_UNARCHIVE +POSTHOOK: Input: default@alter6 +POSTHOOK: Output: default@alter6@p=p1 +PREHOOK: query: describe extended alter6 partition (p='p1') +PREHOOK: type: DESCTABLE +POSTHOOK: query: describe extended alter6 partition (p='p1') +POSTHOOK: type: DESCTABLE +a int None +b int None +cc int None +p string None + +# Partition Information +# col_name data_type comment + +p string None + +#### A masked pattern was here #### +PREHOOK: query: show partitions alter6 +PREHOOK: type: SHOWPARTITIONS +POSTHOOK: query: show partitions alter6 +POSTHOOK: type: SHOWPARTITIONS +p=p1 +p=p2 +PREHOOK: query: alter table default.alter6 drop partition (p='p1') +PREHOOK: type: ALTERTABLE_DROPPARTS +PREHOOK: Input: default@alter6 +PREHOOK: Output: default@alter6@p=p1 +POSTHOOK: query: alter table default.alter6 drop partition (p='p1') +POSTHOOK: type: ALTERTABLE_DROPPARTS +POSTHOOK: Input: default@alter6 +POSTHOOK: Output: default@alter6@p=p1 +PREHOOK: query: alter table default.alter6 set tblproperties('s1'='1') +PREHOOK: type: ALTERTABLE_PROPERTIES +PREHOOK: Input: default@alter6 +PREHOOK: Output: default@alter6 +POSTHOOK: query: alter table default.alter6 set tblproperties('s1'='1') +POSTHOOK: type: ALTERTABLE_PROPERTIES +POSTHOOK: Input: default@alter6 +POSTHOOK: Output: default@alter6 +PREHOOK: query: describe extended alter6 +PREHOOK: type: DESCTABLE +POSTHOOK: query: describe extended alter6 +POSTHOOK: type: DESCTABLE +a int None +b int None +cc int None +p string None + +# Partition Information +# col_name data_type comment + +p string None + +#### A masked pattern was here #### +PREHOOK: query: alter table default.alter6 unset tblproperties('s1'='1') +PREHOOK: type: ALTERTABLE_PROPERTIES +PREHOOK: Input: default@alter6 +PREHOOK: Output: default@alter6 +POSTHOOK: query: alter table default.alter6 unset tblproperties('s1'='1') +POSTHOOK: type: ALTERTABLE_PROPERTIES +POSTHOOK: Input: default@alter6 +POSTHOOK: Output: default@alter6 +PREHOOK: query: describe extended alter6 +PREHOOK: type: DESCTABLE +POSTHOOK: query: describe extended alter6 +POSTHOOK: type: DESCTABLE +a int None +b int None +cc int None +p string None + +# Partition Information +# col_name data_type comment + +p string None + +#### A masked pattern was here #### +PREHOOK: query: alter table default.alter6 partition (p='p2') set fileformat orc +PREHOOK: type: ALTERPARTITION_FILEFORMAT +PREHOOK: Input: default@alter6 +PREHOOK: Output: default@alter6@p=p2 +POSTHOOK: query: alter table default.alter6 partition (p='p2') set fileformat orc +POSTHOOK: type: ALTERPARTITION_FILEFORMAT +POSTHOOK: Input: default@alter6 +POSTHOOK: Input: default@alter6@p=p2 +POSTHOOK: Output: default@alter6@p=p2 +PREHOOK: query: show create table alter6 +PREHOOK: type: SHOW_CREATETABLE +PREHOOK: Input: default@alter6 +POSTHOOK: query: show create table alter6 +POSTHOOK: type: SHOW_CREATETABLE +POSTHOOK: Input: default@alter6 +CREATE TABLE `alter6`( + `a` int, + `b` int, + `cc` int) +PARTITIONED BY ( + `p` string) +ROW FORMAT SERDE + 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' +STORED AS INPUTFORMAT + 'org.apache.hadoop.mapred.TextInputFormat' +OUTPUTFORMAT + 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' +LOCATION +#### A masked pattern was here #### +TBLPROPERTIES ( +#### A masked pattern was here #### +PREHOOK: query: alter table default.alter6 partition column (p int) +PREHOOK: type: null +PREHOOK: Input: default@alter6 +POSTHOOK: query: alter table default.alter6 partition column (p int) +POSTHOOK: type: null +POSTHOOK: Input: default@alter6 +POSTHOOK: Output: default@alter6 +PREHOOK: query: describe default.alter6 +PREHOOK: type: DESCTABLE +POSTHOOK: query: describe default.alter6 +POSTHOOK: type: DESCTABLE +a int None +b int None +cc int None +p int None + +# Partition Information +# col_name data_type comment + +p int None +PREHOOK: query: create table exchange_alter6 like alter6 +PREHOOK: type: CREATETABLE +POSTHOOK: query: create table exchange_alter6 like alter6 +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@exchange_alter6 +PREHOOK: query: show partitions exchange_alter6 +PREHOOK: type: SHOWPARTITIONS +POSTHOOK: query: show partitions exchange_alter6 +POSTHOOK: type: SHOWPARTITIONS +PREHOOK: query: show partitions alter6 +PREHOOK: type: SHOWPARTITIONS +POSTHOOK: query: show partitions alter6 +POSTHOOK: type: SHOWPARTITIONS +p=p2 +PREHOOK: query: alter table default.alter6 exchange partition (p='p2') with table exchange_alter6 +PREHOOK: type: null +POSTHOOK: query: alter table default.alter6 exchange partition (p='p2') with table exchange_alter6 +POSTHOOK: type: null +PREHOOK: query: show partitions exchange_alter6 +PREHOOK: type: SHOWPARTITIONS +POSTHOOK: query: show partitions exchange_alter6 +POSTHOOK: type: SHOWPARTITIONS +p=p2 +PREHOOK: query: show partitions alter6 +PREHOOK: type: SHOWPARTITIONS +POSTHOOK: query: show partitions alter6 +POSTHOOK: type: SHOWPARTITIONS +PREHOOK: query: drop table exchange_alter6 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@exchange_alter6 +PREHOOK: Output: default@exchange_alter6 +POSTHOOK: query: drop table exchange_alter6 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@exchange_alter6 +POSTHOOK: Output: default@exchange_alter6 +PREHOOK: query: alter table default.alter6 skewed by (a) on ('skew_a') stored as directories +PREHOOK: type: ALTERTABLE_SKEWED +PREHOOK: Input: default@alter6 +PREHOOK: Output: default@alter6 +POSTHOOK: query: alter table default.alter6 skewed by (a) on ('skew_a') stored as directories +POSTHOOK: type: ALTERTABLE_SKEWED +POSTHOOK: Input: default@alter6 +POSTHOOK: Output: default@alter6 +PREHOOK: query: describe formatted alter6 +PREHOOK: type: DESCTABLE +POSTHOOK: query: describe formatted alter6 +POSTHOOK: type: DESCTABLE +# col_name data_type comment + +a int None +b int None +cc int None + +# Partition Information +# col_name data_type comment + +p int None + +# Detailed Table Information +Database: default +#### A masked pattern was here #### +Protect Mode: None +Retention: 0 +#### A masked pattern was here #### +Table Type: MANAGED_TABLE +Table Parameters: +#### A masked pattern was here #### + +# Storage Information +SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe +InputFormat: org.apache.hadoop.mapred.TextInputFormat +OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +Compressed: No +Num Buckets: -1 +Bucket Columns: [] +Sort Columns: [] +Stored As SubDirectories: Yes +Skewed Columns: [a] +Skewed Values: [[skew_a]] +Storage Desc Params: + serialization.format 1 +PREHOOK: query: alter table default.alter6 not stored as directories +PREHOOK: type: ALTERTABLE_SKEWED +PREHOOK: Input: default@alter6 +PREHOOK: Output: default@alter6 +POSTHOOK: query: alter table default.alter6 not stored as directories +POSTHOOK: type: ALTERTABLE_SKEWED +POSTHOOK: Input: default@alter6 +POSTHOOK: Output: default@alter6 +PREHOOK: query: describe formatted alter6 +PREHOOK: type: DESCTABLE +POSTHOOK: query: describe formatted alter6 +POSTHOOK: type: DESCTABLE +# col_name data_type comment + +a int None +b int None +cc int None + +# Partition Information +# col_name data_type comment + +p int None + +# Detailed Table Information +Database: default +#### A masked pattern was here #### +Protect Mode: None +Retention: 0 +#### A masked pattern was here #### +Table Type: MANAGED_TABLE +Table Parameters: +#### A masked pattern was here #### + +# Storage Information +SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe +InputFormat: org.apache.hadoop.mapred.TextInputFormat +OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +Compressed: No +Num Buckets: -1 +Bucket Columns: [] +Sort Columns: [] +Skewed Columns: [a] +Skewed Values: [[skew_a]] +Storage Desc Params: + serialization.format 1 +PREHOOK: query: alter table default.alter6 not skewed +PREHOOK: type: ALTERTABLE_SKEWED +PREHOOK: Input: default@alter6 +PREHOOK: Output: default@alter6 +POSTHOOK: query: alter table default.alter6 not skewed +POSTHOOK: type: ALTERTABLE_SKEWED +POSTHOOK: Input: default@alter6 +POSTHOOK: Output: default@alter6 +PREHOOK: query: describe formatted alter6 +PREHOOK: type: DESCTABLE +POSTHOOK: query: describe formatted alter6 +POSTHOOK: type: DESCTABLE +# col_name data_type comment + +a int None +b int None +cc int None + +# Partition Information +# col_name data_type comment + +p int None + +# Detailed Table Information +Database: default +#### A masked pattern was here #### +Protect Mode: None +Retention: 0 +#### A masked pattern was here #### +Table Type: MANAGED_TABLE +Table Parameters: +#### A masked pattern was here #### + +# Storage Information +SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe +InputFormat: org.apache.hadoop.mapred.TextInputFormat +OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +Compressed: No +Num Buckets: -1 +Bucket Columns: [] +Sort Columns: [] +Storage Desc Params: + serialization.format 1 +PREHOOK: query: drop table alter6 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@alter6 +PREHOOK: Output: default@alter6 +POSTHOOK: query: drop table alter6 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@alter6 +POSTHOOK: Output: default@alter6