You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2014/06/23 11:55:38 UTC

svn commit: r1604730 - /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorConverter.java

Author: hashutosh
Date: Mon Jun 23 09:55:37 2014
New Revision: 1604730

URL: http://svn.apache.org/r1604730
Log:
HIVE-7265 : BINARY columns use BytesWritable::getBytes() without ::getLength() (Navis via Ashutosh Chauhan)

Modified:
    hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorConverter.java

Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorConverter.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorConverter.java?rev=1604730&r1=1604729&r2=1604730&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorConverter.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorConverter.java Mon Jun 23 09:55:37 2014
@@ -31,6 +31,7 @@ import org.apache.hadoop.hive.serde2.laz
 import org.apache.hadoop.hive.serde2.lazy.LazyLong;
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorConverters.Converter;
 import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
+import org.apache.hadoop.io.BytesWritable;
 import org.apache.hadoop.io.Text;
 
 /**
@@ -419,7 +420,13 @@ public class PrimitiveObjectInspectorCon
             .getPrimitiveWritableObject(input).toString());
         return t;
       case BINARY:
-        t.set(((BinaryObjectInspector) inputOI).getPrimitiveWritableObject(input).getBytes());
+        BinaryObjectInspector binaryOI = (BinaryObjectInspector) inputOI;
+        if (binaryOI.preferWritable()) {
+          BytesWritable bytes = binaryOI.getPrimitiveWritableObject(input);
+          t.set(bytes.getBytes(), 0, bytes.getLength());
+        } else {
+          t.set(binaryOI.getPrimitiveJavaObject(input));
+        }
         return t;
       case DECIMAL:
         t.set(((HiveDecimalObjectInspector) inputOI).getPrimitiveWritableObject(input).toString());