Details

      Description

      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.

        Activity

        Hide
        Philip Tromans added a comment -

        I can probably fix this, but I haven't really poked round the code. Feel free to assign to me.

        Show
        Philip Tromans added a comment - I can probably fix this, but I haven't really poked round the code. Feel free to assign to me.
        Hide
        Ashutosh Chauhan added a comment -

        Philip,
        I have added you to a list of contributors. So, if you plan to work on this, feel free to assign to yourself. Click on Assign tab at the top on this page and you will see your name in drop-down menu.

        Show
        Ashutosh Chauhan added a comment - Philip, I have added you to a list of contributors. So, if you plan to work on this, feel free to assign to yourself. Click on Assign tab at the top on this page and you will see your name in drop-down menu.
        Hide
        Lefty Leverenz added a comment -

        I noted case-sensitivity in the wiki and linked to this ticket. When the patch is committed, the wiki will need to be updated with version information.

        Show
        Lefty Leverenz added a comment - I noted case-sensitivity in the wiki and linked to this ticket. When the patch is committed, the wiki will need to be updated with version information. DDL – Create/Drop/Alter Index Indexing – Simple Examples
        Hide
        Alan Gates added a comment -

        I ran the tests locally and all passed.

        Show
        Alan Gates added a comment - I ran the tests locally and all passed.
        Hide
        Harish Butani added a comment -

        +1

        Show
        Harish Butani added a comment - +1
        Hide
        Harish Butani added a comment -

        Committed to trunk and 0.13

        Show
        Harish Butani added a comment - Committed to trunk and 0.13
        Hide
        Lefty Leverenz added a comment -

        Updated in two wikidocs:

        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.

        Show
        Lefty Leverenz added a comment - Updated in two wikidocs: 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. DDL: Create/Drop/AlterIndex Indexing: Simple Examples

          People

          • Assignee:
            Navis
            Reporter:
            Philip Tromans
          • Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Time Tracking

              Estimated:
              Original Estimate - 4h
              4h
              Remaining:
              Remaining Estimate - 4h
              4h
              Logged:
              Time Spent - Not Specified
              Not Specified

                Development