Repository: hive Updated Branches: refs/heads/master e49170af3 -> 130617443
Preserve the location of table created with the location clause in table rename (Chaoyu Tang, reviewed by Aihua Xu) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/13061744 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/13061744 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/13061744 Branch: refs/heads/master Commit: 130617443bb05d79c18420c0c4e903a76da3651c Parents: e49170a Author: ctang <[email protected]> Authored: Thu Oct 27 09:52:23 2016 -0400 Committer: ctang <[email protected]> Committed: Thu Oct 27 09:52:23 2016 -0400 ---------------------------------------------------------------------- .../hive/hcatalog/cli/TestSemanticAnalysis.java | 9 +- .../hadoop/hive/metastore/HiveAlterHandler.java | 128 +++++++++-------- .../clientpositive/encryption_move_tbl.q | 43 +++++- .../encrypted/encryption_move_tbl.q.out | 140 ++++++++++++++++++- 4 files changed, 248 insertions(+), 72 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/13061744/hcatalog/core/src/test/java/org/apache/hive/hcatalog/cli/TestSemanticAnalysis.java ---------------------------------------------------------------------- diff --git a/hcatalog/core/src/test/java/org/apache/hive/hcatalog/cli/TestSemanticAnalysis.java b/hcatalog/core/src/test/java/org/apache/hive/hcatalog/cli/TestSemanticAnalysis.java index ce4ef75..e41b1f1 100644 --- a/hcatalog/core/src/test/java/org/apache/hive/hcatalog/cli/TestSemanticAnalysis.java +++ b/hcatalog/core/src/test/java/org/apache/hive/hcatalog/cli/TestSemanticAnalysis.java @@ -248,11 +248,16 @@ public class TestSemanticAnalysis extends HCatBaseTest { hcatDriver.run("drop table newname"); hcatDriver.run("create table oldname (a int)"); Table tbl = client.getTable(MetaStoreUtils.DEFAULT_DATABASE_NAME, "oldname"); - assertTrue(tbl.getSd().getLocation().contains("oldname")); + assertTrue("The old table location is: " + tbl.getSd().getLocation(), tbl.getSd().getLocation().contains("oldname")); hcatDriver.run("alter table oldname rename to newNAME"); tbl = client.getTable(MetaStoreUtils.DEFAULT_DATABASE_NAME, "newname"); - assertTrue(tbl.getSd().getLocation().contains("newname")); + // since the oldname table is not under its database (See HIVE-15059), the renamed oldname table will keep + // its location after HIVE-14909. I changed to check the existence of the newname table and its name instead + // of verifying its location + // assertTrue(tbl.getSd().getLocation().contains("newname")); + assertTrue(tbl != null); + assertTrue(tbl.getTableName().equalsIgnoreCase("newname")); hcatDriver.run("drop table newname"); } http://git-wip-us.apache.org/repos/asf/hive/blob/13061744/metastore/src/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java ---------------------------------------------------------------------- diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java index 7b84595..ede9b52 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java @@ -163,72 +163,84 @@ public class HiveAlterHandler implements AlterHandler { } } - // if this alter is a rename, the table is not a virtual view, the user - // didn't change the default location (or new location is empty), and - // table is not an external table, that means user is asking metastore to - // move data to the new location corresponding to the new name + // rename needs change the data location and move the data to the new location corresponding + // to the new name if: + // 1) the table is not a virtual view, and + // 2) the table is not an external table, and + // 3) the user didn't change the default location (or new location is empty), and + // 4) the table was not initially created with a specified location if (rename && !oldt.getTableType().equals(TableType.VIRTUAL_VIEW.toString()) && (oldt.getSd().getLocation().compareTo(newt.getSd().getLocation()) == 0 || StringUtils.isEmpty(newt.getSd().getLocation())) && !MetaStoreUtils.isExternalTable(oldt)) { - + Database olddb = msdb.getDatabase(dbname); + // if a table was created in a user specified location using the DDL like + // create table tbl ... location ...., it should be treated like an external table + // in the table rename, its data location should not be changed. We can check + // if the table directory was created directly under its database directory to tell + // if it is such a table srcPath = new Path(oldt.getSd().getLocation()); - srcFs = wh.getFs(srcPath); - - // that means user is asking metastore to move data to new location - // corresponding to the new name - // get new location - Database db = msdb.getDatabase(newt.getDbName()); - Path databasePath = constructRenamedPath(wh.getDatabasePath(db), srcPath); - destPath = new Path(databasePath, newt.getTableName().toLowerCase()); - destFs = wh.getFs(destPath); - - newt.getSd().setLocation(destPath.toString()); - moveData = true; - - // check that destination does not exist otherwise we will be - // overwriting data - // check that src and dest are on the same file system - if (!FileUtils.equalsFileSystem(srcFs, destFs)) { - throw new InvalidOperationException("table new location " + destPath - + " is on a different file system than the old location " - + srcPath + ". This operation is not supported"); - } - try { - srcFs.exists(srcPath); // check that src exists and also checks - // permissions necessary - if (destFs.exists(destPath)) { - throw new InvalidOperationException("New location for this table " - + newt.getDbName() + "." + newt.getTableName() - + " already exists : " + destPath); + String oldtRelativePath = (new Path(olddb.getLocationUri()).toUri()) + .relativize(srcPath.toUri()).toString(); + boolean tableInSpecifiedLoc = !oldtRelativePath.equalsIgnoreCase(name) + && !oldtRelativePath.equalsIgnoreCase(name + Path.SEPARATOR); + + if (!tableInSpecifiedLoc) { + srcFs = wh.getFs(srcPath); + + // get new location + Database db = msdb.getDatabase(newt.getDbName()); + Path databasePath = constructRenamedPath(wh.getDatabasePath(db), srcPath); + destPath = new Path(databasePath, newt.getTableName().toLowerCase()); + destFs = wh.getFs(destPath); + + newt.getSd().setLocation(destPath.toString()); + moveData = true; + + // check that destination does not exist otherwise we will be + // overwriting data + // check that src and dest are on the same file system + if (!FileUtils.equalsFileSystem(srcFs, destFs)) { + throw new InvalidOperationException("table new location " + destPath + + " is on a different file system than the old location " + + srcPath + ". This operation is not supported"); } - } catch (IOException e) { - throw new InvalidOperationException("Unable to access new location " - + destPath + " for table " + newt.getDbName() + "." - + newt.getTableName()); - } - String oldTblLocPath = srcPath.toUri().getPath(); - String newTblLocPath = destPath.toUri().getPath(); - - // also the location field in partition - List<Partition> parts = msdb.getPartitions(dbname, name, -1); - for (Partition part : parts) { - String oldPartLoc = part.getSd().getLocation(); - if (oldPartLoc.contains(oldTblLocPath)) { - URI oldUri = new Path(oldPartLoc).toUri(); - String newPath = oldUri.getPath().replace(oldTblLocPath, newTblLocPath); - Path newPartLocPath = new Path(oldUri.getScheme(), oldUri.getAuthority(), newPath); - altps.add(ObjectPair.create(part, part.getSd().getLocation())); - part.getSd().setLocation(newPartLocPath.toString()); - String oldPartName = Warehouse.makePartName(oldt.getPartitionKeys(), part.getValues()); - try { - //existing partition column stats is no longer valid, remove them - msdb.deletePartitionColumnStatistics(dbname, name, oldPartName, part.getValues(), null); - } catch (InvalidInputException iie) { - throw new InvalidOperationException("Unable to update partition stats in table rename." + iie); + try { + srcFs.exists(srcPath); // check that src exists and also checks + // permissions necessary + if (destFs.exists(destPath)) { + throw new InvalidOperationException("New location for this table " + + newt.getDbName() + "." + newt.getTableName() + + " already exists : " + destPath); + } + } catch (IOException e) { + throw new InvalidOperationException("Unable to access new location " + + destPath + " for table " + newt.getDbName() + "." + + newt.getTableName()); + } + String oldTblLocPath = srcPath.toUri().getPath(); + String newTblLocPath = destPath.toUri().getPath(); + + // also the location field in partition + List<Partition> parts = msdb.getPartitions(dbname, name, -1); + for (Partition part : parts) { + String oldPartLoc = part.getSd().getLocation(); + if (oldPartLoc.contains(oldTblLocPath)) { + URI oldUri = new Path(oldPartLoc).toUri(); + String newPath = oldUri.getPath().replace(oldTblLocPath, newTblLocPath); + Path newPartLocPath = new Path(oldUri.getScheme(), oldUri.getAuthority(), newPath); + altps.add(ObjectPair.create(part, part.getSd().getLocation())); + part.getSd().setLocation(newPartLocPath.toString()); + String oldPartName = Warehouse.makePartName(oldt.getPartitionKeys(), part.getValues()); + try { + //existing partition column stats is no longer valid, remove them + msdb.deletePartitionColumnStatistics(dbname, name, oldPartName, part.getValues(), null); + } catch (InvalidInputException iie) { + throw new InvalidOperationException("Unable to update partition stats in table rename." + iie); + } + msdb.alterPartition(dbname, name, part.getValues(), part); } - msdb.alterPartition(dbname, name, part.getValues(), part); } } } else if (MetaStoreUtils.requireCalStats(hiveConf, null, null, newt, environmentContext) && http://git-wip-us.apache.org/repos/asf/hive/blob/13061744/ql/src/test/queries/clientpositive/encryption_move_tbl.q ---------------------------------------------------------------------- diff --git a/ql/src/test/queries/clientpositive/encryption_move_tbl.q b/ql/src/test/queries/clientpositive/encryption_move_tbl.q index a25d955..7a5de7b 100644 --- a/ql/src/test/queries/clientpositive/encryption_move_tbl.q +++ b/ql/src/test/queries/clientpositive/encryption_move_tbl.q @@ -6,26 +6,57 @@ 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'; + +-- create table default.encrypted_table in its default warehouse location ${hiveconf:hive.metastore.warehouse.dir}/encrypted_table +CREATE TABLE encrypted_table (key INT, value STRING) LOCATION '${hiveconf:hive.metastore.warehouse.dir}/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; +CRYPTO CREATE_ZONE --keyName key_128 --path ${hiveconf:hive.metastore.warehouse.dir}/encrypted_table; -CREATE DATABASE encrypted_db LOCATION '${hiveconf:hive.metastore.warehouse.dir}/encrypted_db'; +-- create database encrypted_db in its default warehouse location {hiveconf:hive.metastore.warehouse.dir}/encrypted_db.db +CREATE DATABASE encrypted_db LOCATION '${hiveconf:hive.metastore.warehouse.dir}/encrypted_db.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; +CRYPTO CREATE_ZONE --keyName key_128_2 --path ${hiveconf:hive.metastore.warehouse.dir}/encrypted_db.db; INSERT OVERWRITE TABLE encrypted_table SELECT * FROM src; SHOW TABLES; --- should fail +-- should fail, since they are in different encryption zones 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; +-- create table encrypted_table_outloc under default database but in a specified location other than the default db location in the warehouse +-- rename should succeed since it does not need to move data (HIVE-14909), otherwise, it would fail. +CREATE TABLE encrypted_table_outloc (key INT, value STRING) LOCATION '${hiveconf:hive.metastore.warehouse.dir}/../specified_table_location'; +CRYPTO CREATE_KEY --keyName key_128_3 --bitLength 128; +CRYPTO CREATE_ZONE --keyName key_128_3 --path ${hiveconf:hive.metastore.warehouse.dir}/../specified_table_location; +ALTER TABLE encrypted_table_outloc RENAME TO renamed_encrypted_table_outloc; +SHOW TABLES; + +-- create database encrypted_db_outloc in a specified location other than its default in warehouse +CREATE DATABASE encrypted_db_outloc LOCATION '${hiveconf:hive.metastore.warehouse.dir}/../specified_db_location'; +CRYPTO CREATE_KEY --keyName key_128_4 --bitLength 128; +CRYPTO CREATE_ZONE --keyName key_128_4 --path ${hiveconf:hive.metastore.warehouse.dir}/../specified_db_location; + +USE encrypted_db_outloc; +CREATE TABLE encrypted_table (key INT, value STRING); +INSERT OVERWRITE TABLE encrypted_table SELECT * FROM default.src; +ALTER TABLE encrypted_table RENAME TO renamed_encrypted_table; +-- should succeed since data moves within specified_db_location +SHOW TABLES; +-- should fail, since they are in different encryption zones +ALTER TABLE encrypted_db_outloc.renamed_encrypted_table RENAME TO default.plain_table_2; +SHOW TABLES; -DROP TABLE encrypted_table PURGE; +DROP TABLE default.encrypted_table PURGE; DROP TABLE default.plain_table PURGE; +DROP TABLE default.renamed_encrypted_table_outloc PURGE; DROP DATABASE encrypted_db; +DROP TABLE encrypted_db_outloc.renamed_encrypted_table PURGE; +DROP DATABASE encrypted_db_outloc; CRYPTO DELETE_KEY --keyName key_128; CRYPTO DELETE_KEY --keyName key_128_2; +CRYPTO DELETE_KEY --keyName key_128_3; +CRYPTO DELETE_KEY --keyName key_128_4; http://git-wip-us.apache.org/repos/asf/hive/blob/13061744/ql/src/test/results/clientpositive/encrypted/encryption_move_tbl.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/encrypted/encryption_move_tbl.q.out b/ql/src/test/results/clientpositive/encrypted/encryption_move_tbl.q.out index 910ce25..26396b2 100644 --- a/ql/src/test/results/clientpositive/encrypted/encryption_move_tbl.q.out +++ b/ql/src/test/results/clientpositive/encrypted/encryption_move_tbl.q.out @@ -17,16 +17,19 @@ POSTHOOK: type: CREATETABLE 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' +Encryption zone created: '/build/ql/test/data/warehouse/encrypted_table' using key: 'key_128' +PREHOOK: query: -- create database encrypted_db in its default warehouse location {hiveconf:hive.metastore.warehouse.dir}/encrypted_db.db #### A masked pattern was here #### PREHOOK: type: CREATEDATABASE PREHOOK: Output: database:encrypted_db #### A masked pattern was here #### +POSTHOOK: query: -- create database encrypted_db in its default warehouse location {hiveconf:hive.metastore.warehouse.dir}/encrypted_db.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' +Encryption zone created: '/build/ql/test/data/warehouse/encrypted_db.db' using key: 'key_128_2' PREHOOK: query: INSERT OVERWRITE TABLE encrypted_table SELECT * FROM src PREHOOK: type: QUERY PREHOOK: Input: default@src @@ -45,12 +48,12 @@ POSTHOOK: type: SHOWTABLES POSTHOOK: Input: database:default encrypted_table src -PREHOOK: query: -- should fail +PREHOOK: query: -- should fail, since they are in different encryption zones 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 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. +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/encrypted_table can't be moved from encryption zone /build/ql/test/data/warehouse/encrypted_table to encryption zone /build/ql/test/data/warehouse/encrypted_db.db.' See hive log file for details. PREHOOK: query: SHOW TABLES PREHOOK: type: SHOWTABLES PREHOOK: Input: database:default @@ -78,9 +81,110 @@ POSTHOOK: type: SHOWTABLES POSTHOOK: Input: database:default plain_table src -PREHOOK: query: DROP TABLE encrypted_table PURGE +PREHOOK: query: -- create table encrypted_table_outloc under default database but in a specified location other than the default db location in the warehouse +-- rename should succeed since it does not need to move data (HIVE-14909), otherwise, it would fail. +#### A masked pattern was here #### +PREHOOK: type: CREATETABLE +#### A masked pattern was here #### +PREHOOK: Output: database:default +PREHOOK: Output: default@encrypted_table_outloc +POSTHOOK: query: -- create table encrypted_table_outloc under default database but in a specified location other than the default db location in the warehouse +-- rename should succeed since it does not need to move data (HIVE-14909), otherwise, it would fail. +#### A masked pattern was here #### +POSTHOOK: type: CREATETABLE +#### A masked pattern was here #### +POSTHOOK: Output: database:default +POSTHOOK: Output: default@encrypted_table_outloc +Encryption key created: 'key_128_3' +Encryption zone created: '/build/ql/test/data/specified_table_location' using key: 'key_128_3' +PREHOOK: query: ALTER TABLE encrypted_table_outloc RENAME TO renamed_encrypted_table_outloc +PREHOOK: type: ALTERTABLE_RENAME +PREHOOK: Input: default@encrypted_table_outloc +PREHOOK: Output: default@encrypted_table_outloc +POSTHOOK: query: ALTER TABLE encrypted_table_outloc RENAME TO renamed_encrypted_table_outloc +POSTHOOK: type: ALTERTABLE_RENAME +POSTHOOK: Input: default@encrypted_table_outloc +POSTHOOK: Output: default@encrypted_table_outloc +POSTHOOK: Output: default@renamed_encrypted_table_outloc +PREHOOK: query: SHOW TABLES +PREHOOK: type: SHOWTABLES +PREHOOK: Input: database:default +POSTHOOK: query: SHOW TABLES +POSTHOOK: type: SHOWTABLES +POSTHOOK: Input: database:default +plain_table +renamed_encrypted_table_outloc +src +PREHOOK: query: -- create database encrypted_db_outloc in a specified location other than its default in warehouse +#### A masked pattern was here #### +PREHOOK: type: CREATEDATABASE +PREHOOK: Output: database:encrypted_db_outloc +#### A masked pattern was here #### +POSTHOOK: query: -- create database encrypted_db_outloc in a specified location other than its default in warehouse +#### A masked pattern was here #### +POSTHOOK: type: CREATEDATABASE +POSTHOOK: Output: database:encrypted_db_outloc +#### A masked pattern was here #### +Encryption key created: 'key_128_4' +Encryption zone created: '/build/ql/test/data/specified_db_location' using key: 'key_128_4' +PREHOOK: query: USE encrypted_db_outloc +PREHOOK: type: SWITCHDATABASE +PREHOOK: Input: database:encrypted_db_outloc +POSTHOOK: query: USE encrypted_db_outloc +POSTHOOK: type: SWITCHDATABASE +POSTHOOK: Input: database:encrypted_db_outloc +PREHOOK: query: CREATE TABLE encrypted_table (key INT, value STRING) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:encrypted_db_outloc +PREHOOK: Output: encrypted_db_outloc@encrypted_table +POSTHOOK: query: CREATE TABLE encrypted_table (key INT, value STRING) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:encrypted_db_outloc +POSTHOOK: Output: encrypted_db_outloc@encrypted_table +PREHOOK: query: INSERT OVERWRITE TABLE encrypted_table SELECT * FROM default.src +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: encrypted_db_outloc@encrypted_table +POSTHOOK: query: INSERT OVERWRITE TABLE encrypted_table SELECT * FROM default.src +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: encrypted_db_outloc@encrypted_table +POSTHOOK: Lineage: encrypted_table.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: encrypted_table.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +PREHOOK: query: ALTER TABLE encrypted_table RENAME TO renamed_encrypted_table +PREHOOK: type: ALTERTABLE_RENAME +PREHOOK: Input: encrypted_db_outloc@encrypted_table +PREHOOK: Output: encrypted_db_outloc@encrypted_table +POSTHOOK: query: ALTER TABLE encrypted_table RENAME TO renamed_encrypted_table +POSTHOOK: type: ALTERTABLE_RENAME +POSTHOOK: Input: encrypted_db_outloc@encrypted_table +POSTHOOK: Output: encrypted_db_outloc@encrypted_table +POSTHOOK: Output: encrypted_db_outloc@renamed_encrypted_table +PREHOOK: query: -- should succeed since data moves within specified_db_location +SHOW TABLES +PREHOOK: type: SHOWTABLES +PREHOOK: Input: database:encrypted_db_outloc +POSTHOOK: query: -- should succeed since data moves within specified_db_location +SHOW TABLES +POSTHOOK: type: SHOWTABLES +POSTHOOK: Input: database:encrypted_db_outloc +renamed_encrypted_table +PREHOOK: query: -- should fail, since they are in different encryption zones +ALTER TABLE encrypted_db_outloc.renamed_encrypted_table RENAME TO default.plain_table_2 +PREHOOK: type: ALTERTABLE_RENAME +PREHOOK: Input: encrypted_db_outloc@renamed_encrypted_table +PREHOOK: Output: encrypted_db_outloc@renamed_encrypted_table +FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Unable to alter table. Alter Table operation for encrypted_db_outloc.renamed_encrypted_table failed to move data due to: '/build/ql/test/data/specified_db_location/renamed_encrypted_table can't be moved from an encryption zone.' See hive log file for details. +PREHOOK: query: SHOW TABLES +PREHOOK: type: SHOWTABLES +PREHOOK: Input: database:encrypted_db_outloc +POSTHOOK: query: SHOW TABLES +POSTHOOK: type: SHOWTABLES +POSTHOOK: Input: database:encrypted_db_outloc +renamed_encrypted_table +PREHOOK: query: DROP TABLE default.encrypted_table PURGE PREHOOK: type: DROPTABLE -POSTHOOK: query: DROP TABLE encrypted_table PURGE +POSTHOOK: query: DROP TABLE default.encrypted_table PURGE POSTHOOK: type: DROPTABLE PREHOOK: query: DROP TABLE default.plain_table PURGE PREHOOK: type: DROPTABLE @@ -90,6 +194,14 @@ POSTHOOK: query: DROP TABLE default.plain_table PURGE POSTHOOK: type: DROPTABLE POSTHOOK: Input: default@plain_table POSTHOOK: Output: default@plain_table +PREHOOK: query: DROP TABLE default.renamed_encrypted_table_outloc PURGE +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@renamed_encrypted_table_outloc +PREHOOK: Output: default@renamed_encrypted_table_outloc +POSTHOOK: query: DROP TABLE default.renamed_encrypted_table_outloc PURGE +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@renamed_encrypted_table_outloc +POSTHOOK: Output: default@renamed_encrypted_table_outloc PREHOOK: query: DROP DATABASE encrypted_db PREHOOK: type: DROPDATABASE PREHOOK: Input: database:encrypted_db @@ -98,3 +210,19 @@ POSTHOOK: query: DROP DATABASE encrypted_db POSTHOOK: type: DROPDATABASE POSTHOOK: Input: database:encrypted_db POSTHOOK: Output: database:encrypted_db +PREHOOK: query: DROP TABLE encrypted_db_outloc.renamed_encrypted_table PURGE +PREHOOK: type: DROPTABLE +PREHOOK: Input: encrypted_db_outloc@renamed_encrypted_table +PREHOOK: Output: encrypted_db_outloc@renamed_encrypted_table +POSTHOOK: query: DROP TABLE encrypted_db_outloc.renamed_encrypted_table PURGE +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: encrypted_db_outloc@renamed_encrypted_table +POSTHOOK: Output: encrypted_db_outloc@renamed_encrypted_table +PREHOOK: query: DROP DATABASE encrypted_db_outloc +PREHOOK: type: DROPDATABASE +PREHOOK: Input: database:encrypted_db_outloc +PREHOOK: Output: database:encrypted_db_outloc +POSTHOOK: query: DROP DATABASE encrypted_db_outloc +POSTHOOK: type: DROPDATABASE +POSTHOOK: Input: database:encrypted_db_outloc +POSTHOOK: Output: database:encrypted_db_outloc
