You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by kh...@apache.org on 2014/05/09 01:26:47 UTC
svn commit: r1593455 - in /hive/branches/branch-0.13/ql/src:
java/org/apache/hadoop/hive/ql/exec/
java/org/apache/hadoop/hive/ql/metadata/ test/queries/clientpositive/
test/results/clientpositive/
Author: khorgath
Date: Thu May 8 23:26:47 2014
New Revision: 1593455
URL: http://svn.apache.org/r1593455
Log:
HIVE-6921 : index creation fails with sql std auth turned on (Ashutosh Chauhan via Thejas Nair)
Added:
hive/branches/branch-0.13/ql/src/test/queries/clientpositive/authorization_index.q
hive/branches/branch-0.13/ql/src/test/results/clientpositive/authorization_index.q.out
Modified:
hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java
Modified: hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
URL: http://svn.apache.org/viewvc/hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java?rev=1593455&r1=1593454&r2=1593455&view=diff
==============================================================================
--- hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (original)
+++ hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java Thu May 8 23:26:47 2014
@@ -4185,11 +4185,6 @@ public class DDLTask extends Task<DDLWor
}
}
- int rc = setGenericTableAttributes(tbl);
- if (rc != 0) {
- return rc;
- }
-
// create the table
db.createTable(tbl, crtTbl.getIfNotExists());
work.getOutputs().add(new WriteEntity(tbl, WriteEntity.WriteType.DDL_NO_LOCK));
@@ -4292,12 +4287,6 @@ public class DDLTask extends Task<DDLWor
}
}
- // reset owner and creation time
- int rc = setGenericTableAttributes(tbl);
- if (rc != 0) {
- return rc;
- }
-
// create the table
db.createTable(tbl, crtTbl.getIfNotExists());
work.getOutputs().add(new WriteEntity(tbl, WriteEntity.WriteType.DDL_NO_LOCK));
@@ -4357,11 +4346,6 @@ public class DDLTask extends Task<DDLWor
tbl.setPartCols(crtView.getPartCols());
}
- int rc = setGenericTableAttributes(tbl);
- if (rc != 0) {
- return rc;
- }
-
db.createTable(tbl, crtView.getIfNotExists());
work.getOutputs().add(new WriteEntity(tbl, WriteEntity.WriteType.DDL_NO_LOCK));
}
@@ -4432,13 +4416,6 @@ public class DDLTask extends Task<DDLWor
return locations;
}
- private int setGenericTableAttributes(Table tbl) throws HiveException {
- tbl.setOwner(SessionState.getUserFromAuthenticator());
- // set create time
- tbl.setCreateTime((int) (System.currentTimeMillis() / 1000));
- return 0;
- }
-
private String escapeHiveCommand(String str) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i ++) {
Modified: hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
URL: http://svn.apache.org/viewvc/hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java?rev=1593455&r1=1593454&r2=1593455&view=diff
==============================================================================
--- hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java (original)
+++ hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java Thu May 8 23:26:47 2014
@@ -776,6 +776,15 @@ public class Hive {
tt.putToParameters(prop.getKey(), prop.getValue());
}
}
+ SessionState ss = SessionState.get();
+ CreateTableAutomaticGrant grants;
+ if (ss != null && ((grants = ss.getCreateTableGrants()) != null)) {
+ PrincipalPrivilegeSet principalPrivs = new PrincipalPrivilegeSet();
+ principalPrivs.setUserPrivileges(grants.getUserGrants());
+ principalPrivs.setGroupPrivileges(grants.getGroupGrants());
+ principalPrivs.setRolePrivileges(grants.getRoleGrants());
+ tt.setPrivileges(principalPrivs);
+ }
}
if(!deferredRebuild) {
Modified: hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java
URL: http://svn.apache.org/viewvc/hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java?rev=1593455&r1=1593454&r2=1593455&view=diff
==============================================================================
--- hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java (original)
+++ hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java Thu May 8 23:26:47 2014
@@ -53,6 +53,7 @@ import org.apache.hadoop.hive.ql.io.Hive
import org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat;
import org.apache.hadoop.hive.ql.parse.SemanticAnalyzer;
import org.apache.hadoop.hive.ql.parse.SemanticException;
+import org.apache.hadoop.hive.ql.session.SessionState;
import org.apache.hadoop.hive.serde.serdeConstants;
import org.apache.hadoop.hive.serde2.Deserializer;
import org.apache.hadoop.hive.serde2.MetadataTypedColumnsetSerDe;
@@ -170,6 +171,10 @@ public class Table implements Serializab
t.setTableType(TableType.MANAGED_TABLE.toString());
t.setDbName(databaseName);
t.setTableName(tableName);
+ t.setOwner(SessionState.getUserFromAuthenticator());
+ // set create time
+ t.setCreateTime((int) (System.currentTimeMillis() / 1000));
+
}
return t;
}
Added: hive/branches/branch-0.13/ql/src/test/queries/clientpositive/authorization_index.q
URL: http://svn.apache.org/viewvc/hive/branches/branch-0.13/ql/src/test/queries/clientpositive/authorization_index.q?rev=1593455&view=auto
==============================================================================
--- hive/branches/branch-0.13/ql/src/test/queries/clientpositive/authorization_index.q (added)
+++ hive/branches/branch-0.13/ql/src/test/queries/clientpositive/authorization_index.q Thu May 8 23:26:47 2014
@@ -0,0 +1,12 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactoryForTest;
+set hive.security.authenticator.manager=org.apache.hadoop.hive.ql.security.SessionStateConfigUserAuthenticator;
+
+set hive.security.authorization.enabled=true;
+create table t1 (a int);
+create index t1_index on table t1(a) as 'COMPACT' WITH DEFERRED REBUILD;
+desc formatted default__t1_t1_index__;
+alter index t1_index on t1 rebuild;
+
+drop table t1;
+
+set hive.security.authorization.enabled=false;
Added: hive/branches/branch-0.13/ql/src/test/results/clientpositive/authorization_index.q.out
URL: http://svn.apache.org/viewvc/hive/branches/branch-0.13/ql/src/test/results/clientpositive/authorization_index.q.out?rev=1593455&view=auto
==============================================================================
--- hive/branches/branch-0.13/ql/src/test/results/clientpositive/authorization_index.q.out (added)
+++ hive/branches/branch-0.13/ql/src/test/results/clientpositive/authorization_index.q.out Thu May 8 23:26:47 2014
@@ -0,0 +1,66 @@
+PREHOOK: query: create table t1 (a int)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+POSTHOOK: query: create table t1 (a int)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@t1
+PREHOOK: query: create index t1_index on table t1(a) as 'COMPACT' WITH DEFERRED REBUILD
+PREHOOK: type: CREATEINDEX
+POSTHOOK: query: create index t1_index on table t1(a) as 'COMPACT' WITH DEFERRED REBUILD
+POSTHOOK: type: CREATEINDEX
+POSTHOOK: Output: default@default__t1_t1_index__
+PREHOOK: query: desc formatted default__t1_t1_index__
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@default__t1_t1_index__
+POSTHOOK: query: desc formatted default__t1_t1_index__
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@default__t1_t1_index__
+# col_name data_type comment
+
+a int
+_bucketname string
+_offsets array<bigint>
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Protect Mode: None
+Retention: 0
+#### A masked pattern was here ####
+Table Type: INDEX_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: [Order(col:a, order:1)]
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: alter index t1_index on t1 rebuild
+PREHOOK: type: ALTERINDEX_REBUILD
+PREHOOK: Input: default@t1
+PREHOOK: Output: default@default__t1_t1_index__
+POSTHOOK: query: alter index t1_index on t1 rebuild
+POSTHOOK: type: ALTERINDEX_REBUILD
+POSTHOOK: Input: default@t1
+POSTHOOK: Output: default@default__t1_t1_index__
+POSTHOOK: Lineage: default__t1_t1_index__._bucketname SIMPLE [(t1)t1.FieldSchema(name:INPUT__FILE__NAME, type:string, comment:), ]
+POSTHOOK: Lineage: default__t1_t1_index__._offsets EXPRESSION [(t1)t1.FieldSchema(name:BLOCK__OFFSET__INSIDE__FILE, type:bigint, comment:), ]
+POSTHOOK: Lineage: default__t1_t1_index__.a SIMPLE [(t1)t1.FieldSchema(name:a, type:int, comment:null), ]
+PREHOOK: query: drop table t1
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@t1
+PREHOOK: Output: default@t1
+POSTHOOK: query: drop table t1
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@t1
+POSTHOOK: Output: default@t1
+POSTHOOK: Lineage: default__t1_t1_index__._bucketname SIMPLE [(t1)t1.FieldSchema(name:INPUT__FILE__NAME, type:string, comment:), ]
+POSTHOOK: Lineage: default__t1_t1_index__._offsets EXPRESSION [(t1)t1.FieldSchema(name:BLOCK__OFFSET__INSIDE__FILE, type:bigint, comment:), ]
+POSTHOOK: Lineage: default__t1_t1_index__.a SIMPLE [(t1)t1.FieldSchema(name:a, type:int, comment:null), ]