You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jc...@apache.org on 2019/02/01 18:32:38 UTC
[hive] branch branch-3 updated: HIVE-21188: SemanticException for
query on view with masked table (Jesus Camacho Rodriguez,
reviewed by Ashutosh Chauhan)
This is an automated email from the ASF dual-hosted git repository.
jcamacho pushed a commit to branch branch-3
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/branch-3 by this push:
new 91497df HIVE-21188: SemanticException for query on view with masked table (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)
91497df is described below
commit 91497df12324d9a0812a81c430ef8de8199cec6b
Author: Jesus Camacho Rodriguez <jc...@apache.org>
AuthorDate: Thu Jan 31 09:27:47 2019 -0800
HIVE-21188: SemanticException for query on view with masked table (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)
---
.../hadoop/hive/ql/parse/SemanticAnalyzer.java | 4 +-
ql/src/test/queries/clientpositive/masking_14.q | 13 +++++
.../clientpositive/beeline/escape_comments.q.out | 4 +-
.../test/results/clientpositive/create_view.q.out | 12 ++--
.../clientpositive/create_view_partitioned.q.out | 2 +-
.../results/clientpositive/escape_comments.q.out | 4 +-
.../llap/materialized_view_partitioned.q.out | 4 +-
.../llap/materialized_view_partitioned_3.q.out | 2 +-
.../test/results/clientpositive/masking_14.q.out | 64 ++++++++++++++++++++++
.../results/clientpositive/unicode_comments.q.out | 4 +-
10 files changed, 95 insertions(+), 18 deletions(-)
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 ba1bc1b..6d9e4be 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
@@ -12636,7 +12636,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
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 {
@@ -12670,7 +12670,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
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 0000000..50cda8c
--- /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 ac919e1..a79cb30 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 84507da..f565e76 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
@@ -380,7 +380,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
@@ -429,7 +429,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
@@ -772,7 +772,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
@@ -847,7 +847,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
@@ -922,7 +922,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 bd9cb3a..5128b20 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 e29cfee..f8b0713 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 d5d7fad..f9b9787 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
@@ -71,7 +71,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
@@ -212,7 +212,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 8735689..48d5f5a 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
@@ -88,7 +88,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_14.q.out b/ql/src/test/results/clientpositive/masking_14.q.out
new file mode 100644
index 0000000..254af5a
--- /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/unicode_comments.q.out b/ql/src/test/results/clientpositive/unicode_comments.q.out
index ee95406..dbbc100 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