You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2017/06/26 15:04:45 UTC
hive git commit: HIVE-16877 : NPE when issue query like alter table
... cascade onto non-partitioned table (Wang Haihua via Ashutosh Chauhan)
Repository: hive
Updated Branches:
refs/heads/master db21c3ff6 -> 309cb0d43
HIVE-16877 : NPE when issue query like alter table ... cascade onto non-partitioned table (Wang Haihua via Ashutosh Chauhan)
Signed-off-by: Ashutosh Chauhan <ha...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/309cb0d4
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/309cb0d4
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/309cb0d4
Branch: refs/heads/master
Commit: 309cb0d432653be4ef8b1028ccc4ed5d5f5ae7e6
Parents: db21c3f
Author: Wang Haihua <wi...@gmail.com>
Authored: Sat Jun 10 07:25:00 2017 -0700
Committer: Ashutosh Chauhan <ha...@apache.org>
Committed: Mon Jun 26 08:02:36 2017 -0700
----------------------------------------------------------------------
.../org/apache/hadoop/hive/ql/ErrorMsg.java | 2 ++
.../hive/ql/parse/DDLSemanticAnalyzer.java | 6 ++++++
.../alter_table_non_partitioned_table_cascade.q | 4 ++++
...er_table_non_partitioned_table_cascade.q.out | 21 ++++++++++++++++++++
4 files changed, 33 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/309cb0d4/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java b/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
index 4af09f0..226ba18 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
@@ -471,6 +471,8 @@ public enum ErrorMsg {
INVALID_JOIN_CONDITION(10407, "Error parsing condition in join"),
INVALID_TARGET_COLUMN_IN_SET_CLAUSE(10408, "Target column \"{0}\" of set clause is not found in table \"{1}\".", true),
HIVE_GROUPING_FUNCTION_EXPR_NOT_IN_GROUPBY(10409, "Expression in GROUPING function not present in GROUP BY"),
+ ALTER_TABLE_NON_PARTITIONED_TABLE_CASCADE_NOT_SUPPORTED(10410,
+ "Alter table with non-partitioned table does not support cascade"),
//========================== 20000 range starts here ========================//
SCRIPT_INIT_ERROR(20000, "Unable to initialize custom script."),
SCRIPT_IO_ERROR(20001, "An error occurred while reading or writing to your custom script. "
http://git-wip-us.apache.org/repos/asf/hive/blob/309cb0d4/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
index e9a4ff0..55f07af 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
@@ -1494,6 +1494,12 @@ public class DDLSemanticAnalyzer extends BaseSemanticAnalyzer {
}
Table tab = getTable(tableName, true);
+ // cascade only occurs with partitioned table
+ if (isCascade && !tab.isPartitioned()) {
+ throw new SemanticException(
+ ErrorMsg.ALTER_TABLE_NON_PARTITIONED_TABLE_CASCADE_NOT_SUPPORTED);
+ }
+
// Determine the lock type to acquire
WriteEntity.WriteType writeType = WriteEntity.determineAlterTableWriteType(op);
http://git-wip-us.apache.org/repos/asf/hive/blob/309cb0d4/ql/src/test/queries/clientnegative/alter_table_non_partitioned_table_cascade.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/alter_table_non_partitioned_table_cascade.q b/ql/src/test/queries/clientnegative/alter_table_non_partitioned_table_cascade.q
new file mode 100644
index 0000000..47ce383
--- /dev/null
+++ b/ql/src/test/queries/clientnegative/alter_table_non_partitioned_table_cascade.q
@@ -0,0 +1,4 @@
+drop table if exists alter_table_non_partition_cascade;
+create table alter_table_non_partitioned_cascade(c1 string, c2 string);
+describe alter_table_non_partitioned_cascade;
+alter table alter_table_non_partitioned_cascade add columns (c3 string) cascade;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/309cb0d4/ql/src/test/results/clientnegative/alter_table_non_partitioned_table_cascade.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/alter_table_non_partitioned_table_cascade.q.out b/ql/src/test/results/clientnegative/alter_table_non_partitioned_table_cascade.q.out
new file mode 100644
index 0000000..afa648d
--- /dev/null
+++ b/ql/src/test/results/clientnegative/alter_table_non_partitioned_table_cascade.q.out
@@ -0,0 +1,21 @@
+PREHOOK: query: drop table if exists alter_table_non_partition_cascade
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: drop table if exists alter_table_non_partition_cascade
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: create table alter_table_non_partitioned_cascade(c1 string, c2 string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@alter_table_non_partitioned_cascade
+POSTHOOK: query: create table alter_table_non_partitioned_cascade(c1 string, c2 string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@alter_table_non_partitioned_cascade
+PREHOOK: query: describe alter_table_non_partitioned_cascade
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@alter_table_non_partitioned_cascade
+POSTHOOK: query: describe alter_table_non_partitioned_cascade
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@alter_table_non_partitioned_cascade
+c1 string
+c2 string
+FAILED: SemanticException [Error 10410]: Alter table with non-partitioned table does not support cascade