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 2014/04/24 04:37:56 UTC
svn commit: r1589559 - in /hive/trunk/ql/src:
java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
test/queries/clientpositive/drop_partitions_filter2.q
test/results/clientpositive/drop_partitions_filter2.q.out
Author: sershe
Date: Thu Apr 24 02:37:55 2014
New Revision: 1589559
URL: http://svn.apache.org/r1589559
Log:
HIVE-6961 : Drop partitions treats partition columns as strings (Sergey Shelukhin, reviewed by Jitendra Nath Pandey)
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
hive/trunk/ql/src/test/queries/clientpositive/drop_partitions_filter2.q
hive/trunk/ql/src/test/results/clientpositive/drop_partitions_filter2.q.out
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=1589559&r1=1589558&r2=1589559&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 Apr 24 02:37:55 2014
@@ -136,9 +136,13 @@ import org.apache.hadoop.hive.ql.plan.Un
import org.apache.hadoop.hive.ql.session.SessionState;
import org.apache.hadoop.hive.serde.serdeConstants;
import org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorConverters;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorConverters.Converter;
import org.apache.hadoop.hive.serde2.typeinfo.CharTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.DecimalTypeInfo;
+import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
import org.apache.hadoop.mapred.InputFormat;
import org.apache.hadoop.mapred.TextInputFormat;
@@ -2929,10 +2933,13 @@ public class DDLSemanticAnalyzer extends
throw new SemanticException("Column " + key + " not found");
}
// Create the corresponding hive expression to filter on partition columns.
- ExprNodeColumnDesc column = new ExprNodeColumnDesc(
- TypeInfoFactory.getPrimitiveTypeInfo(type), key, null, true);
+ PrimitiveTypeInfo pti = TypeInfoFactory.getPrimitiveTypeInfo(type);
+ Converter converter = ObjectInspectorConverters.getConverter(
+ TypeInfoUtils.getStandardJavaObjectInspectorFromTypeInfo(TypeInfoFactory.stringTypeInfo),
+ TypeInfoUtils.getStandardJavaObjectInspectorFromTypeInfo(pti));
+ ExprNodeColumnDesc column = new ExprNodeColumnDesc(pti, key, null, true);
ExprNodeGenericFuncDesc op = makeBinaryPredicate(
- operator, column, new ExprNodeConstantDesc(val));
+ operator, column, new ExprNodeConstantDesc(pti, converter.convert(val)));
// If it's multi-expr filter (e.g. a='5', b='2012-01-02'), AND with previous exprs.
expr = (expr == null) ? op : makeBinaryPredicate("and", expr, op);
names.add(key);
Modified: hive/trunk/ql/src/test/queries/clientpositive/drop_partitions_filter2.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/drop_partitions_filter2.q?rev=1589559&r1=1589558&r2=1589559&view=diff
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/drop_partitions_filter2.q (original)
+++ hive/trunk/ql/src/test/queries/clientpositive/drop_partitions_filter2.q Thu Apr 24 02:37:55 2014
@@ -6,7 +6,7 @@ alter table ptestfilter add partition (c
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);
+alter table ptestfilter add partition (c=30, d=2);
show partitions ptestfilter;
alter table ptestfilter drop partition (c=1, d=1);
@@ -15,6 +15,9 @@ show partitions ptestfilter;
alter table ptestfilter drop partition (c=2);
show partitions ptestfilter;
+alter table ptestfilter drop partition (c<4);
+show partitions ptestfilter;
+
drop table ptestfilter;
Modified: hive/trunk/ql/src/test/results/clientpositive/drop_partitions_filter2.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/drop_partitions_filter2.q.out?rev=1589559&r1=1589558&r2=1589559&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/drop_partitions_filter2.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/drop_partitions_filter2.q.out Thu Apr 24 02:37:55 2014
@@ -56,13 +56,13 @@ POSTHOOK: query: alter table ptestfilter
POSTHOOK: type: ALTERTABLE_ADDPARTS
POSTHOOK: Output: default@ptestfilter
POSTHOOK: Output: default@ptestfilter@c=3/d=1
-PREHOOK: query: alter table ptestfilter add partition (c=3, d=2)
+PREHOOK: query: alter table ptestfilter add partition (c=30, d=2)
PREHOOK: type: ALTERTABLE_ADDPARTS
PREHOOK: Output: default@ptestfilter
-POSTHOOK: query: alter table ptestfilter add partition (c=3, d=2)
+POSTHOOK: query: alter table ptestfilter add partition (c=30, d=2)
POSTHOOK: type: ALTERTABLE_ADDPARTS
POSTHOOK: Output: default@ptestfilter
-POSTHOOK: Output: default@ptestfilter@c=3/d=2
+POSTHOOK: Output: default@ptestfilter@c=30/d=2
PREHOOK: query: show partitions ptestfilter
PREHOOK: type: SHOWPARTITIONS
PREHOOK: Input: default@ptestfilter
@@ -74,7 +74,7 @@ c=1/d=2
c=2/d=1
c=2/d=2
c=3/d=1
-c=3/d=2
+c=30/d=2
PREHOOK: query: alter table ptestfilter drop partition (c=1, d=1)
PREHOOK: type: ALTERTABLE_DROPPARTS
PREHOOK: Input: default@ptestfilter
@@ -93,7 +93,7 @@ c=1/d=2
c=2/d=1
c=2/d=2
c=3/d=1
-c=3/d=2
+c=30/d=2
PREHOOK: query: alter table ptestfilter drop partition (c=2)
PREHOOK: type: ALTERTABLE_DROPPARTS
PREHOOK: Input: default@ptestfilter
@@ -112,7 +112,24 @@ POSTHOOK: type: SHOWPARTITIONS
POSTHOOK: Input: default@ptestfilter
c=1/d=2
c=3/d=1
-c=3/d=2
+c=30/d=2
+PREHOOK: query: alter table ptestfilter drop partition (c<4)
+PREHOOK: type: ALTERTABLE_DROPPARTS
+PREHOOK: Input: default@ptestfilter
+PREHOOK: Output: default@ptestfilter@c=1/d=2
+PREHOOK: Output: default@ptestfilter@c=3/d=1
+POSTHOOK: query: alter table ptestfilter drop partition (c<4)
+POSTHOOK: type: ALTERTABLE_DROPPARTS
+POSTHOOK: Input: default@ptestfilter
+POSTHOOK: Output: default@ptestfilter@c=1/d=2
+POSTHOOK: Output: default@ptestfilter@c=3/d=1
+PREHOOK: query: show partitions ptestfilter
+PREHOOK: type: SHOWPARTITIONS
+PREHOOK: Input: default@ptestfilter
+POSTHOOK: query: show partitions ptestfilter
+POSTHOOK: type: SHOWPARTITIONS
+POSTHOOK: Input: default@ptestfilter
+c=30/d=2
PREHOOK: query: drop table ptestfilter
PREHOOK: type: DROPTABLE
PREHOOK: Input: default@ptestfilter