diff --git metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java index 0a52b4d..c3088a1 100644 --- metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java +++ metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java @@ -2630,7 +2630,7 @@ private MIndex convertToMIndex(Index index) throws InvalidObjectException, "Underlying index table does not exist for the given index."); } - return new MIndex(index.getIndexName(), origTable, index.getCreateTime(), + return new MIndex(index.getIndexName().toLowerCase(), origTable, index.getCreateTime(), index.getLastAccessTime(), index.getParameters(), indexTable, msd, index.getIndexHandlerClass(), index.isDeferredRebuild()); } @@ -2671,7 +2671,7 @@ private MIndex getMIndex(String dbName, String originalTblName, String indexName "origTable.tableName == t1 && origTable.database.name == t2 && indexName == t3"); query.declareParameters("java.lang.String t1, java.lang.String t2, java.lang.String t3"); query.setUnique(true); - midx = (MIndex) query.execute(originalTblName, dbName, indexName); + midx = (MIndex) query.execute(originalTblName, dbName, indexName.toLowerCase()); pm.retrieve(midx); commited = commitTransaction(); } finally { diff --git ql/src/test/queries/clientpositive/index_auth.q ql/src/test/queries/clientpositive/index_auth.q index 33a1fc5..413b37e 100644 --- ql/src/test/queries/clientpositive/index_auth.q +++ ql/src/test/queries/clientpositive/index_auth.q @@ -2,14 +2,16 @@ SET hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat; create table foobar(key int, value string) PARTITIONED BY (ds string, hr string); alter table foobar add partition (ds='2008-04-08',hr='12'); -CREATE INDEX srcpart_auth_index ON TABLE foobar(key) as 'BITMAP' WITH DEFERRED REBUILD; +CREATE INDEX srcpart_AUTH_index ON TABLE foobar(key) as 'BITMAP' WITH DEFERRED REBUILD; +SHOW INDEXES ON foobar; + grant select on table foobar to user hive_test_user; -grant select on table default__foobar_srcpart_auth_index__ to user hive_test_user; -grant update on table default__foobar_srcpart_auth_index__ to user hive_test_user; -grant create on table default__foobar_srcpart_auth_index__ to user hive_test_user; +grant select on table default__foobar_srcpart_auth_indeX__ to user hive_test_user; +grant update on table default__foobar_srcpart_auth_indEx__ to user hive_test_user; +grant create on table default__foobar_srcpart_auth_inDex__ to user hive_test_user; set hive.security.authorization.enabled=true; -ALTER INDEX srcpart_auth_index ON foobar PARTITION (ds='2008-04-08',hr='12') REBUILD; +ALTER INDEX srcpart_auth_INDEX ON foobar PARTITION (ds='2008-04-08',hr='12') REBUILD; set hive.security.authorization.enabled=false; DROP INDEX srcpart_auth_index on foobar; DROP TABLE foobar; diff --git ql/src/test/results/clientpositive/index_auth.q.out ql/src/test/results/clientpositive/index_auth.q.out index 2973eb3..8f7fc78 100644 --- ql/src/test/results/clientpositive/index_auth.q.out +++ ql/src/test/results/clientpositive/index_auth.q.out @@ -10,41 +10,46 @@ POSTHOOK: query: alter table foobar add partition (ds='2008-04-08',hr='12') POSTHOOK: type: ALTERTABLE_ADDPARTS POSTHOOK: Input: default@foobar POSTHOOK: Output: default@foobar@ds=2008-04-08/hr=12 -PREHOOK: query: CREATE INDEX srcpart_auth_index ON TABLE foobar(key) as 'BITMAP' WITH DEFERRED REBUILD +PREHOOK: query: CREATE INDEX srcpart_AUTH_index ON TABLE foobar(key) as 'BITMAP' WITH DEFERRED REBUILD PREHOOK: type: CREATEINDEX -POSTHOOK: query: CREATE INDEX srcpart_auth_index ON TABLE foobar(key) as 'BITMAP' WITH DEFERRED REBUILD +POSTHOOK: query: CREATE INDEX srcpart_AUTH_index ON TABLE foobar(key) as 'BITMAP' WITH DEFERRED REBUILD POSTHOOK: type: CREATEINDEX POSTHOOK: Output: default@default__foobar_srcpart_auth_index__ +PREHOOK: query: SHOW INDEXES ON foobar +PREHOOK: type: SHOWINDEXES +POSTHOOK: query: SHOW INDEXES ON foobar +POSTHOOK: type: SHOWINDEXES +srcpart_auth_index foobar key default__foobar_srcpart_auth_index__ bitmap PREHOOK: query: grant select on table foobar to user hive_test_user PREHOOK: type: GRANT_PRIVILEGE PREHOOK: Output: default@foobar POSTHOOK: query: grant select on table foobar to user hive_test_user POSTHOOK: type: GRANT_PRIVILEGE POSTHOOK: Output: default@foobar -PREHOOK: query: grant select on table default__foobar_srcpart_auth_index__ to user hive_test_user +PREHOOK: query: grant select on table default__foobar_srcpart_auth_indeX__ to user hive_test_user PREHOOK: type: GRANT_PRIVILEGE PREHOOK: Output: default@default__foobar_srcpart_auth_index__ -POSTHOOK: query: grant select on table default__foobar_srcpart_auth_index__ to user hive_test_user +POSTHOOK: query: grant select on table default__foobar_srcpart_auth_indeX__ to user hive_test_user POSTHOOK: type: GRANT_PRIVILEGE POSTHOOK: Output: default@default__foobar_srcpart_auth_index__ -PREHOOK: query: grant update on table default__foobar_srcpart_auth_index__ to user hive_test_user +PREHOOK: query: grant update on table default__foobar_srcpart_auth_indEx__ to user hive_test_user PREHOOK: type: GRANT_PRIVILEGE PREHOOK: Output: default@default__foobar_srcpart_auth_index__ -POSTHOOK: query: grant update on table default__foobar_srcpart_auth_index__ to user hive_test_user +POSTHOOK: query: grant update on table default__foobar_srcpart_auth_indEx__ to user hive_test_user POSTHOOK: type: GRANT_PRIVILEGE POSTHOOK: Output: default@default__foobar_srcpart_auth_index__ -PREHOOK: query: grant create on table default__foobar_srcpart_auth_index__ to user hive_test_user +PREHOOK: query: grant create on table default__foobar_srcpart_auth_inDex__ to user hive_test_user PREHOOK: type: GRANT_PRIVILEGE PREHOOK: Output: default@default__foobar_srcpart_auth_index__ -POSTHOOK: query: grant create on table default__foobar_srcpart_auth_index__ to user hive_test_user +POSTHOOK: query: grant create on table default__foobar_srcpart_auth_inDex__ to user hive_test_user POSTHOOK: type: GRANT_PRIVILEGE POSTHOOK: Output: default@default__foobar_srcpart_auth_index__ -PREHOOK: query: ALTER INDEX srcpart_auth_index ON foobar PARTITION (ds='2008-04-08',hr='12') REBUILD +PREHOOK: query: ALTER INDEX srcpart_auth_INDEX ON foobar PARTITION (ds='2008-04-08',hr='12') REBUILD PREHOOK: type: ALTERINDEX_REBUILD PREHOOK: Input: default@foobar PREHOOK: Input: default@foobar@ds=2008-04-08/hr=12 PREHOOK: Output: default@default__foobar_srcpart_auth_index__@ds=2008-04-08/hr=12 -POSTHOOK: query: ALTER INDEX srcpart_auth_index ON foobar PARTITION (ds='2008-04-08',hr='12') REBUILD +POSTHOOK: query: ALTER INDEX srcpart_auth_INDEX ON foobar PARTITION (ds='2008-04-08',hr='12') REBUILD POSTHOOK: type: ALTERINDEX_REBUILD POSTHOOK: Input: default@foobar POSTHOOK: Input: default@foobar@ds=2008-04-08/hr=12