Author: thejas
Date: Mon Jul 28 21:20:36 2014
New Revision: 1614183

URL: http://svn.apache.org/r1614183
Log:
HIVE-7498 : NPE on show grant for global privilege (Navis via Thejas Nair)

Modified:
    
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HivePrivilegeObject.java
    hive/trunk/ql/src/test/queries/clientpositive/authorization_9.q
    hive/trunk/ql/src/test/results/clientpositive/authorization_9.q.out

Modified: 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HivePrivilegeObject.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HivePrivilegeObject.java?rev=1614183&r1=1614182&r2=1614183&view=diff
==============================================================================
--- 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HivePrivilegeObject.java
 (original)
+++ 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HivePrivilegeObject.java
 Mon Jul 28 21:20:36 2014
@@ -35,7 +35,9 @@ public class HivePrivilegeObject impleme
   public int compareTo(HivePrivilegeObject o) {
     int compare = type.compareTo(o.type);
     if (compare == 0) {
-      compare = dbname.compareTo(o.dbname);
+      compare = dbname != null ?
+          (o.dbname != null ? dbname.compareTo(o.dbname) : 1) :
+          (o.dbname != null ? -1 : 0);
     }
     if (compare == 0) {
       compare = objectName != null ?

Modified: hive/trunk/ql/src/test/queries/clientpositive/authorization_9.q
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/authorization_9.q?rev=1614183&r1=1614182&r2=1614183&view=diff
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/authorization_9.q (original)
+++ hive/trunk/ql/src/test/queries/clientpositive/authorization_9.q Mon Jul 28 
21:20:36 2014
@@ -2,6 +2,7 @@
 
 create table dummy (key string, value string);
 
+grant select to user hive_test_user;
 grant select on database default to user hive_test_user;
 grant select on table dummy to user hive_test_user;
 grant select (key, value) on table dummy to user hive_test_user;
@@ -10,16 +11,21 @@ show grant user hive_test_user on databa
 show grant user hive_test_user on table dummy;
 show grant user hive_test_user on all;
 
+grant select to user hive_test_user2;
 grant select on database default to user hive_test_user2;
 grant select on table dummy to user hive_test_user2;
 grant select (key, value) on table dummy to user hive_test_user2;
 
 show grant on all;
+show grant user hive_test_user on all;
+show grant user hive_test_user2 on all;
 
+revoke select from user hive_test_user;
 revoke select on database default from user hive_test_user;
 revoke select on table dummy from user hive_test_user;
 revoke select (key, value) on table dummy from user hive_test_user;
 
+revoke select from user hive_test_user2;
 revoke select on database default from user hive_test_user2;
 revoke select on table dummy from user hive_test_user2;
 revoke select (key, value) on table dummy from user hive_test_user2;

Modified: hive/trunk/ql/src/test/results/clientpositive/authorization_9.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/authorization_9.q.out?rev=1614183&r1=1614182&r2=1614183&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/authorization_9.q.out 
(original)
+++ hive/trunk/ql/src/test/results/clientpositive/authorization_9.q.out Mon Jul 
28 21:20:36 2014
@@ -9,6 +9,10 @@ create table dummy (key string, value st
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@dummy
+PREHOOK: query: grant select to user hive_test_user
+PREHOOK: type: GRANT_PRIVILEGE
+POSTHOOK: query: grant select to user hive_test_user
+POSTHOOK: type: GRANT_PRIVILEGE
 PREHOOK: query: grant select on database default to user hive_test_user
 PREHOOK: type: GRANT_PRIVILEGE
 POSTHOOK: query: grant select on database default to user hive_test_user
@@ -39,10 +43,15 @@ PREHOOK: query: show grant user hive_tes
 PREHOOK: type: SHOW_GRANT
 POSTHOOK: query: show grant user hive_test_user on all
 POSTHOOK: type: SHOW_GRANT
+                               hive_test_user  USER    SELECT  false   -1      
hive_test_user
 default                                hive_test_user  USER    SELECT  false   
-1      hive_test_user
 default        dummy                   hive_test_user  USER    SELECT  false   
-1      hive_test_user
 default        dummy           [key]   hive_test_user  USER    SELECT  false   
-1      hive_test_user
 default        dummy           [value] hive_test_user  USER    SELECT  false   
-1      hive_test_user
+PREHOOK: query: grant select to user hive_test_user2
+PREHOOK: type: GRANT_PRIVILEGE
+POSTHOOK: query: grant select to user hive_test_user2
+POSTHOOK: type: GRANT_PRIVILEGE
 PREHOOK: query: grant select on database default to user hive_test_user2
 PREHOOK: type: GRANT_PRIVILEGE
 POSTHOOK: query: grant select on database default to user hive_test_user2
@@ -64,6 +73,8 @@ PREHOOK: type: SHOW_GRANT
 POSTHOOK: query: show grant on all
 POSTHOOK: type: SHOW_GRANT
                                admin   ROLE    ALL     true    -1      admin
+                               hive_test_user  USER    SELECT  false   -1      
hive_test_user
+                               hive_test_user2 USER    SELECT  false   -1      
hive_test_user
 default                                hive_test_user  USER    SELECT  false   
-1      hive_test_user
 default                                hive_test_user2 USER    SELECT  false   
-1      hive_test_user
 default        dummy                   hive_test_user  USER    SELECT  false   
-1      hive_test_user
@@ -72,6 +83,28 @@ default      dummy           [key]   hive_test_user  USER
 default        dummy           [key]   hive_test_user2 USER    SELECT  false   
-1      hive_test_user
 default        dummy           [value] hive_test_user  USER    SELECT  false   
-1      hive_test_user
 default        dummy           [value] hive_test_user2 USER    SELECT  false   
-1      hive_test_user
+PREHOOK: query: show grant user hive_test_user on all
+PREHOOK: type: SHOW_GRANT
+POSTHOOK: query: show grant user hive_test_user on all
+POSTHOOK: type: SHOW_GRANT
+                               hive_test_user  USER    SELECT  false   -1      
hive_test_user
+default                                hive_test_user  USER    SELECT  false   
-1      hive_test_user
+default        dummy                   hive_test_user  USER    SELECT  false   
-1      hive_test_user
+default        dummy           [key]   hive_test_user  USER    SELECT  false   
-1      hive_test_user
+default        dummy           [value] hive_test_user  USER    SELECT  false   
-1      hive_test_user
+PREHOOK: query: show grant user hive_test_user2 on all
+PREHOOK: type: SHOW_GRANT
+POSTHOOK: query: show grant user hive_test_user2 on all
+POSTHOOK: type: SHOW_GRANT
+                               hive_test_user2 USER    SELECT  false   -1      
hive_test_user
+default                                hive_test_user2 USER    SELECT  false   
-1      hive_test_user
+default        dummy                   hive_test_user2 USER    SELECT  false   
-1      hive_test_user
+default        dummy           [key]   hive_test_user2 USER    SELECT  false   
-1      hive_test_user
+default        dummy           [value] hive_test_user2 USER    SELECT  false   
-1      hive_test_user
+PREHOOK: query: revoke select from user hive_test_user
+PREHOOK: type: REVOKE_PRIVILEGE
+POSTHOOK: query: revoke select from user hive_test_user
+POSTHOOK: type: REVOKE_PRIVILEGE
 PREHOOK: query: revoke select on database default from user hive_test_user
 PREHOOK: type: REVOKE_PRIVILEGE
 POSTHOOK: query: revoke select on database default from user hive_test_user
@@ -88,6 +121,10 @@ PREHOOK: Output: default@dummy
 POSTHOOK: query: revoke select (key, value) on table dummy from user 
hive_test_user
 POSTHOOK: type: REVOKE_PRIVILEGE
 POSTHOOK: Output: default@dummy
+PREHOOK: query: revoke select from user hive_test_user2
+PREHOOK: type: REVOKE_PRIVILEGE
+POSTHOOK: query: revoke select from user hive_test_user2
+POSTHOOK: type: REVOKE_PRIVILEGE
 PREHOOK: query: revoke select on database default from user hive_test_user2
 PREHOOK: type: REVOKE_PRIVILEGE
 POSTHOOK: query: revoke select on database default from user hive_test_user2


Reply via email to