diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java index 185ac1d..ecfff8f 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java @@ -3626,7 +3626,7 @@ private int alterTable(Hive db, AlterTableDesc alterTbl) throws HiveException { if (allPartitions == null) { db.alterTable(alterTbl.getOldName(), tbl, alterTbl.getIsCascade(), alterTbl.getEnvironmentContext()); } else { - db.alterPartitions(tbl.getTableName(), allPartitions, alterTbl.getEnvironmentContext()); + db.alterPartitions(tbl.getDbName() + "." + tbl.getTableName(), allPartitions, alterTbl.getEnvironmentContext()); } // Add constraints if necessary addConstraints(db, alterTbl); diff --git ql/src/test/queries/clientpositive/alter_partition_onto_nocurrent_db.q ql/src/test/queries/clientpositive/alter_partition_onto_nocurrent_db.q new file mode 100644 index 0000000..017fd44 --- /dev/null +++ ql/src/test/queries/clientpositive/alter_partition_onto_nocurrent_db.q @@ -0,0 +1,15 @@ +CREATE DATABASE test_db_nocurr; + +CREATE TABLE test_db_nocurr.test_table_for_alter_partition_nocurrentdb (a INT) PARTITIONED BY (ds STRING) STORED AS SEQUENCEFILE; + +INSERT OVERWRITE TABLE test_db_nocurr.test_table_for_alter_partition_nocurrentdb PARTITION(ds='eleme_haihua') SELECT 1; + +desc extended test_db_nocurr.test_table_for_alter_partition_nocurrentdb partition(ds='eleme_haihua'); + +ALTER TABLE test_db_nocurr.test_table_for_alter_partition_nocurrentdb partition(ds='eleme_haihua') CHANGE COLUMN a a_new BOOLEAN; + +desc extended test_db_nocurr.test_table_for_alter_partition_nocurrentdb partition(ds='eleme_haihua'); + +DROP TABLE test_db_nocurr.test_table_for_alter_partition_nocurrentdb; + +DROP DATABASE test_db_nocurr; diff --git ql/src/test/results/clientpositive/alter_partition_onto_nocurrent_db.q.out ql/src/test/results/clientpositive/alter_partition_onto_nocurrent_db.q.out new file mode 100644 index 0000000..f109bcc --- /dev/null +++ ql/src/test/results/clientpositive/alter_partition_onto_nocurrent_db.q.out @@ -0,0 +1,78 @@ +PREHOOK: query: CREATE DATABASE test_db_nocurr +PREHOOK: type: CREATEDATABASE +PREHOOK: Output: database:test_db_nocurr +POSTHOOK: query: CREATE DATABASE test_db_nocurr +POSTHOOK: type: CREATEDATABASE +POSTHOOK: Output: database:test_db_nocurr +PREHOOK: query: CREATE TABLE test_db_nocurr.test_table_for_alter_partition_nocurrentdb (a INT) PARTITIONED BY (ds STRING) STORED AS SEQUENCEFILE +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:test_db_nocurr +PREHOOK: Output: test_db_nocurr@test_table_for_alter_partition_nocurrentdb +POSTHOOK: query: CREATE TABLE test_db_nocurr.test_table_for_alter_partition_nocurrentdb (a INT) PARTITIONED BY (ds STRING) STORED AS SEQUENCEFILE +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:test_db_nocurr +POSTHOOK: Output: test_db_nocurr@test_table_for_alter_partition_nocurrentdb +PREHOOK: query: INSERT OVERWRITE TABLE test_db_nocurr.test_table_for_alter_partition_nocurrentdb PARTITION(ds='eleme_haihua') SELECT 1 +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: test_db_nocurr@test_table_for_alter_partition_nocurrentdb@ds=eleme_haihua +POSTHOOK: query: INSERT OVERWRITE TABLE test_db_nocurr.test_table_for_alter_partition_nocurrentdb PARTITION(ds='eleme_haihua') SELECT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: test_db_nocurr@test_table_for_alter_partition_nocurrentdb@ds=eleme_haihua +POSTHOOK: Lineage: test_table_for_alter_partition_nocurrentdb PARTITION(ds=eleme_haihua).a SIMPLE [] +PREHOOK: query: desc extended test_db_nocurr.test_table_for_alter_partition_nocurrentdb partition(ds='eleme_haihua') +PREHOOK: type: DESCTABLE +PREHOOK: Input: test_db_nocurr@test_table_for_alter_partition_nocurrentdb +POSTHOOK: query: desc extended test_db_nocurr.test_table_for_alter_partition_nocurrentdb partition(ds='eleme_haihua') +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: test_db_nocurr@test_table_for_alter_partition_nocurrentdb +a int +ds string + +# Partition Information +# col_name data_type comment + +ds string + +#### A masked pattern was here #### +PREHOOK: query: ALTER TABLE test_db_nocurr.test_table_for_alter_partition_nocurrentdb partition(ds='eleme_haihua') CHANGE COLUMN a a_new BOOLEAN +PREHOOK: type: ALTERTABLE_RENAMECOL +PREHOOK: Input: test_db_nocurr@test_table_for_alter_partition_nocurrentdb +PREHOOK: Output: test_db_nocurr@test_table_for_alter_partition_nocurrentdb@ds=eleme_haihua +POSTHOOK: query: ALTER TABLE test_db_nocurr.test_table_for_alter_partition_nocurrentdb partition(ds='eleme_haihua') CHANGE COLUMN a a_new BOOLEAN +POSTHOOK: type: ALTERTABLE_RENAMECOL +POSTHOOK: Input: test_db_nocurr@test_table_for_alter_partition_nocurrentdb +POSTHOOK: Input: test_db_nocurr@test_table_for_alter_partition_nocurrentdb@ds=eleme_haihua +POSTHOOK: Output: test_db_nocurr@test_table_for_alter_partition_nocurrentdb@ds=eleme_haihua +PREHOOK: query: desc extended test_db_nocurr.test_table_for_alter_partition_nocurrentdb partition(ds='eleme_haihua') +PREHOOK: type: DESCTABLE +PREHOOK: Input: test_db_nocurr@test_table_for_alter_partition_nocurrentdb +POSTHOOK: query: desc extended test_db_nocurr.test_table_for_alter_partition_nocurrentdb partition(ds='eleme_haihua') +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: test_db_nocurr@test_table_for_alter_partition_nocurrentdb +a_new boolean +ds string + +# Partition Information +# col_name data_type comment + +ds string + +#### A masked pattern was here #### +PREHOOK: query: DROP TABLE test_db_nocurr.test_table_for_alter_partition_nocurrentdb +PREHOOK: type: DROPTABLE +PREHOOK: Input: test_db_nocurr@test_table_for_alter_partition_nocurrentdb +PREHOOK: Output: test_db_nocurr@test_table_for_alter_partition_nocurrentdb +POSTHOOK: query: DROP TABLE test_db_nocurr.test_table_for_alter_partition_nocurrentdb +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: test_db_nocurr@test_table_for_alter_partition_nocurrentdb +POSTHOOK: Output: test_db_nocurr@test_table_for_alter_partition_nocurrentdb +PREHOOK: query: DROP DATABASE test_db_nocurr +PREHOOK: type: DROPDATABASE +PREHOOK: Input: database:test_db_nocurr +PREHOOK: Output: database:test_db_nocurr +POSTHOOK: query: DROP DATABASE test_db_nocurr +POSTHOOK: type: DROPDATABASE +POSTHOOK: Input: database:test_db_nocurr +POSTHOOK: Output: database:test_db_nocurr