You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ng...@apache.org on 2021/10/22 15:56:34 UTC
[hive] branch master updated: HIVE-25547: Alter view as Select
statement should create Authorizable events in HS2(Saihemanth reviewed by
Naveen Gangam)
This is an automated email from the ASF dual-hosted git repository.
ngangam pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new e14cff3 HIVE-25547: Alter view as Select statement should create Authorizable events in HS2(Saihemanth reviewed by Naveen Gangam)
e14cff3 is described below
commit e14cff3e3d8cf65034292ba7a52be562ed44c1c8
Author: saihemanth <sa...@cloudera.com>
AuthorDate: Wed Sep 22 18:52:34 2021 -0700
HIVE-25547: Alter view as Select statement should create Authorizable events in HS2(Saihemanth reviewed by Naveen Gangam)
---
.../plugin/TestHiveAuthorizerCheckInvocation.java | 23 ++++++++++++++++++++++
.../ql/ddl/view/create/AlterViewAsAnalyzer.java | 2 ++
.../clientpositive/llap/alter_view_as_select.q.out | 8 ++++----
.../clientpositive/llap/alter_view_col_type.q.out | 4 ++--
.../results/clientpositive/llap/lineage3.q.out | 4 ++--
5 files changed, 33 insertions(+), 8 deletions(-)
diff --git a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/security/authorization/plugin/TestHiveAuthorizerCheckInvocation.java b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/security/authorization/plugin/TestHiveAuthorizerCheckInvocation.java
index ee6925d..241ec9f 100644
--- a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/security/authorization/plugin/TestHiveAuthorizerCheckInvocation.java
+++ b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/security/authorization/plugin/TestHiveAuthorizerCheckInvocation.java
@@ -649,6 +649,29 @@ public class TestHiveAuthorizerCheckInvocation {
assertTrue(dbObj.getOwnerName() != null);
}
+ @Test
+ public void AlterViewAsStmnt() throws Exception{
+ reset(mockedAuthorizer);
+ final String tableName1 = "foo_tbl";
+ driver.run("create table " + dbName+"."+tableName1 + "(eid int, yoj int)");
+ final String tableName2 = "foo_bar";
+ driver.run("create table " + dbName+"."+tableName2 + "(eid int, name string)");
+ final String viewName = "foo_view";
+ driver.run("create view " + dbName+"."+viewName + " as select * from "+ dbName+"."+tableName1);
+ reset(mockedAuthorizer);
+ int status = driver.compile("Alter view "+dbName+"."+viewName+" as select * from "+ dbName+"."+tableName2, true);
+ assertEquals(0, status);
+ Pair<List<HivePrivilegeObject>, List<HivePrivilegeObject>> io = getHivePrivilegeObjectInputs();
+ List<HivePrivilegeObject> inputs = io.getLeft();
+ assertEquals(1, inputs.size()); // foo_bar table object
+ List<HivePrivilegeObject> outputs = io.getRight();
+ assertEquals(2, outputs.size()); // Database and view objects
+ HivePrivilegeObject dbObj = outputs.get(0);
+ assertEquals("input type", HivePrivilegeObjectType.DATABASE, dbObj.getType());
+ HivePrivilegeObject viewObj = outputs.get(1);
+ assertEquals("input type", HivePrivilegeObjectType.TABLE_OR_VIEW, viewObj.getType());
+ }
+
private void checkSingleTableInput(List<HivePrivilegeObject> inputs) {
assertEquals("number of inputs", 1, inputs.size());
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/ddl/view/create/AlterViewAsAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/ddl/view/create/AlterViewAsAnalyzer.java
index 5884a29..33c8bda 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/ddl/view/create/AlterViewAsAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/ddl/view/create/AlterViewAsAnalyzer.java
@@ -36,6 +36,7 @@ import org.apache.hadoop.hive.ql.parse.HiveParser;
import org.apache.hadoop.hive.ql.parse.ParseUtils;
import org.apache.hadoop.hive.ql.parse.SemanticAnalyzer;
import org.apache.hadoop.hive.ql.parse.SemanticException;
+import org.apache.hadoop.hive.ql.plan.HiveOperation;
/**
* Analyzer for alter view ... as commands.
@@ -44,6 +45,7 @@ import org.apache.hadoop.hive.ql.parse.SemanticException;
public class AlterViewAsAnalyzer extends AbstractCreateViewAnalyzer {
public AlterViewAsAnalyzer(QueryState queryState) throws SemanticException {
super(queryState);
+ queryState.setCommandType(HiveOperation.ALTERVIEW_AS);
}
@Override
diff --git a/ql/src/test/results/clientpositive/llap/alter_view_as_select.q.out b/ql/src/test/results/clientpositive/llap/alter_view_as_select.q.out
index b024443..9fc906e 100644
--- a/ql/src/test/results/clientpositive/llap/alter_view_as_select.q.out
+++ b/ql/src/test/results/clientpositive/llap/alter_view_as_select.q.out
@@ -52,12 +52,12 @@ Sort Columns: []
Original Query: SELECT * FROM srcpart
Expanded Query: SELECT `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` FROM `default`.`srcpart`
PREHOOK: query: ALTER VIEW tv.testView AS SELECT value FROM src WHERE key=86
-PREHOOK: type: CREATEVIEW
+PREHOOK: type: ALTERVIEW_AS
PREHOOK: Input: default@src
PREHOOK: Output: database:tv
PREHOOK: Output: tv@testView
POSTHOOK: query: ALTER VIEW tv.testView AS SELECT value FROM src WHERE key=86
-POSTHOOK: type: CREATEVIEW
+POSTHOOK: type: ALTERVIEW_AS
POSTHOOK: Input: default@src
POSTHOOK: Output: database:tv
POSTHOOK: Output: tv@testView
@@ -96,7 +96,7 @@ SELECT * FROM src
WHERE key > 80 AND key < 100
ORDER BY key, value
LIMIT 10
-PREHOOK: type: CREATEVIEW
+PREHOOK: type: ALTERVIEW_AS
PREHOOK: Input: default@src
PREHOOK: Output: database:tv
PREHOOK: Output: tv@testView
@@ -105,7 +105,7 @@ SELECT * FROM src
WHERE key > 80 AND key < 100
ORDER BY key, value
LIMIT 10
-POSTHOOK: type: CREATEVIEW
+POSTHOOK: type: ALTERVIEW_AS
POSTHOOK: Input: default@src
POSTHOOK: Output: database:tv
POSTHOOK: Output: tv@testView
diff --git a/ql/src/test/results/clientpositive/llap/alter_view_col_type.q.out b/ql/src/test/results/clientpositive/llap/alter_view_col_type.q.out
index 2d1d2ab..dfd720c 100644
--- a/ql/src/test/results/clientpositive/llap/alter_view_col_type.q.out
+++ b/ql/src/test/results/clientpositive/llap/alter_view_col_type.q.out
@@ -120,12 +120,12 @@ POSTHOOK: Input: default@av1
4 d
5 e
PREHOOK: query: alter view av1 as select c2, c3 from at1
-PREHOOK: type: CREATEVIEW
+PREHOOK: type: ALTERVIEW_AS
PREHOOK: Input: default@at1
PREHOOK: Output: database:default
PREHOOK: Output: default@av1
POSTHOOK: query: alter view av1 as select c2, c3 from at1
-POSTHOOK: type: CREATEVIEW
+POSTHOOK: type: ALTERVIEW_AS
POSTHOOK: Input: default@at1
POSTHOOK: Output: database:default
POSTHOOK: Output: default@av1
diff --git a/ql/src/test/results/clientpositive/llap/lineage3.q.out b/ql/src/test/results/clientpositive/llap/lineage3.q.out
index 45b1b8f..9211eec 100644
--- a/ql/src/test/results/clientpositive/llap/lineage3.q.out
+++ b/ql/src/test/results/clientpositive/llap/lineage3.q.out
@@ -246,7 +246,7 @@ PREHOOK: Input: default@dest_v1
-64 253665376
-64 253665376
PREHOOK: query: alter view dest_v1 as select ctinyint from alltypesorc
-PREHOOK: type: CREATEVIEW
+PREHOOK: type: ALTERVIEW_AS
PREHOOK: Input: default@alltypesorc
PREHOOK: Output: database:default
PREHOOK: Output: default@dest_v1
@@ -313,7 +313,7 @@ PREHOOK: query: alter view dest_v3 as
group by a.ctinyint, a.csmallint, b.cboolean1
having count(a.cint) > 10
order by a, x, b.cboolean1 limit 10) t_n20
-PREHOOK: type: CREATEVIEW
+PREHOOK: type: ALTERVIEW_AS
PREHOOK: Input: default@alltypesorc
PREHOOK: Output: database:default
PREHOOK: Output: default@dest_v3