You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by sz...@apache.org on 2014/08/28 07:35:32 UTC

svn commit: r1621043 - in /hive/trunk: ql/src/test/queries/clientpositive/partition_char.q ql/src/test/results/clientpositive/partition_char.q.out serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveCharObjectInspector.java

Author: szehon
Date: Thu Aug 28 05:35:31 2014
New Revision: 1621043

URL: http://svn.apache.org/r1621043
Log:
HIVE-7889 : Query fails with char partition column (Mohit Sabharwal via Szehon)

Added:
    hive/trunk/ql/src/test/queries/clientpositive/partition_char.q
    hive/trunk/ql/src/test/results/clientpositive/partition_char.q.out
Modified:
    hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveCharObjectInspector.java

Added: hive/trunk/ql/src/test/queries/clientpositive/partition_char.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/partition_char.q?rev=1621043&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/partition_char.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/partition_char.q Thu Aug 28 05:35:31 2014
@@ -0,0 +1,10 @@
+drop table partition_char_1;
+
+create table partition_char_1 (key string, value char(20)) partitioned by (dt char(10), region int);
+
+insert overwrite table partition_char_1 partition(dt='2000-01-01', region=1)
+  select * from src tablesample (10 rows);
+
+select * from partition_char_1 limit 1;
+
+drop table partition_char_1;

Added: hive/trunk/ql/src/test/results/clientpositive/partition_char.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/partition_char.q.out?rev=1621043&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/partition_char.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/partition_char.q.out Thu Aug 28 05:35:31 2014
@@ -0,0 +1,43 @@
+PREHOOK: query: drop table partition_char_1
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: drop table partition_char_1
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: create table partition_char_1 (key string, value char(20)) partitioned by (dt char(10), region int)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@partition_char_1
+POSTHOOK: query: create table partition_char_1 (key string, value char(20)) partitioned by (dt char(10), region int)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@partition_char_1
+PREHOOK: query: insert overwrite table partition_char_1 partition(dt='2000-01-01', region=1)
+  select * from src tablesample (10 rows)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@partition_char_1@dt=2000-01-01/region=1
+POSTHOOK: query: insert overwrite table partition_char_1 partition(dt='2000-01-01', region=1)
+  select * from src tablesample (10 rows)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@partition_char_1@dt=2000-01-01/region=1
+POSTHOOK: Lineage: partition_char_1 PARTITION(dt=2000-01-01,region=1).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: partition_char_1 PARTITION(dt=2000-01-01,region=1).value EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: select * from partition_char_1 limit 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_char_1
+PREHOOK: Input: default@partition_char_1@dt=2000-01-01/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from partition_char_1 limit 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_char_1
+POSTHOOK: Input: default@partition_char_1@dt=2000-01-01/region=1
+#### A masked pattern was here ####
+238	val_238             	2000-01-01	1
+PREHOOK: query: drop table partition_char_1
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@partition_char_1
+PREHOOK: Output: default@partition_char_1
+POSTHOOK: query: drop table partition_char_1
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@partition_char_1
+POSTHOOK: Output: default@partition_char_1

Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveCharObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveCharObjectInspector.java?rev=1621043&r1=1621042&r2=1621043&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveCharObjectInspector.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveCharObjectInspector.java Thu Aug 28 05:35:31 2014
@@ -64,15 +64,16 @@ public class JavaHiveCharObjectInspector
   }
 
   public Object set(Object o, HiveChar value) {
-    HiveChar setValue = (HiveChar) o;
-    setValue.setValue(value, getMaxLength());
-    return setValue;
+    if (BaseCharUtils.doesPrimitiveMatchTypeParams(value,
+        (CharTypeInfo) typeInfo)) {
+      return value;
+    } else {
+      return new HiveChar(value, getMaxLength());
+    }
   }
 
   public Object set(Object o, String value) {
-    HiveChar setValue = (HiveChar) o;
-    setValue.setValue(value, getMaxLength());
-    return setValue;
+    return new HiveChar(value, getMaxLength());
   }
 
   public Object create(HiveChar value) {