diff --git serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveVarcharObjectInspector.java serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveVarcharObjectInspector.java index cb3f354..a8e34ff 100644 --- serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveVarcharObjectInspector.java +++ serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveVarcharObjectInspector.java @@ -19,11 +19,11 @@ import org.apache.hadoop.hive.common.type.HiveVarchar; import org.apache.hadoop.hive.serde2.io.HiveVarcharWritable; -import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo; import org.apache.hadoop.hive.serde2.typeinfo.BaseCharUtils; +import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo; public class JavaHiveVarcharObjectInspector extends AbstractPrimitiveJavaObjectInspector -implements SettableHiveVarcharObjectInspector { + implements SettableHiveVarcharObjectInspector { // no-arg ctor required for Kyro serialization public JavaHiveVarcharObjectInspector() { @@ -38,9 +38,8 @@ public HiveVarchar getPrimitiveJavaObject(Object o) { if (o == null) { return null; } - HiveVarchar value = (HiveVarchar)o; - if (BaseCharUtils.doesPrimitiveMatchTypeParams( - value, (VarcharTypeInfo)typeInfo)) { + HiveVarchar value = (HiveVarchar) o; + if (BaseCharUtils.doesPrimitiveMatchTypeParams(value, (VarcharTypeInfo) typeInfo)) { return value; } // value needs to be converted to match the type params (length, etc). @@ -52,40 +51,27 @@ public HiveVarcharWritable getPrimitiveWritableObject(Object o) { if (o == null) { return null; } - return getWritableWithParams((HiveVarchar)o); - } - - private HiveVarchar getPrimitiveWithParams(HiveVarchar val) { - HiveVarchar hv = new HiveVarchar(val, getMaxLength()); - return hv; - } - - private HiveVarcharWritable getWritableWithParams(HiveVarchar val) { - HiveVarcharWritable newValue = new HiveVarcharWritable(); - newValue.set(val, getMaxLength()); - return newValue; + return getWritableWithParams((HiveVarchar) o); } @Override public Object set(Object o, HiveVarchar value) { - if (BaseCharUtils.doesPrimitiveMatchTypeParams( - value, (VarcharTypeInfo)typeInfo)) { - return o = value; + if (BaseCharUtils.doesPrimitiveMatchTypeParams(value, (VarcharTypeInfo) typeInfo)) { + return value; } else { // Otherwise value may be too long, convert to appropriate value based on params - return o = new HiveVarchar(value, getMaxLength()); + return new HiveVarchar(value, getMaxLength()); } } @Override public Object set(Object o, String value) { - return o = new HiveVarchar(value, getMaxLength()); + return new HiveVarchar(value, getMaxLength()); } @Override public Object create(HiveVarchar value) { - HiveVarchar hc = new HiveVarchar(value, getMaxLength()); - return hc; + return new HiveVarchar(value, getMaxLength()); } public int getMaxLength() { @@ -93,4 +79,14 @@ public int getMaxLength() { return ti.getLength(); } + private HiveVarchar getPrimitiveWithParams(HiveVarchar val) { + return new HiveVarchar(val, getMaxLength()); + } + + private HiveVarcharWritable getWritableWithParams(HiveVarchar val) { + HiveVarcharWritable newValue = new HiveVarcharWritable(); + newValue.set(val, getMaxLength()); + return newValue; + } + }