diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java index 05cde3e..bdc35aa 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java +++ ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java @@ -1137,16 +1137,15 @@ private void analyzeDropIndex(ASTNode ast) throws SemanticException { // configured not to ignore this boolean throwException = !ifExists && !HiveConf.getBoolVar(conf, ConfVars.DROPIGNORESNONEXISTENT); - if (throwException) { - try { - Index idx = db.getIndex(tableName, indexName); - } catch (HiveException e) { + try { + Index idx = db.getIndex(tableName, indexName); + inputs.add(new ReadEntity(getTable(tableName))); + } catch (HiveException e) { + if (throwException) { throw new SemanticException(ErrorMsg.INVALID_INDEX.getMsg(indexName)); } } - inputs.add(new ReadEntity(getTable(tableName))); - DropIndexDesc dropIdxDesc = new DropIndexDesc(indexName, tableName); rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(), dropIdxDesc), conf)); diff --git ql/src/test/queries/clientpositive/drop_index.q ql/src/test/queries/clientpositive/drop_index.q index df23f8d..54ef823 100644 --- ql/src/test/queries/clientpositive/drop_index.q +++ ql/src/test/queries/clientpositive/drop_index.q @@ -1,2 +1,3 @@ SET hive.exec.drop.ignorenonexistent=false; DROP INDEX IF EXISTS UnknownIndex ON src; +DROP INDEX IF EXISTS UnknownIndex ON UnknownTable; diff --git ql/src/test/results/clientpositive/drop_index.q.out ql/src/test/results/clientpositive/drop_index.q.out index 71afdff..ab60cf7 100644 --- ql/src/test/results/clientpositive/drop_index.q.out +++ ql/src/test/results/clientpositive/drop_index.q.out @@ -1,6 +1,8 @@ PREHOOK: query: DROP INDEX IF EXISTS UnknownIndex ON src PREHOOK: type: DROPINDEX -PREHOOK: Input: default@src POSTHOOK: query: DROP INDEX IF EXISTS UnknownIndex ON src POSTHOOK: type: DROPINDEX -POSTHOOK: Input: default@src +PREHOOK: query: DROP INDEX IF EXISTS UnknownIndex ON UnknownTable +PREHOOK: type: DROPINDEX +POSTHOOK: query: DROP INDEX IF EXISTS UnknownIndex ON UnknownTable +POSTHOOK: type: DROPINDEX