Author: hashutosh
Date: Thu Mar 27 00:12:15 2014
New Revision: 1582136

URL: http://svn.apache.org/r1582136
Log:
HIVE-6674 : show grant on all throws NPE (Navis via Ashutosh Chauhan)

Modified:
    
hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.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/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java?rev=1582136&r1=1582135&r2=1582136&view=diff
==============================================================================
--- 
hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java 
(original)
+++ 
hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java 
Thu Mar 27 00:12:15 2014
@@ -4146,11 +4146,11 @@ public class ObjectStore implements RawS
     try {
       openTransaction();
       LOG.debug("Executing listPrincipalDBGrants");
-      Query query = pm.newQuery(MDBPrivilege.class,
-          "principalName == t1 && principalType == t2 && database.name == t3");
-      query
-          .declareParameters("java.lang.String t1, java.lang.String t2, 
java.lang.String t3");
-      mSecurityDBList = (List<MDBPrivilege>) 
query.executeWithArray(principalName, principalType.toString(), dbName);
+        Query query = pm.newQuery(MDBPrivilege.class,
+            "principalName == t1 && principalType == t2 && database.name == 
t3");
+        query
+            .declareParameters("java.lang.String t1, java.lang.String t2, 
java.lang.String t3");
+        mSecurityDBList = (List<MDBPrivilege>) 
query.executeWithArray(principalName, principalType.toString(), dbName);
       LOG.debug("Done executing query for listPrincipalDBGrants");
       pm.retrieveAll(mSecurityDBList);
       success = commitTransaction();
@@ -4199,11 +4199,16 @@ public class ObjectStore implements RawS
     try {
       openTransaction();
       LOG.debug("Executing listPrincipalAllDBGrant");
-      Query query = pm.newQuery(MDBPrivilege.class,
-          "principalName == t1 && principalType == t2");
-      query
-          .declareParameters("java.lang.String t1, java.lang.String t2");
-      mSecurityDBList = (List<MDBPrivilege>) query.execute(principalName, 
principalType.toString());
+      if (principalName != null && principalType != null) {
+        Query query = pm.newQuery(MDBPrivilege.class,
+            "principalName == t1 && principalType == t2");
+        query
+            .declareParameters("java.lang.String t1, java.lang.String t2");
+        mSecurityDBList = (List<MDBPrivilege>) query.execute(principalName, 
principalType.toString());
+      } else {
+        Query query = pm.newQuery(MDBPrivilege.class);
+        mSecurityDBList = (List<MDBPrivilege>) query.execute();
+      }
       LOG.debug("Done executing query for listPrincipalAllDBGrant");
       pm.retrieveAll(mSecurityDBList);
       success = commitTransaction();
@@ -4604,11 +4609,17 @@ public class ObjectStore implements RawS
     try {
       openTransaction();
       LOG.debug("Executing listPrincipalPartitionColumnGrantsAll");
-      Query query = pm.newQuery(MPartitionColumnPrivilege.class,
-          "principalName == t1 && principalType == t2");
-      query.declareParameters("java.lang.String t1, java.lang.String t2");
-      List<MPartitionColumnPrivilege> mSecurityTabPartList = 
(List<MPartitionColumnPrivilege>)
-          query.executeWithArray(principalName, principalType.toString());
+      List<MPartitionColumnPrivilege> mSecurityTabPartList;
+      if (principalName != null && principalType != null) {
+        Query query = pm.newQuery(MPartitionColumnPrivilege.class,
+            "principalName == t1 && principalType == t2");
+        query.declareParameters("java.lang.String t1, java.lang.String t2");
+        mSecurityTabPartList = (List<MPartitionColumnPrivilege>)
+            query.executeWithArray(principalName, principalType.toString());
+      } else {
+        Query query = pm.newQuery(MPartitionColumnPrivilege.class);
+        mSecurityTabPartList = (List<MPartitionColumnPrivilege>) 
query.execute();
+      }
       LOG.debug("Done executing query for 
listPrincipalPartitionColumnGrantsAll");
       pm.retrieveAll(mSecurityTabPartList);
       List<HiveObjectPrivilege> result = convertPartCols(mSecurityTabPartList);
@@ -4703,11 +4714,17 @@ public class ObjectStore implements RawS
     try {
       openTransaction();
       LOG.debug("Executing listPrincipalAllTableGrants");
-      Query query = pm.newQuery(MTablePrivilege.class,
-          "principalName == t1 && principalType == t2");
-      query.declareParameters("java.lang.String t1, java.lang.String t2");
-      List<MTablePrivilege> mSecurityTabPartList = (List<MTablePrivilege>) 
query.execute(
-          principalName, principalType.toString());
+      List<MTablePrivilege> mSecurityTabPartList;
+      if (principalName != null && principalType != null) {
+        Query query = pm.newQuery(MTablePrivilege.class,
+            "principalName == t1 && principalType == t2");
+        query.declareParameters("java.lang.String t1, java.lang.String t2");
+        mSecurityTabPartList = (List<MTablePrivilege>) query.execute(
+            principalName, principalType.toString());
+      } else {
+        Query query = pm.newQuery(MTablePrivilege.class);
+        mSecurityTabPartList = (List<MTablePrivilege>) query.execute();
+      }
       LOG.debug("Done executing query for listPrincipalAllTableGrants");
       pm.retrieveAll(mSecurityTabPartList);
       List<HiveObjectPrivilege> result = convertTable(mSecurityTabPartList);
@@ -4798,11 +4815,17 @@ public class ObjectStore implements RawS
     try {
       openTransaction();
       LOG.debug("Executing listPrincipalPartitionGrantsAll");
-      Query query = pm.newQuery(MPartitionPrivilege.class,
-          "principalName == t1 && principalType == t2");
-      query.declareParameters("java.lang.String t1, java.lang.String t2");
-      List<MPartitionPrivilege> mSecurityTabPartList = 
(List<MPartitionPrivilege>)
-          query.execute(principalName, principalType.toString());
+      List<MPartitionPrivilege> mSecurityTabPartList;
+      if (principalName != null && principalType != null) {
+        Query query = pm.newQuery(MPartitionPrivilege.class,
+            "principalName == t1 && principalType == t2");
+        query.declareParameters("java.lang.String t1, java.lang.String t2");
+        mSecurityTabPartList = (List<MPartitionPrivilege>)
+            query.execute(principalName, principalType.toString());
+      } else {
+        Query query = pm.newQuery(MPartitionPrivilege.class);
+        mSecurityTabPartList = (List<MPartitionPrivilege>) query.execute();
+      }
       LOG.debug("Done executing query for listPrincipalPartitionGrantsAll");
       pm.retrieveAll(mSecurityTabPartList);
       List<HiveObjectPrivilege> result = 
convertPartition(mSecurityTabPartList);
@@ -4895,11 +4918,18 @@ public class ObjectStore implements RawS
     try {
       openTransaction();
       LOG.debug("Executing listPrincipalTableColumnGrantsAll");
-      Query query = pm.newQuery(MTableColumnPrivilege.class,
-          "principalName == t1 && principalType == t2");
-      query.declareParameters("java.lang.String t1, java.lang.String t2");
-      List<MTableColumnPrivilege> mSecurityTabPartList = 
(List<MTableColumnPrivilege>)
-          query.execute(principalName, principalType.toString());
+
+      List<MTableColumnPrivilege> mSecurityTabPartList;
+      if (principalName != null && principalType != null) {
+        Query query = pm.newQuery(MTableColumnPrivilege.class,
+            "principalName == t1 && principalType == t2");
+        query.declareParameters("java.lang.String t1, java.lang.String t2");
+        mSecurityTabPartList = (List<MTableColumnPrivilege>)
+            query.execute(principalName, principalType.toString());
+      } else {
+        Query query = pm.newQuery(MTableColumnPrivilege.class);
+        mSecurityTabPartList = (List<MTableColumnPrivilege>) query.execute();
+      }
       LOG.debug("Done executing query for listPrincipalTableColumnGrantsAll");
       pm.retrieveAll(mSecurityTabPartList);
       List<HiveObjectPrivilege> result = 
convertTableCols(mSecurityTabPartList);

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=1582136&r1=1582135&r2=1582136&view=diff
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/authorization_9.q (original)
+++ hive/trunk/ql/src/test/queries/clientpositive/authorization_9.q Thu Mar 27 
00:12:15 2014
@@ -9,3 +9,9 @@ grant select (key, value) on table dummy
 show grant user hive_test_user on database default;
 show grant user hive_test_user on table dummy;
 show grant user hive_test_user on all;
+
+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;

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=1582136&r1=1582135&r2=1582136&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 Thu Mar 
27 00:12:15 2014
@@ -43,3 +43,31 @@ default                              hive_test_user  USER    
Select  fa
 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 on database default to user hive_test_user2
+PREHOOK: type: GRANT_PRIVILEGE
+POSTHOOK: query: grant select on database default to user hive_test_user2
+POSTHOOK: type: GRANT_PRIVILEGE
+PREHOOK: query: grant select on table dummy to user hive_test_user2
+PREHOOK: type: GRANT_PRIVILEGE
+PREHOOK: Output: default@dummy
+POSTHOOK: query: grant select on table dummy to user hive_test_user2
+POSTHOOK: type: GRANT_PRIVILEGE
+POSTHOOK: Output: default@dummy
+PREHOOK: query: grant select (key, value) on table dummy to user 
hive_test_user2
+PREHOOK: type: GRANT_PRIVILEGE
+PREHOOK: Output: default@dummy
+POSTHOOK: query: grant select (key, value) on table dummy to user 
hive_test_user2
+POSTHOOK: type: GRANT_PRIVILEGE
+POSTHOOK: Output: default@dummy
+PREHOOK: query: show grant on all
+PREHOOK: type: SHOW_GRANT
+POSTHOOK: query: show grant on all
+POSTHOOK: type: SHOW_GRANT
+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
+default        dummy                   hive_test_user2 USER    Select  false   
-1      hive_test_user
+default        dummy           key     hive_test_user  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_user  USER    Select  false   
-1      hive_test_user
+default        dummy           value   hive_test_user2 USER    Select  false   
-1      hive_test_user


Reply via email to