You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2018/07/25 18:19:14 UTC

[02/11] hive git commit: HIVE-18852: Misleading error message in alter table validation (Andrew Sherman, reviewed by Vineet Garg)

HIVE-18852: Misleading error message in alter table validation (Andrew Sherman, reviewed by Vineet Garg)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/ca0d7069
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/ca0d7069
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/ca0d7069

Branch: refs/heads/master-txnstats
Commit: ca0d70697f3cbb20fbba4c1c56a3f3253fe919dd
Parents: 9130811
Author: Andrew Sherman <as...@cloudera.com>
Authored: Tue Jul 24 19:57:12 2018 -0700
Committer: Vineet Garg <vg...@apache.org>
Committed: Tue Jul 24 19:59:40 2018 -0700

----------------------------------------------------------------------
 .../clientnegative/alter_table_wrong_db.q       |  4 ++++
 .../clientnegative/alter_table_wrong_table.q    |  3 +++
 .../clientnegative/alter_table_wrong_db.q.out   | 25 ++++++++++++++++++++
 .../alter_table_wrong_table.q.out               | 13 ++++++++++
 .../hadoop/hive/metastore/HiveAlterHandler.java |  4 ++--
 5 files changed, 47 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/ca0d7069/ql/src/test/queries/clientnegative/alter_table_wrong_db.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/alter_table_wrong_db.q b/ql/src/test/queries/clientnegative/alter_table_wrong_db.q
new file mode 100644
index 0000000..da8ee48
--- /dev/null
+++ b/ql/src/test/queries/clientnegative/alter_table_wrong_db.q
@@ -0,0 +1,4 @@
+create database bad_rename1;
+use bad_rename1;
+create table rename1(a int);
+alter table bad_rename1.rename1 rename to bad_db_notexists.rename1;

http://git-wip-us.apache.org/repos/asf/hive/blob/ca0d7069/ql/src/test/queries/clientnegative/alter_table_wrong_table.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/alter_table_wrong_table.q b/ql/src/test/queries/clientnegative/alter_table_wrong_table.q
new file mode 100644
index 0000000..229656e
--- /dev/null
+++ b/ql/src/test/queries/clientnegative/alter_table_wrong_table.q
@@ -0,0 +1,3 @@
+create database bad_rename2;
+use bad_rename2;
+alter table bad_rename2.rename_not_exists rename to bad_db_notexists.rename1;

http://git-wip-us.apache.org/repos/asf/hive/blob/ca0d7069/ql/src/test/results/clientnegative/alter_table_wrong_db.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/alter_table_wrong_db.q.out b/ql/src/test/results/clientnegative/alter_table_wrong_db.q.out
new file mode 100644
index 0000000..641e09f
--- /dev/null
+++ b/ql/src/test/results/clientnegative/alter_table_wrong_db.q.out
@@ -0,0 +1,25 @@
+PREHOOK: query: create database bad_rename1
+PREHOOK: type: CREATEDATABASE
+PREHOOK: Output: database:bad_rename1
+POSTHOOK: query: create database bad_rename1
+POSTHOOK: type: CREATEDATABASE
+POSTHOOK: Output: database:bad_rename1
+PREHOOK: query: use bad_rename1
+PREHOOK: type: SWITCHDATABASE
+PREHOOK: Input: database:bad_rename1
+POSTHOOK: query: use bad_rename1
+POSTHOOK: type: SWITCHDATABASE
+POSTHOOK: Input: database:bad_rename1
+PREHOOK: query: create table rename1(a int)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: bad_rename1@rename1
+PREHOOK: Output: database:bad_rename1
+POSTHOOK: query: create table rename1(a int)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: bad_rename1@rename1
+POSTHOOK: Output: database:bad_rename1
+PREHOOK: query: alter table bad_rename1.rename1 rename to bad_db_notexists.rename1
+PREHOOK: type: ALTERTABLE_RENAME
+PREHOOK: Input: bad_rename1@rename1
+PREHOOK: Output: bad_rename1@rename1
+FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Unable to alter table. Unable to change partition or table. Object bad_db_notexists does not exist. Check metastore logs for detailed stack.

http://git-wip-us.apache.org/repos/asf/hive/blob/ca0d7069/ql/src/test/results/clientnegative/alter_table_wrong_table.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/alter_table_wrong_table.q.out b/ql/src/test/results/clientnegative/alter_table_wrong_table.q.out
new file mode 100644
index 0000000..35087f8
--- /dev/null
+++ b/ql/src/test/results/clientnegative/alter_table_wrong_table.q.out
@@ -0,0 +1,13 @@
+PREHOOK: query: create database bad_rename2
+PREHOOK: type: CREATEDATABASE
+PREHOOK: Output: database:bad_rename2
+POSTHOOK: query: create database bad_rename2
+POSTHOOK: type: CREATEDATABASE
+POSTHOOK: Output: database:bad_rename2
+PREHOOK: query: use bad_rename2
+PREHOOK: type: SWITCHDATABASE
+PREHOOK: Input: database:bad_rename2
+POSTHOOK: query: use bad_rename2
+POSTHOOK: type: SWITCHDATABASE
+POSTHOOK: Input: database:bad_rename2
+FAILED: SemanticException [Error 10001]: Table not found bad_rename2.rename_not_exists

http://git-wip-us.apache.org/repos/asf/hive/blob/ca0d7069/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java
index 93ac74c..77b3a9e 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java
@@ -366,8 +366,8 @@ public class HiveAlterHandler implements AlterHandler {
     } catch (NoSuchObjectException e) {
       LOG.debug("Object not found in metastore ", e);
       throw new InvalidOperationException(
-          "Unable to change partition or table. Database " + dbname + " does not exist"
-              + " Check metastore logs for detailed stack." + e.getMessage());
+          "Unable to change partition or table. Object " +  e.getMessage() + " does not exist."
+              + " Check metastore logs for detailed stack.");
     } finally {
       if (!success) {
         LOG.error("Failed to alter table " + TableName.getQualified(catName, dbname, name));