You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by na...@apache.org on 2012/11/22 07:08:30 UTC
svn commit: r1412432 - in /hive/trunk/ql/src:
java/org/apache/hadoop/hive/ql/ java/org/apache/hadoop/hive/ql/parse/
test/queries/clientnegative/ test/results/clientnegative/
Author: namit
Date: Thu Nov 22 06:08:29 2012
New Revision: 1412432
URL: http://svn.apache.org/viewvc?rev=1412432&view=rev
Log:
HIVE-3721 ALTER TABLE ADD PARTS should check for valid partition spec and throw a SemanticException
if part spec is not valid (Pamela Vagata via namit)
Added:
hive/trunk/ql/src/test/queries/clientnegative/alter_table_add_partition.q
hive/trunk/ql/src/test/results/clientnegative/alter_table_add_partition.q.out
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java?rev=1412432&r1=1412431&r2=1412432&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java Thu Nov 22 06:08:29 2012
@@ -291,6 +291,7 @@ public enum ErrorMsg {
HIVE_GROUPING_SETS_EXPR_NOT_IN_GROUPBY(10213,
"Grouping sets expression is not in GROUP BY key"),
+ INVALID_PARTITION_SPEC(10214, "Invalid partition spec specified"),
SCRIPT_INIT_ERROR(20000, "Unable to initialize custom script."),
SCRIPT_IO_ERROR(20001, "An error occurred while reading or writing to your custom script. "
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java?rev=1412432&r1=1412431&r2=1412432&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java Thu Nov 22 06:08:29 2012
@@ -2325,6 +2325,11 @@ public class DDLSemanticAnalyzer extends
}
for (AddPartitionDesc addPartitionDesc : partitionDescs) {
+ try {
+ tab.isValidSpec(addPartitionDesc.getPartSpec());
+ } catch (HiveException ex) {
+ throw new SemanticException(ErrorMsg.INVALID_PARTITION_SPEC.getMsg(ex.getMessage()));
+ }
rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(),
addPartitionDesc), conf));
}
@@ -2344,7 +2349,7 @@ public class DDLSemanticAnalyzer extends
// actually returns false).
tab.isValidSpec(partitionDesc.getPartSpec());
} catch (HiveException ex) {
- throw new SemanticException(ex.getMessage(), ex);
+ throw new SemanticException(ErrorMsg.INVALID_PARTITION_SPEC.getMsg(ex.getMessage()));
}
if (firstOr) {
firstOr = false;
Added: hive/trunk/ql/src/test/queries/clientnegative/alter_table_add_partition.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientnegative/alter_table_add_partition.q?rev=1412432&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientnegative/alter_table_add_partition.q (added)
+++ hive/trunk/ql/src/test/queries/clientnegative/alter_table_add_partition.q Thu Nov 22 06:08:29 2012
@@ -0,0 +1,5 @@
+create table mp (a int) partitioned by (b int);
+
+-- should fail
+alter table mp add partition (b='1', c='1');
+
Added: hive/trunk/ql/src/test/results/clientnegative/alter_table_add_partition.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientnegative/alter_table_add_partition.q.out?rev=1412432&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientnegative/alter_table_add_partition.q.out (added)
+++ hive/trunk/ql/src/test/results/clientnegative/alter_table_add_partition.q.out Thu Nov 22 06:08:29 2012
@@ -0,0 +1,6 @@
+PREHOOK: query: create table mp (a int) partitioned by (b int)
+PREHOOK: type: CREATETABLE
+POSTHOOK: query: create table mp (a int) partitioned by (b int)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: default@mp
+FAILED: SemanticException [Error 10214]: Invalid partition spec specified table is partitioned but partition spec is not specified or does not fully match table partitioning: {b=1, c=1}