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 <[email protected]>
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

Reply via email to