You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by yc...@apache.org on 2021/08/24 19:35:43 UTC

[hive] branch master updated: HIVE-25408: AlterTableSetOwnerAnalyzer should send Hive Privilege Objects for Authorization (#2560) (Sai Hemanth Gantasala, reviewed by Yongzhi Chen)

This is an automated email from the ASF dual-hosted git repository.

ychena 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 620b2b1  HIVE-25408: AlterTableSetOwnerAnalyzer should send Hive Privilege Objects for Authorization (#2560) (Sai Hemanth Gantasala, reviewed by Yongzhi Chen)
620b2b1 is described below

commit 620b2b197269041d7f508bd0e4564ed8e5edfcfd
Author: Sai Hemanth Gantasala <68...@users.noreply.github.com>
AuthorDate: Tue Aug 24 12:35:28 2021 -0700

    HIVE-25408: AlterTableSetOwnerAnalyzer should send Hive Privilege Objects for Authorization (#2560) (Sai Hemanth Gantasala, reviewed by Yongzhi Chen)
---
 .../hive/ql/ddl/table/misc/owner/AlterTableSetOwnerAnalyzer.java    | 3 +++
 ql/src/java/org/apache/hadoop/hive/ql/hooks/WriteEntity.java        | 1 +
 ql/src/test/results/clientpositive/llap/table_set_owner.q.out       | 6 ++++++
 3 files changed, 10 insertions(+)

diff --git a/ql/src/java/org/apache/hadoop/hive/ql/ddl/table/misc/owner/AlterTableSetOwnerAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/ddl/table/misc/owner/AlterTableSetOwnerAnalyzer.java
index d2b18fd..420cfab 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/ddl/table/misc/owner/AlterTableSetOwnerAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/ddl/table/misc/owner/AlterTableSetOwnerAnalyzer.java
@@ -27,6 +27,8 @@ import org.apache.hadoop.hive.ql.ddl.DDLSemanticAnalyzerFactory.DDLType;
 import org.apache.hadoop.hive.ql.ddl.privilege.PrincipalDesc;
 import org.apache.hadoop.hive.ql.ddl.table.AbstractAlterTableAnalyzer;
 import org.apache.hadoop.hive.ql.exec.TaskFactory;
+import org.apache.hadoop.hive.ql.io.AcidUtils;
+import org.apache.hadoop.hive.ql.metadata.Table;
 import org.apache.hadoop.hive.ql.parse.ASTNode;
 import org.apache.hadoop.hive.ql.parse.HiveParser;
 import org.apache.hadoop.hive.ql.parse.SemanticException;
@@ -55,6 +57,7 @@ public class AlterTableSetOwnerAnalyzer extends AbstractAlterTableAnalyzer {
     }
 
     AlterTableSetOwnerDesc desc  = new AlterTableSetOwnerDesc(tableName, ownerPrincipal);
+    addInputsOutputsAlterTable(tableName, null, desc, desc.getType(), false);
     rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(), desc), conf));
 
     setAcidDdlDesc(getTable(tableName), desc);
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/WriteEntity.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/WriteEntity.java
index f5a8d63..e383c34 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/WriteEntity.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/WriteEntity.java
@@ -226,6 +226,7 @@ public class WriteEntity extends Entity implements Serializable {
     case TRUNCATE:
     case MERGEFILES:
     case DROP_CONSTRAINT:
+    case OWNER:
       return WriteType.DDL_EXCLUSIVE;
 
     case ADDPARTITION:
diff --git a/ql/src/test/results/clientpositive/llap/table_set_owner.q.out b/ql/src/test/results/clientpositive/llap/table_set_owner.q.out
index 023ccee..7d7bbd8 100644
--- a/ql/src/test/results/clientpositive/llap/table_set_owner.q.out
+++ b/ql/src/test/results/clientpositive/llap/table_set_owner.q.out
@@ -8,8 +8,12 @@ POSTHOOK: Output: database:default
 POSTHOOK: Output: default@t
 PREHOOK: query: EXPLAIN ALTER TABLE t SET OWNER USER user1
 PREHOOK: type: ALTERTABLE_OWNER
+PREHOOK: Input: default@t
+PREHOOK: Output: default@t
 POSTHOOK: query: EXPLAIN ALTER TABLE t SET OWNER USER user1
 POSTHOOK: type: ALTERTABLE_OWNER
+POSTHOOK: Input: default@t
+POSTHOOK: Output: default@t
 STAGE DEPENDENCIES:
   Stage-0 is a root stage
 
@@ -23,6 +27,8 @@ STAGE PLANS:
 
 PREHOOK: query: ALTER TABLE t SET OWNER USER user1
 PREHOOK: type: ALTERTABLE_OWNER
+PREHOOK: Input: default@t
+PREHOOK: Output: default@t
 POSTHOOK: query: ALTER TABLE t SET OWNER USER user1
 POSTHOOK: type: ALTERTABLE_OWNER
 POSTHOOK: Input: default@t