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