diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java index adce54cf27..706fa55bb1 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java @@ -12609,7 +12609,7 @@ protected void saveViewDefinition() throws SemanticException { sb.append(" FROM ("); sb.append(expandedText); sb.append(") "); - sb.append(HiveUtils.unparseIdentifier(createVwDesc.getViewName(), conf)); + sb.append(HiveUtils.unparseIdentifier(Utilities.getDbTableName(createVwDesc.getViewName())[1], conf)); expandedText = sb.toString(); } } else { @@ -12643,7 +12643,7 @@ protected void saveViewDefinition() throws SemanticException { sb.append(" FROM ("); sb.append(expandedText); sb.append(") "); - sb.append(HiveUtils.unparseIdentifier(createVwDesc.getViewName(), conf)); + sb.append(HiveUtils.unparseIdentifier(Utilities.getDbTableName(createVwDesc.getViewName())[1], conf)); expandedText = sb.toString(); } diff --git a/ql/src/test/queries/clientpositive/masking_14.q b/ql/src/test/queries/clientpositive/masking_14.q new file mode 100644 index 0000000000..50cda8cb0e --- /dev/null +++ b/ql/src/test/queries/clientpositive/masking_14.q @@ -0,0 +1,13 @@ +--! qt:dataset:srcpart +--! qt:dataset:src +set hive.mapred.mode=nonstrict; +set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactoryForTest; + +create database atlasmask; +use atlasmask; +create table masking_test_n8 (key int, value int); +insert into masking_test_n8 values(1,1), (2,2); +create view testv(c,d) as select * from masking_test_n8; + +select * from `atlasmask`.`testv`; +select `testv`.`c` from `atlasmask`.`testv` diff --git a/ql/src/test/results/clientpositive/beeline/escape_comments.q.out b/ql/src/test/results/clientpositive/beeline/escape_comments.q.out index ac919e1964..a79cb30eca 100644 --- a/ql/src/test/results/clientpositive/beeline/escape_comments.q.out +++ b/ql/src/test/results/clientpositive/beeline/escape_comments.q.out @@ -131,7 +131,7 @@ PREHOOK: Input: escape_comments_db@escape_comments_view1 POSTHOOK: query: show create table escape_comments_view1 POSTHOOK: type: SHOW_CREATETABLE POSTHOOK: Input: escape_comments_db@escape_comments_view1 -CREATE VIEW `escape_comments_view1` AS SELECT `col1` AS `col1` FROM (select `escape_comments_tbl1`.`col1` from `escape_comments_db`.`escape_comments_tbl1`) `escape_comments_db.escape_comments_view1` +CREATE VIEW `escape_comments_view1` AS SELECT `col1` AS `col1` FROM (select `escape_comments_tbl1`.`col1` from `escape_comments_db`.`escape_comments_tbl1`) `escape_comments_view1` PREHOOK: query: describe formatted escape_comments_view1 PREHOOK: type: DESCTABLE PREHOOK: Input: escape_comments_db@escape_comments_view1 @@ -163,7 +163,7 @@ Sort Columns: [] NULL NULL NULL # View Information NULL NULL Original Query: select col1 from escape_comments_tbl1 NULL -Expanded Query: SELECT `col1` AS `col1` FROM (select `escape_comments_tbl1`.`col1` from `escape_comments_db`.`escape_comments_tbl1`) `escape_comments_db.escape_comments_view1` NULL +Expanded Query: SELECT `col1` AS `col1` FROM (select `escape_comments_tbl1`.`col1` from `escape_comments_db`.`escape_comments_tbl1`) `escape_comments_view1` NULL PREHOOK: query: drop database escape_comments_db cascade PREHOOK: type: DROPDATABASE PREHOOK: Input: database:escape_comments_db diff --git a/ql/src/test/results/clientpositive/create_view.q.out b/ql/src/test/results/clientpositive/create_view.q.out index f94f7ce4c3..39088363d3 100644 --- a/ql/src/test/results/clientpositive/create_view.q.out +++ b/ql/src/test/results/clientpositive/create_view.q.out @@ -175,7 +175,7 @@ STAGE PLANS: Create View Operator: Create View columns: valoo string - expanded text: SELECT `_c0` AS `valoo` FROM (SELECT upper(`src`.`value`) FROM `default`.`src` WHERE `src`.`key`=86) `default.view0` + expanded text: SELECT `_c0` AS `valoo` FROM (SELECT upper(`src`.`value`) FROM `default`.`src` WHERE `src`.`key`=86) `view0` name: default.view0 original text: SELECT upper(value) FROM src WHERE key=86 @@ -381,7 +381,7 @@ Sort Columns: [] # View Information Original Query: SELECT upper(value) FROM src WHERE key=86 -Expanded Query: SELECT `_c0` AS `valoo` FROM (SELECT upper(`src`.`value`) FROM `default`.`src` WHERE `src`.`key`=86) `default.view3` +Expanded Query: SELECT `_c0` AS `valoo` FROM (SELECT upper(`src`.`value`) FROM `default`.`src` WHERE `src`.`key`=86) `view3` PREHOOK: query: ALTER VIEW view3 SET TBLPROPERTIES ("biggest" = "loser") PREHOOK: type: ALTERVIEW_PROPERTIES PREHOOK: Input: default@view3 @@ -430,7 +430,7 @@ Sort Columns: [] # View Information Original Query: SELECT upper(value) FROM src WHERE key=86 -Expanded Query: SELECT `_c0` AS `valoo` FROM (SELECT upper(`src`.`value`) FROM `default`.`src` WHERE `src`.`key`=86) `default.view3` +Expanded Query: SELECT `_c0` AS `valoo` FROM (SELECT upper(`src`.`value`) FROM `default`.`src` WHERE `src`.`key`=86) `view3` PREHOOK: query: CREATE TABLE table1_n4 (key int) PREHOOK: type: CREATETABLE PREHOOK: Output: database:default @@ -773,7 +773,7 @@ Sort Columns: [] Original Query: SELECT test_translate('abc', 'a', 'b') FROM table1_n4 Expanded Query: SELECT `_c0` AS `c` FROM (SELECT `test_translate`('abc', 'a', 'b') - FROM `default`.`table1_n4`) `default.view8` + FROM `default`.`table1_n4`) `view8` PREHOOK: query: SELECT * FROM view8 PREHOOK: type: QUERY PREHOOK: Input: default@table1_n4 @@ -848,7 +848,7 @@ Sort Columns: [] Original Query: SELECT test_max(length(value)) FROM src Expanded Query: SELECT `_c0` AS `m` FROM (SELECT `test_max`(length(`src`.`value`)) - FROM `default`.`src`) `default.view9` + FROM `default`.`src`) `view9` PREHOOK: query: SELECT * FROM view9 PREHOOK: type: QUERY PREHOOK: Input: default@src @@ -923,7 +923,7 @@ Sort Columns: [] Original Query: SELECT test_max(length(value)) FROM src Expanded Query: SELECT `_c0` AS `m` FROM (SELECT `test_max`(length(`src`.`value`)) - FROM `default`.`src`) `default.view9` + FROM `default`.`src`) `view9` PREHOOK: query: SELECT * FROM view9 PREHOOK: type: QUERY PREHOOK: Input: default@src diff --git a/ql/src/test/results/clientpositive/create_view_partitioned.q.out b/ql/src/test/results/clientpositive/create_view_partitioned.q.out index bd9cb3a042..5128b206fb 100644 --- a/ql/src/test/results/clientpositive/create_view_partitioned.q.out +++ b/ql/src/test/results/clientpositive/create_view_partitioned.q.out @@ -402,7 +402,7 @@ Original Query: SELECT key, value WHERE key=86 Expanded Query: SELECT `key` AS `k`, `value` AS `v` FROM (SELECT `src`.`key`, `src`.`value` FROM `default`.`src` - WHERE `src`.`key`=86) `default.vp3` + WHERE `src`.`key`=86) `vp3` PREHOOK: query: ALTER VIEW vp3 ADD PARTITION (v='val_86') PREHOOK: type: ALTERTABLE_ADDPARTS diff --git a/ql/src/test/results/clientpositive/escape_comments.q.out b/ql/src/test/results/clientpositive/escape_comments.q.out index e29cfeeeb8..f8b07136b4 100644 --- a/ql/src/test/results/clientpositive/escape_comments.q.out +++ b/ql/src/test/results/clientpositive/escape_comments.q.out @@ -136,7 +136,7 @@ PREHOOK: Input: escape_comments_db@escape_comments_view1 POSTHOOK: query: show create table escape_comments_view1 POSTHOOK: type: SHOW_CREATETABLE POSTHOOK: Input: escape_comments_db@escape_comments_view1 -CREATE VIEW `escape_comments_view1` AS SELECT `col1` AS `col1` FROM (select `escape_comments_tbl1`.`col1` from `escape_comments_db`.`escape_comments_tbl1`) `escape_comments_db.escape_comments_view1` +CREATE VIEW `escape_comments_view1` AS SELECT `col1` AS `col1` FROM (select `escape_comments_tbl1`.`col1` from `escape_comments_db`.`escape_comments_tbl1`) `escape_comments_view1` PREHOOK: query: describe formatted escape_comments_view1 PREHOOK: type: DESCTABLE PREHOOK: Input: escape_comments_db@escape_comments_view1 @@ -169,7 +169,7 @@ Sort Columns: [] # View Information Original Query: select col1 from escape_comments_tbl1 -Expanded Query: SELECT `col1` AS `col1` FROM (select `escape_comments_tbl1`.`col1` from `escape_comments_db`.`escape_comments_tbl1`) `escape_comments_db.escape_comments_view1` +Expanded Query: SELECT `col1` AS `col1` FROM (select `escape_comments_tbl1`.`col1` from `escape_comments_db`.`escape_comments_tbl1`) `escape_comments_view1` PREHOOK: query: drop database escape_comments_db cascade PREHOOK: type: DROPDATABASE PREHOOK: Input: database:escape_comments_db diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_partitioned.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_partitioned.q.out index 2c9b36d803..ec49e9336a 100644 --- a/ql/src/test/results/clientpositive/llap/materialized_view_partitioned.q.out +++ b/ql/src/test/results/clientpositive/llap/materialized_view_partitioned.q.out @@ -111,7 +111,7 @@ STAGE PLANS: Create View partition columns: key string columns: value string - expanded text: SELECT `value`, `key` FROM (SELECT `src_txn`.`value`, `src_txn`.`key` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250) `default.partition_mv_1` + expanded text: SELECT `value`, `key` FROM (SELECT `src_txn`.`value`, `src_txn`.`key` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250) `partition_mv_1` name: default.partition_mv_1 original text: SELECT value, key FROM src_txn where key > 200 and key < 250 rewrite enabled: true @@ -256,7 +256,7 @@ Sort Columns: [] # Materialized View Information Original Query: SELECT value, key FROM src_txn where key > 200 and key < 250 -Expanded Query: SELECT `value`, `key` FROM (SELECT `src_txn`.`value`, `src_txn`.`key` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250) `default.partition_mv_1` +Expanded Query: SELECT `value`, `key` FROM (SELECT `src_txn`.`value`, `src_txn`.`key` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250) `partition_mv_1` Rewrite Enabled: Yes Outdated for Rewriting: No PREHOOK: query: EXPLAIN diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_partitioned_3.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_partitioned_3.q.out index 6afa85d430..a5cd6b19db 100644 --- a/ql/src/test/results/clientpositive/llap/materialized_view_partitioned_3.q.out +++ b/ql/src/test/results/clientpositive/llap/materialized_view_partitioned_3.q.out @@ -124,7 +124,7 @@ STAGE PLANS: Create View partition columns: key string columns: value string - expanded text: SELECT `value`, `key` FROM (SELECT `src_txn`.`value`, `src_txn`.`key` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250) `default.partition_mv_sdp` + expanded text: SELECT `value`, `key` FROM (SELECT `src_txn`.`value`, `src_txn`.`key` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250) `partition_mv_sdp` name: default.partition_mv_sdp original text: SELECT value, key FROM src_txn where key > 200 and key < 250 rewrite enabled: true diff --git a/ql/src/test/results/clientpositive/masking_1.q.out b/ql/src/test/results/clientpositive/masking_1.q.out index 140a56fe84..d915a47757 100644 --- a/ql/src/test/results/clientpositive/masking_1.q.out +++ b/ql/src/test/results/clientpositive/masking_1.q.out @@ -271,19 +271,19 @@ STAGE PLANS: TableScan alias: srcpart filterExpr: key is not null (type: boolean) - Statistics: Num rows: 2000 Data size: 1092000 Basic stats: COMPLETE Column stats: PARTIAL + Statistics: Num rows: 2000 Data size: 1092000 Basic stats: COMPLETE Column stats: COMPLETE Filter Operator predicate: key is not null (type: boolean) - Statistics: Num rows: 2000 Data size: 1092000 Basic stats: COMPLETE Column stats: PARTIAL + Statistics: Num rows: 2000 Data size: 1092000 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: key (type: string), value (type: string), ds (type: string), hr (type: string), UDFToDouble(key) (type: double) outputColumnNames: _col0, _col1, _col2, _col3, _col4 - Statistics: Num rows: 2000 Data size: 1108000 Basic stats: COMPLETE Column stats: PARTIAL + Statistics: Num rows: 2000 Data size: 1108000 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col4 (type: double) sort order: + Map-reduce partition columns: _col4 (type: double) - Statistics: Num rows: 2000 Data size: 1108000 Basic stats: COMPLETE Column stats: PARTIAL + Statistics: Num rows: 2000 Data size: 1108000 Basic stats: COMPLETE Column stats: COMPLETE value expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: string) Reduce Operator Tree: Join Operator @@ -293,14 +293,14 @@ STAGE PLANS: 0 _col2 (type: double) 1 _col4 (type: double) outputColumnNames: _col0, _col1, _col3, _col4, _col5, _col6 - Statistics: Num rows: 525 Data size: 385350 Basic stats: COMPLETE Column stats: PARTIAL + Statistics: Num rows: 525 Data size: 385350 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: _col0 (type: int), _col1 (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: string), _col6 (type: string) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 - Statistics: Num rows: 525 Data size: 385350 Basic stats: COMPLETE Column stats: PARTIAL + Statistics: Num rows: 525 Data size: 385350 Basic stats: COMPLETE Column stats: COMPLETE File Output Operator compressed: false - Statistics: Num rows: 525 Data size: 385350 Basic stats: COMPLETE Column stats: PARTIAL + Statistics: Num rows: 525 Data size: 385350 Basic stats: COMPLETE Column stats: COMPLETE table: input format: org.apache.hadoop.mapred.SequenceFileInputFormat output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat diff --git a/ql/src/test/results/clientpositive/masking_14.q.out b/ql/src/test/results/clientpositive/masking_14.q.out new file mode 100644 index 0000000000..254af5a42d --- /dev/null +++ b/ql/src/test/results/clientpositive/masking_14.q.out @@ -0,0 +1,64 @@ +PREHOOK: query: create database atlasmask +PREHOOK: type: CREATEDATABASE +PREHOOK: Output: database:atlasmask +POSTHOOK: query: create database atlasmask +POSTHOOK: type: CREATEDATABASE +POSTHOOK: Output: database:atlasmask +PREHOOK: query: use atlasmask +PREHOOK: type: SWITCHDATABASE +PREHOOK: Input: database:atlasmask +POSTHOOK: query: use atlasmask +POSTHOOK: type: SWITCHDATABASE +POSTHOOK: Input: database:atlasmask +PREHOOK: query: create table masking_test_n8 (key int, value int) +PREHOOK: type: CREATETABLE +PREHOOK: Output: atlasmask@masking_test_n8 +PREHOOK: Output: database:atlasmask +POSTHOOK: query: create table masking_test_n8 (key int, value int) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: atlasmask@masking_test_n8 +POSTHOOK: Output: database:atlasmask +PREHOOK: query: insert into masking_test_n8 values(1,1), (2,2) +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: atlasmask@masking_test_n8 +POSTHOOK: query: insert into masking_test_n8 values(1,1), (2,2) +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: atlasmask@masking_test_n8 +POSTHOOK: Lineage: masking_test_n8.key SCRIPT [] +POSTHOOK: Lineage: masking_test_n8.value SCRIPT [] +PREHOOK: query: create view testv(c,d) as select * from masking_test_n8 +PREHOOK: type: CREATEVIEW +PREHOOK: Input: atlasmask@masking_test_n8 +PREHOOK: Output: atlasmask@testv +PREHOOK: Output: database:atlasmask +POSTHOOK: query: create view testv(c,d) as select * from masking_test_n8 +POSTHOOK: type: CREATEVIEW +POSTHOOK: Input: atlasmask@masking_test_n8 +POSTHOOK: Output: atlasmask@testv +POSTHOOK: Output: database:atlasmask +POSTHOOK: Lineage: testv.c SIMPLE [(masking_test_n8)masking_test_n8.FieldSchema(name:key, type:int, comment:null), ] +POSTHOOK: Lineage: testv.d SIMPLE [(masking_test_n8)masking_test_n8.FieldSchema(name:value, type:int, comment:null), ] +PREHOOK: query: select * from `atlasmask`.`testv` +PREHOOK: type: QUERY +PREHOOK: Input: atlasmask@masking_test_n8 +PREHOOK: Input: atlasmask@testv +#### A masked pattern was here #### +POSTHOOK: query: select * from `atlasmask`.`testv` +POSTHOOK: type: QUERY +POSTHOOK: Input: atlasmask@masking_test_n8 +POSTHOOK: Input: atlasmask@testv +#### A masked pattern was here #### +2 2 +PREHOOK: query: select `testv`.`c` from `atlasmask`.`testv` +PREHOOK: type: QUERY +PREHOOK: Input: atlasmask@masking_test_n8 +PREHOOK: Input: atlasmask@testv +#### A masked pattern was here #### +POSTHOOK: query: select `testv`.`c` from `atlasmask`.`testv` +POSTHOOK: type: QUERY +POSTHOOK: Input: atlasmask@masking_test_n8 +POSTHOOK: Input: atlasmask@testv +#### A masked pattern was here #### +2 diff --git a/ql/src/test/results/clientpositive/masking_disablecbo_1.q.out b/ql/src/test/results/clientpositive/masking_disablecbo_1.q.out index 8f77424e92..fd0e6fbdb9 100644 --- a/ql/src/test/results/clientpositive/masking_disablecbo_1.q.out +++ b/ql/src/test/results/clientpositive/masking_disablecbo_1.q.out @@ -271,15 +271,15 @@ STAGE PLANS: TableScan alias: srcpart filterExpr: UDFToDouble(key) is not null (type: boolean) - Statistics: Num rows: 2000 Data size: 1092000 Basic stats: COMPLETE Column stats: PARTIAL + Statistics: Num rows: 2000 Data size: 1092000 Basic stats: COMPLETE Column stats: COMPLETE Filter Operator predicate: UDFToDouble(key) is not null (type: boolean) - Statistics: Num rows: 2000 Data size: 1092000 Basic stats: COMPLETE Column stats: PARTIAL + Statistics: Num rows: 2000 Data size: 1092000 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: UDFToDouble(key) (type: double) sort order: + Map-reduce partition columns: UDFToDouble(key) (type: double) - Statistics: Num rows: 2000 Data size: 1092000 Basic stats: COMPLETE Column stats: PARTIAL + Statistics: Num rows: 2000 Data size: 1092000 Basic stats: COMPLETE Column stats: COMPLETE value expressions: key (type: string), value (type: string), ds (type: string), hr (type: string) Reduce Operator Tree: Join Operator @@ -289,14 +289,14 @@ STAGE PLANS: 0 UDFToDouble(_col0) (type: double) 1 UDFToDouble(key) (type: double) outputColumnNames: _col0, _col1, _col5, _col6, _col7, _col8 - Statistics: Num rows: 525 Data size: 385350 Basic stats: COMPLETE Column stats: PARTIAL + Statistics: Num rows: 525 Data size: 385350 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: _col0 (type: int), _col1 (type: string), _col5 (type: string), _col6 (type: string), _col7 (type: string), _col8 (type: string) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 - Statistics: Num rows: 525 Data size: 385350 Basic stats: COMPLETE Column stats: PARTIAL + Statistics: Num rows: 525 Data size: 385350 Basic stats: COMPLETE Column stats: COMPLETE File Output Operator compressed: false - Statistics: Num rows: 525 Data size: 385350 Basic stats: COMPLETE Column stats: PARTIAL + Statistics: Num rows: 525 Data size: 385350 Basic stats: COMPLETE Column stats: COMPLETE table: input format: org.apache.hadoop.mapred.SequenceFileInputFormat output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat diff --git a/ql/src/test/results/clientpositive/unicode_comments.q.out b/ql/src/test/results/clientpositive/unicode_comments.q.out index ee954064ed..dbbc100120 100644 --- a/ql/src/test/results/clientpositive/unicode_comments.q.out +++ b/ql/src/test/results/clientpositive/unicode_comments.q.out @@ -110,7 +110,7 @@ PREHOOK: Input: unicode_comments_db@unicode_comments_view1 POSTHOOK: query: show create table unicode_comments_view1 POSTHOOK: type: SHOW_CREATETABLE POSTHOOK: Input: unicode_comments_db@unicode_comments_view1 -CREATE VIEW `unicode_comments_view1` AS SELECT `col1` AS `col1` FROM (select `unicode_comments_tbl1`.`col1` from `unicode_comments_db`.`unicode_comments_tbl1`) `unicode_comments_db.unicode_comments_view1` +CREATE VIEW `unicode_comments_view1` AS SELECT `col1` AS `col1` FROM (select `unicode_comments_tbl1`.`col1` from `unicode_comments_db`.`unicode_comments_tbl1`) `unicode_comments_view1` PREHOOK: query: describe formatted unicode_comments_view1 PREHOOK: type: DESCTABLE PREHOOK: Input: unicode_comments_db@unicode_comments_view1 @@ -141,7 +141,7 @@ Sort Columns: [] # View Information Original Query: select col1 from unicode_comments_tbl1 -Expanded Query: SELECT `col1` AS `col1` FROM (select `unicode_comments_tbl1`.`col1` from `unicode_comments_db`.`unicode_comments_tbl1`) `unicode_comments_db.unicode_comments_view1` +Expanded Query: SELECT `col1` AS `col1` FROM (select `unicode_comments_tbl1`.`col1` from `unicode_comments_db`.`unicode_comments_tbl1`) `unicode_comments_view1` PREHOOK: query: drop database unicode_comments_db cascade PREHOOK: type: DROPDATABASE PREHOOK: Input: database:unicode_comments_db