This is an automated email from the ASF dual-hosted git repository.
gsaihemanth 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 67277049b83 HIVE-28325: Slow compilation without owner information
with Ranger au… (#5298) (Stephen Carlin, Reviewed by John Sherman, Sai Hemanth
Gantasala)
67277049b83 is described below
commit 67277049b837b87527631cc7af63b7b10c1e814b
Author: scarlin-cloudera <[email protected]>
AuthorDate: Fri Jun 14 17:16:57 2024 -0700
HIVE-28325: Slow compilation without owner information with Ranger au…
(#5298) (Stephen Carlin, Reviewed by John Sherman, Sai Hemanth Gantasala)
---
ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java | 6 ++++--
.../hive/ql/security/authorization/plugin/HivePrivilegeObject.java | 6 ++++++
.../clientpositive/llap/authorization_privilege_objects.q.out | 6 +++---
3 files changed, 13 insertions(+), 5 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 e82281b728c..44e04e6c635 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
@@ -12750,7 +12750,8 @@ public class SemanticAnalyzer extends
BaseSemanticAnalyzer {
List<String> colNames = new ArrayList<>();
extractColumnInfos(table, colNames, new ArrayList<>());
- basicInfos.put(new HivePrivilegeObject(table.getDbName(),
table.getTableName(), colNames), null);
+ basicInfos.put(new HivePrivilegeObject(table.getDbName(),
table.getTableName(), colNames,
+ table.getOwner(), table.getOwnerType()), null);
}
} else {
List<String> colNames;
@@ -12766,7 +12767,8 @@ public class SemanticAnalyzer extends
BaseSemanticAnalyzer {
extractColumnInfos(table, colNames, colTypes);
}
- basicInfos.put(new HivePrivilegeObject(table.getDbName(),
table.getTableName(), colNames),
+ basicInfos.put(new HivePrivilegeObject(table.getDbName(),
table.getTableName(), colNames,
+ table.getOwner(), table.getOwnerType()),
new MaskAndFilterInfo(colTypes, additionalTabInfo.toString(),
alias, astNode, table.isView(), table.isNonNative()));
}
}
diff --git
a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HivePrivilegeObject.java
b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HivePrivilegeObject.java
index 8c756105820..796a062bbbe 100644
---
a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HivePrivilegeObject.java
+++
b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HivePrivilegeObject.java
@@ -179,6 +179,12 @@ public class HivePrivilegeObject implements
Comparable<HivePrivilegeObject> {
this(HivePrivilegeObjectType.TABLE_OR_VIEW, dbname, objectName, null,
columns, null);
}
+ public HivePrivilegeObject(String dbname, String objectName, List<String>
columns,
+ String ownerName, PrincipalType ownerType) {
+ this(HivePrivilegeObjectType.TABLE_OR_VIEW, dbname, objectName, null,
columns,
+ HivePrivObjectActionType.OTHER, null, null, ownerName, ownerType);
+ }
+
public HivePrivilegeObject(HivePrivilegeObjectType type, String dbname,
String objectName, List<String> partKeys,
List<String> columns, HivePrivObjectActionType actionType, List<String>
commandParams, String className) {
this(type, dbname, objectName, partKeys, columns, actionType,
commandParams, className, null, null);
diff --git
a/ql/src/test/results/clientpositive/llap/authorization_privilege_objects.q.out
b/ql/src/test/results/clientpositive/llap/authorization_privilege_objects.q.out
index 7fc7b371c31..e5e86fadd61 100644
---
a/ql/src/test/results/clientpositive/llap/authorization_privilege_objects.q.out
+++
b/ql/src/test/results/clientpositive/llap/authorization_privilege_objects.q.out
@@ -50,7 +50,7 @@ POSTHOOK: Input: database:test_auth_obj_db
test_privs
test_privs2
applyRowFilterAndColumnMasking:
-HIVE PRIVILEGE OBJECT { objectName: test_privs type: TABLE_OR_VIEW actionType:
OTHER dbName: test_auth_obj_db columns: [i]}
+HIVE PRIVILEGE OBJECT { objectName: test_privs type: TABLE_OR_VIEW actionType:
OTHER dbName: test_auth_obj_db OWNER: testuser OWNERTYPE: USER columns: [i]}
inputHObjs:
HIVE PRIVILEGE OBJECT { objectName: test_privs type: TABLE_OR_VIEW actionType:
OTHER dbName: test_auth_obj_db OWNER: testuser OWNERTYPE: USER}
PREHOOK: query: EXPLAIN SELECT * FROM test_auth_obj_db.test_privs
@@ -295,7 +295,7 @@ POSTHOOK: type: CREATETABLE
POSTHOOK: Output: database:default
POSTHOOK: Output: default@ext_simple_derby_table_src
applyRowFilterAndColumnMasking:
-HIVE PRIVILEGE OBJECT { objectName: ext_simple_derby_table_src type:
TABLE_OR_VIEW actionType: OTHER dbName: default columns: [ikey, bkey, fkey,
dkey]}
+HIVE PRIVILEGE OBJECT { objectName: ext_simple_derby_table_src type:
TABLE_OR_VIEW actionType: OTHER dbName: default OWNER: hive_admin_user
OWNERTYPE: USER columns: [ikey, bkey, fkey, dkey]}
inputHObjs:
HIVE PRIVILEGE OBJECT { objectName: ext_simple_derby_table_src type:
TABLE_OR_VIEW actionType: OTHER dbName: default OWNER: hive_admin_user
OWNERTYPE: USER columns: [bkey, dkey, fkey, ikey]}
outputHObjs:
@@ -316,7 +316,7 @@ POSTHOOK: Lineage: ext_simple_derby_table_ctas.dkey SIMPLE
[(ext_simple_derby_ta
POSTHOOK: Lineage: ext_simple_derby_table_ctas.fkey SIMPLE
[(ext_simple_derby_table_src)ext_simple_derby_table_src.FieldSchema(name:fkey,
type:float, comment:from deserializer), ]
POSTHOOK: Lineage: ext_simple_derby_table_ctas.ikey SIMPLE
[(ext_simple_derby_table_src)ext_simple_derby_table_src.FieldSchema(name:ikey,
type:int, comment:from deserializer), ]
applyRowFilterAndColumnMasking:
-HIVE PRIVILEGE OBJECT { objectName: ext_simple_derby_table_ctas type:
TABLE_OR_VIEW actionType: OTHER dbName: default columns: [bkey, dkey, fkey,
ikey]}
+HIVE PRIVILEGE OBJECT { objectName: ext_simple_derby_table_ctas type:
TABLE_OR_VIEW actionType: OTHER dbName: default OWNER: hive_admin_user
OWNERTYPE: USER columns: [bkey, dkey, fkey, ikey]}
inputHObjs:
HIVE PRIVILEGE OBJECT { objectName: ext_simple_derby_table_ctas type:
TABLE_OR_VIEW actionType: OTHER dbName: default OWNER: hive_admin_user
OWNERTYPE: USER columns: [bkey, dkey, fkey, ikey]}
outputHObjs: