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..27deeb3c26 --- /dev/null +++ b/ql/src/test/queries/clientpositive/masking_14.q @@ -0,0 +1,12 @@ +--! 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`; 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..0deccfa5e9 --- /dev/null +++ b/ql/src/test/results/clientpositive/masking_14.q.out @@ -0,0 +1,53 @@ +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 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