diff --git ql/src/test/queries/clientpositive/encryption_move_tbl.q ql/src/test/queries/clientpositive/encryption_move_tbl.q index 5a8c036..a25d955 100644 --- ql/src/test/queries/clientpositive/encryption_move_tbl.q +++ ql/src/test/queries/clientpositive/encryption_move_tbl.q @@ -5,16 +5,27 @@ set hive.cli.errors.ignore=true; DROP TABLE IF EXISTS encrypted_table PURGE; +DROP DATABASE IF EXISTS encrypted_db; CREATE TABLE encrypted_table (key INT, value STRING) LOCATION '${hiveconf:hive.metastore.warehouse.dir}/default/encrypted_table'; CRYPTO CREATE_KEY --keyName key_128 --bitLength 128; CRYPTO CREATE_ZONE --keyName key_128 --path ${hiveconf:hive.metastore.warehouse.dir}/default/encrypted_table; +CREATE DATABASE encrypted_db LOCATION '${hiveconf:hive.metastore.warehouse.dir}/encrypted_db'; +CRYPTO CREATE_KEY --keyName key_128_2 --bitLength 128; +CRYPTO CREATE_ZONE --keyName key_128_2 --path ${hiveconf:hive.metastore.warehouse.dir}/encrypted_db; + INSERT OVERWRITE TABLE encrypted_table SELECT * FROM src; SHOW TABLES; +-- should fail +ALTER TABLE default.encrypted_table RENAME TO encrypted_db.encrypted_table_2; +SHOW TABLES; +-- should succeed in Hadoop 2.7 but fail in 2.6 (HDFS-7530) ALTER TABLE default.encrypted_table RENAME TO default.plain_table; SHOW TABLES; -DROP TABLE encrypted_table PURGE; +DROP TABLE encrypted_table PURGE; +DROP TABLE default.plain_table PURGE; +DROP DATABASE encrypted_db; CRYPTO DELETE_KEY --keyName key_128; - +CRYPTO DELETE_KEY --keyName key_128_2; diff --git ql/src/test/results/clientpositive/encrypted/encryption_move_tbl.q.out ql/src/test/results/clientpositive/encrypted/encryption_move_tbl.q.out index 1106880..910ce25 100644 --- ql/src/test/results/clientpositive/encrypted/encryption_move_tbl.q.out +++ ql/src/test/results/clientpositive/encrypted/encryption_move_tbl.q.out @@ -2,6 +2,10 @@ PREHOOK: query: DROP TABLE IF EXISTS encrypted_table PURGE PREHOOK: type: DROPTABLE POSTHOOK: query: DROP TABLE IF EXISTS encrypted_table PURGE POSTHOOK: type: DROPTABLE +PREHOOK: query: DROP DATABASE IF EXISTS encrypted_db +PREHOOK: type: DROPDATABASE +POSTHOOK: query: DROP DATABASE IF EXISTS encrypted_db +POSTHOOK: type: DROPDATABASE #### A masked pattern was here #### PREHOOK: type: CREATETABLE #### A masked pattern was here #### @@ -14,6 +18,15 @@ POSTHOOK: Output: database:default POSTHOOK: Output: default@encrypted_table Encryption key created: 'key_128' Encryption zone created: '/build/ql/test/data/warehouse/default/encrypted_table' using key: 'key_128' +#### A masked pattern was here #### +PREHOOK: type: CREATEDATABASE +PREHOOK: Output: database:encrypted_db +#### A masked pattern was here #### +POSTHOOK: type: CREATEDATABASE +POSTHOOK: Output: database:encrypted_db +#### A masked pattern was here #### +Encryption key created: 'key_128_2' +Encryption zone created: '/build/ql/test/data/warehouse/encrypted_db' using key: 'key_128_2' PREHOOK: query: INSERT OVERWRITE TABLE encrypted_table SELECT * FROM src PREHOOK: type: QUERY PREHOOK: Input: default@src @@ -32,11 +45,12 @@ POSTHOOK: type: SHOWTABLES POSTHOOK: Input: database:default encrypted_table src -PREHOOK: query: ALTER TABLE default.encrypted_table RENAME TO default.plain_table +PREHOOK: query: -- should fail +ALTER TABLE default.encrypted_table RENAME TO encrypted_db.encrypted_table_2 PREHOOK: type: ALTERTABLE_RENAME PREHOOK: Input: default@encrypted_table PREHOOK: Output: default@encrypted_table -FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Unable to alter table. Alter Table operation for default.encrypted_table failed to move data due to: '/build/ql/test/data/warehouse/default/encrypted_table can't be moved from an encryption zone.' See hive log file for details. +FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Unable to alter table. Alter Table operation for default.encrypted_table failed to move data due to: '/build/ql/test/data/warehouse/default/encrypted_table can't be moved from encryption zone /build/ql/test/data/warehouse/default/encrypted_table to encryption zone /build/ql/test/data/warehouse/encrypted_db.' See hive log file for details. PREHOOK: query: SHOW TABLES PREHOOK: type: SHOWTABLES PREHOOK: Input: database:default @@ -45,11 +59,42 @@ POSTHOOK: type: SHOWTABLES POSTHOOK: Input: database:default encrypted_table src -PREHOOK: query: DROP TABLE encrypted_table PURGE -PREHOOK: type: DROPTABLE +PREHOOK: query: -- should succeed in Hadoop 2.7 but fail in 2.6 (HDFS-7530) +ALTER TABLE default.encrypted_table RENAME TO default.plain_table +PREHOOK: type: ALTERTABLE_RENAME PREHOOK: Input: default@encrypted_table PREHOOK: Output: default@encrypted_table -POSTHOOK: query: DROP TABLE encrypted_table PURGE -POSTHOOK: type: DROPTABLE +POSTHOOK: query: -- should succeed in Hadoop 2.7 but fail in 2.6 (HDFS-7530) +ALTER TABLE default.encrypted_table RENAME TO default.plain_table +POSTHOOK: type: ALTERTABLE_RENAME POSTHOOK: Input: default@encrypted_table POSTHOOK: Output: default@encrypted_table +POSTHOOK: Output: default@plain_table +PREHOOK: query: SHOW TABLES +PREHOOK: type: SHOWTABLES +PREHOOK: Input: database:default +POSTHOOK: query: SHOW TABLES +POSTHOOK: type: SHOWTABLES +POSTHOOK: Input: database:default +plain_table +src +PREHOOK: query: DROP TABLE encrypted_table PURGE +PREHOOK: type: DROPTABLE +POSTHOOK: query: DROP TABLE encrypted_table PURGE +POSTHOOK: type: DROPTABLE +PREHOOK: query: DROP TABLE default.plain_table PURGE +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@plain_table +PREHOOK: Output: default@plain_table +POSTHOOK: query: DROP TABLE default.plain_table PURGE +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@plain_table +POSTHOOK: Output: default@plain_table +PREHOOK: query: DROP DATABASE encrypted_db +PREHOOK: type: DROPDATABASE +PREHOOK: Input: database:encrypted_db +PREHOOK: Output: database:encrypted_db +POSTHOOK: query: DROP DATABASE encrypted_db +POSTHOOK: type: DROPDATABASE +POSTHOOK: Input: database:encrypted_db +POSTHOOK: Output: database:encrypted_db