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());