diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/UpdateDeleteSemanticAnalyzer.java ql/src/java/org/apache/hadoop/hive/ql/parse/UpdateDeleteSemanticAnalyzer.java index 3aaa09c..4f59e5d 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/UpdateDeleteSemanticAnalyzer.java +++ ql/src/java/org/apache/hadoop/hive/ql/parse/UpdateDeleteSemanticAnalyzer.java @@ -127,7 +127,9 @@ private void reparseAndSuperAnalyze(ASTNode tree) throws SemanticException { try { mTable = db.getTable(tableName[0], tableName[1]); } catch (HiveException e) { - throw new SemanticException(ErrorMsg.UPDATEDELETE_PARSE_ERROR.getMsg(), e); + LOG.error("Failed to find table " + getDotName(tableName) + " got exception " + + e.getMessage()); + throw new SemanticException(ErrorMsg.INVALID_TABLE, getDotName(tableName)); } List partCols = mTable.getPartCols(); diff --git ql/src/test/queries/clientnegative/update_no_such_table.q ql/src/test/queries/clientnegative/update_no_such_table.q new file mode 100644 index 0000000..522c46d --- /dev/null +++ ql/src/test/queries/clientnegative/update_no_such_table.q @@ -0,0 +1,7 @@ +set hive.support.concurrency=true; +set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; +set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat; +set hive.enforce.bucketing=true; + + +update no_such_table set b = 'fred'; diff --git ql/src/test/results/clientnegative/update_no_such_table.q.out ql/src/test/results/clientnegative/update_no_such_table.q.out new file mode 100644 index 0000000..e4f19e4 --- /dev/null +++ ql/src/test/results/clientnegative/update_no_such_table.q.out @@ -0,0 +1 @@ +FAILED: SemanticException [Error 10001]: Table not found default.no_such_table