Index: ql/src/test/results/clientpositive/drop_partitions_filter3.q.out =================================================================== --- ql/src/test/results/clientpositive/drop_partitions_filter3.q.out (revision 0) +++ ql/src/test/results/clientpositive/drop_partitions_filter3.q.out (revision 1354162) @@ -0,0 +1,107 @@ +PREHOOK: query: create table ptestfilter (a string, b int) partitioned by (c string, d int) +PREHOOK: type: CREATETABLE +POSTHOOK: query: create table ptestfilter (a string, b int) partitioned by (c string, d int) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@ptestfilter +PREHOOK: query: describe ptestfilter +PREHOOK: type: DESCTABLE +POSTHOOK: query: describe ptestfilter +POSTHOOK: type: DESCTABLE +a string +b int +c string +d int +PREHOOK: query: alter table ptestfilter add partition (c='1', d=1) +PREHOOK: type: ALTERTABLE_ADDPARTS +PREHOOK: Input: default@ptestfilter +POSTHOOK: query: alter table ptestfilter add partition (c='1', d=1) +POSTHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: Input: default@ptestfilter +POSTHOOK: Output: default@ptestfilter@c=1/d=1 +PREHOOK: query: alter table ptestfilter add partition (c='1', d=2) +PREHOOK: type: ALTERTABLE_ADDPARTS +PREHOOK: Input: default@ptestfilter +POSTHOOK: query: alter table ptestfilter add partition (c='1', d=2) +POSTHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: Input: default@ptestfilter +POSTHOOK: Output: default@ptestfilter@c=1/d=2 +PREHOOK: query: alter table ptestFilter add partition (c='2', d=1) +PREHOOK: type: ALTERTABLE_ADDPARTS +PREHOOK: Input: default@ptestfilter +POSTHOOK: query: alter table ptestFilter add partition (c='2', d=1) +POSTHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: Input: default@ptestfilter +POSTHOOK: Output: default@ptestfilter@c=2/d=1 +PREHOOK: query: alter table ptestfilter add partition (c='2', d=2) +PREHOOK: type: ALTERTABLE_ADDPARTS +PREHOOK: Input: default@ptestfilter +POSTHOOK: query: alter table ptestfilter add partition (c='2', d=2) +POSTHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: Input: default@ptestfilter +POSTHOOK: Output: default@ptestfilter@c=2/d=2 +PREHOOK: query: alter table ptestfilter add partition (c='3', d=1) +PREHOOK: type: ALTERTABLE_ADDPARTS +PREHOOK: Input: default@ptestfilter +POSTHOOK: query: alter table ptestfilter add partition (c='3', d=1) +POSTHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: Input: default@ptestfilter +POSTHOOK: Output: default@ptestfilter@c=3/d=1 +PREHOOK: query: alter table ptestfilter add partition (c='3', d=2) +PREHOOK: type: ALTERTABLE_ADDPARTS +PREHOOK: Input: default@ptestfilter +POSTHOOK: query: alter table ptestfilter add partition (c='3', d=2) +POSTHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: Input: default@ptestfilter +POSTHOOK: Output: default@ptestfilter@c=3/d=2 +PREHOOK: query: show partitions ptestfilter +PREHOOK: type: SHOWPARTITIONS +POSTHOOK: query: show partitions ptestfilter +POSTHOOK: type: SHOWPARTITIONS +c=1/d=1 +c=1/d=2 +c=2/d=1 +c=2/d=2 +c=3/d=1 +c=3/d=2 +PREHOOK: query: alter table ptestfilter drop partition (c='1', d=1) +PREHOOK: type: ALTERTABLE_DROPPARTS +PREHOOK: Input: default@ptestfilter +PREHOOK: Output: default@ptestfilter@c=1/d=1 +POSTHOOK: query: alter table ptestfilter drop partition (c='1', d=1) +POSTHOOK: type: ALTERTABLE_DROPPARTS +POSTHOOK: Input: default@ptestfilter +POSTHOOK: Output: default@ptestfilter@c=1/d=1 +PREHOOK: query: show partitions ptestfilter +PREHOOK: type: SHOWPARTITIONS +POSTHOOK: query: show partitions ptestfilter +POSTHOOK: type: SHOWPARTITIONS +c=1/d=2 +c=2/d=1 +c=2/d=2 +c=3/d=1 +c=3/d=2 +PREHOOK: query: alter table ptestfilter drop partition (c='2') +PREHOOK: type: ALTERTABLE_DROPPARTS +PREHOOK: Input: default@ptestfilter +PREHOOK: Output: default@ptestfilter@c=2/d=1 +PREHOOK: Output: default@ptestfilter@c=2/d=2 +POSTHOOK: query: alter table ptestfilter drop partition (c='2') +POSTHOOK: type: ALTERTABLE_DROPPARTS +POSTHOOK: Input: default@ptestfilter +POSTHOOK: Output: default@ptestfilter@c=2/d=1 +POSTHOOK: Output: default@ptestfilter@c=2/d=2 +PREHOOK: query: show partitions ptestfilter +PREHOOK: type: SHOWPARTITIONS +POSTHOOK: query: show partitions ptestfilter +POSTHOOK: type: SHOWPARTITIONS +c=1/d=2 +c=3/d=1 +c=3/d=2 +PREHOOK: query: drop table ptestfilter +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@ptestfilter +PREHOOK: Output: default@ptestfilter +POSTHOOK: query: drop table ptestfilter +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@ptestfilter +POSTHOOK: Output: default@ptestfilter Index: ql/src/test/queries/clientpositive/drop_partitions_filter3.q =================================================================== --- ql/src/test/queries/clientpositive/drop_partitions_filter3.q (revision 0) +++ ql/src/test/queries/clientpositive/drop_partitions_filter3.q (revision 1354162) @@ -0,0 +1,20 @@ +create table ptestfilter (a string, b int) partitioned by (c string, d int); +describe ptestfilter; + +alter table ptestfilter add partition (c='1', d=1); +alter table ptestfilter add partition (c='1', d=2); +alter table ptestFilter add partition (c='2', d=1); +alter table ptestfilter add partition (c='2', d=2); +alter table ptestfilter add partition (c='3', d=1); +alter table ptestfilter add partition (c='3', d=2); +show partitions ptestfilter; + +alter table ptestfilter drop partition (c='1', d=1); +show partitions ptestfilter; + +alter table ptestfilter drop partition (c='2'); +show partitions ptestfilter; + +drop table ptestfilter; + + Index: ql/src/java/org/apache/hadoop/hive/ql/plan/PartitionSpec.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/plan/PartitionSpec.java (revision 1354161) +++ ql/src/java/org/apache/hadoop/hive/ql/plan/PartitionSpec.java (revision 1354162) @@ -18,7 +18,6 @@ package org.apache.hadoop.hive.ql.plan; -import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; @@ -110,9 +109,9 @@ // For compatibility with other non-string partition columns, this function // returns the key, value mapping assuming that the operator is equality. public Map getPartSpecWithoutOperator() { - Map partSpec = new HashMap(); + Map partSpec = new LinkedHashMap(); for (Map.Entry entry: this.partSpec.entrySet()) { - partSpec.put(entry.getKey(), entry.getValue().getValue()); + partSpec.put(entry.getKey(), PlanUtils.stripQuotes(entry.getValue().getValue())); } return partSpec; Index: ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java (revision 1354161) +++ ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java (revision 1354162) @@ -724,6 +724,14 @@ } } + public static String stripQuotes(String val) { + if ((val.charAt(0) == '\'' && val.charAt(val.length() - 1) == '\'') + || (val.charAt(0) == '\"' && val.charAt(val.length() - 1) == '\"')) { + val = val.substring(1, val.length() - 1); + } + return val; + } + private PlanUtils() { // prevent instantiation } Index: ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java (revision 1354161) +++ ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java (revision 1354162) @@ -52,6 +52,7 @@ import org.apache.hadoop.hive.ql.metadata.InvalidTableException; import org.apache.hadoop.hive.ql.metadata.Partition; import org.apache.hadoop.hive.ql.metadata.Table; +import org.apache.hadoop.hive.ql.plan.PlanUtils; import org.apache.hadoop.hive.ql.session.SessionState.LogHelper; import org.apache.hadoop.hive.serde.Constants; import org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe; @@ -270,12 +271,8 @@ rootTasks = new ArrayList>(); } - public static String stripQuotes(String val) throws SemanticException { - if ((val.charAt(0) == '\'' && val.charAt(val.length() - 1) == '\'') - || (val.charAt(0) == '\"' && val.charAt(val.length() - 1) == '\"')) { - val = val.substring(1, val.length() - 1); - } - return val; + public static String stripQuotes(String val) { + return PlanUtils.stripQuotes(val); } public static String charSetString(String charSetName, String charSetString) Property changes on: . ___________________________________________________________________ Modified: svn:mergeinfo Merged /hive/trunk:r1345274