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 2012/03/28 03:18:04 UTC
svn commit: r1306096 - in /hive/trunk/serde/src:
java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorConverter.java
test/org/apache/hadoop/hive/serde2/objectinspector/TestObjectInspectorConverters.java
Author: hashutosh
Date: Wed Mar 28 01:18:04 2012
New Revision: 1306096
URL: http://svn.apache.org/viewvc?rev=1306096&view=rev
Log:
HIVE-2891: TextConverter for UDF's is inefficient if the input object is already Text or Lazy (Cliff Engle via Ashutosh Chauhan)
Modified:
hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorConverter.java
hive/trunk/serde/src/test/org/apache/hadoop/hive/serde2/objectinspector/TestObjectInspectorConverters.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=1306096&r1=1306095&r2=1306096&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 Wed Mar 28 01:18:04 2012
@@ -336,7 +336,11 @@ public class PrimitiveObjectInspectorCon
t.set(String.valueOf(((DoubleObjectInspector) inputOI).get(input)));
return t;
case STRING:
- t.set(((StringObjectInspector) inputOI).getPrimitiveJavaObject(input));
+ if (inputOI.preferWritable()) {
+ t.set(((StringObjectInspector) inputOI).getPrimitiveWritableObject(input));
+ } else {
+ t.set(((StringObjectInspector) inputOI).getPrimitiveJavaObject(input));
+ }
return t;
case TIMESTAMP:
t.set(((TimestampObjectInspector) inputOI)
Modified: hive/trunk/serde/src/test/org/apache/hadoop/hive/serde2/objectinspector/TestObjectInspectorConverters.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/test/org/apache/hadoop/hive/serde2/objectinspector/TestObjectInspectorConverters.java?rev=1306096&r1=1306095&r2=1306096&view=diff
==============================================================================
--- hive/trunk/serde/src/test/org/apache/hadoop/hive/serde2/objectinspector/TestObjectInspectorConverters.java (original)
+++ hive/trunk/serde/src/test/org/apache/hadoop/hive/serde2/objectinspector/TestObjectInspectorConverters.java Wed Mar 28 01:18:04 2012
@@ -116,6 +116,16 @@ public class TestObjectInspectorConverte
assertEquals("TextConverter", new Text("hive"), textConverter
.convert(new BytesWritable(new byte[]
{(byte)'h', (byte)'i',(byte)'v',(byte)'e'})));
+ textConverter = ObjectInspectorConverters.getConverter(
+ PrimitiveObjectInspectorFactory.writableStringObjectInspector,
+ PrimitiveObjectInspectorFactory.writableStringObjectInspector);
+ assertEquals("TextConverter", new Text("hive"), textConverter
+ .convert(new Text("hive")));
+ textConverter = ObjectInspectorConverters.getConverter(
+ PrimitiveObjectInspectorFactory.javaStringObjectInspector,
+ PrimitiveObjectInspectorFactory.writableStringObjectInspector);
+ assertEquals("TextConverter", new Text("hive"), textConverter
+ .convert(new String("hive")));
// Binary
Converter baConverter = ObjectInspectorConverters.getConverter(