[ https://issues.apache.org/jira/browse/HIVE-2752?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13951781#comment-13951781 ]
Lefty Leverenz commented on HIVE-2752: -------------------------------------- Updated in two wikidocs: {quote} In Hive 0.12.0 and earlier releases, the index name is case-sensitive for CREATE INDEX and DROP INDEX statements. However, ALTER INDEX requires an index name that was created with lowercase letters (see HIVE-2752). This bug is fixed in Hive 0.13.0 by making index names case-insensitive for all HiveQL statements. For releases prior to 0.13.0, the best practice is to use lowercase letters for all index names. {quote} * [DDL: Create/Drop/AlterIndex |https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Create/Drop/AlterIndex] * [Indexing: Simple Examples |https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Indexing#LanguageManualIndexing-SimpleExamples] > Index names are case sensitive > ------------------------------ > > Key: HIVE-2752 > URL: https://issues.apache.org/jira/browse/HIVE-2752 > Project: Hive > Issue Type: Bug > Components: Indexing, Metastore, Query Processor > Affects Versions: 0.9.0 > Reporter: Philip Tromans > Assignee: Navis > Priority: Minor > Fix For: 0.13.0 > > Attachments: HIVE-2752.1.patch.txt > > Original Estimate: 4h > Remaining Estimate: 4h > > The following script: > DROP TABLE IF EXISTS TestTable; > CREATE TABLE TestTable (a INT); > DROP INDEX IF EXISTS TestTableA_IDX ON TestTable; > CREATE INDEX TestTableA_IDX ON TABLE TestTable (a) AS > 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' WITH DEFERRED > REBUILD; > ALTER INDEX TestTableA_IDX ON TestTable REBUILD; > results in the following exception: > MetaException(message:index testtablea_idx doesn't exist) > at > org.apache.hadoop.hive.metastore.ObjectStore.alterIndex(ObjectStore.java:1880) > at > org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler$30.run(HiveMetaStore.java:1930) > at > org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler$30.run(HiveMetaStore.java:1927) > at > org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.executeWithRetry(HiveMetaStore.java:356) > at > org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.alter_index(HiveMetaStore.java:1927) > at > org.apache.hadoop.hive.metastore.HiveMetaStoreClient.alter_index(HiveMetaStoreClient.java:868) > at org.apache.hadoop.hive.ql.metadata.Hive.alterIndex(Hive.java:398) > at org.apache.hadoop.hive.ql.exec.DDLTask.alterIndex(DDLTask.java:902) > at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:236) > at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:134) > at > org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:57) > at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1332) > at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1123) > at org.apache.hadoop.hive.ql.Driver.run(Driver.java:931) > at > org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:255) > at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:212) > at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:403) > at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:338) > at > org.apache.hadoop.hive.cli.CliDriver.processReader(CliDriver.java:436) > at org.apache.hadoop.hive.cli.CliDriver.processFile(CliDriver.java:446) > at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:642) > at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:554) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.apache.hadoop.util.RunJar.main(RunJar.java:156) > When you execute: "SHOW INDEXES ON TestTable;", you get: > TestTableA_IDX testtable a > default__testtable_testtablea_idx__ compact > so it looks like things don't get lower cased when they go into the > metastore, but they do when the rebuild op is trying to execute. -- This message was sent by Atlassian JIRA (v6.2#6252)