You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by br...@apache.org on 2013/10/22 19:59:08 UTC

svn commit: r1534711 [12/15] - in /hive/branches/maven: ./ ant/src/org/apache/hadoop/hive/ant/ beeline/src/java/org/apache/hive/beeline/ bin/ bin/ext/ cli/src/java/org/apache/hadoop/hive/cli/ common/ common/src/java/org/apache/hadoop/hive/common/type/ ...

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/RegexSerDe.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/RegexSerDe.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/RegexSerDe.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/RegexSerDe.java Tue Oct 22 17:58:59 2013
@@ -35,14 +35,12 @@ import org.apache.hadoop.hive.serde.serd
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory;
 import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
+import org.apache.hadoop.hive.serde2.objectinspector.primitive.AbstractPrimitiveJavaObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
-import org.apache.hadoop.hive.serde2.typeinfo.ParameterizedPrimitiveTypeUtils;
 import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
 import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
 import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
-import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeParams;
+import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.io.Writable;
 
@@ -126,41 +124,16 @@ public class RegexSerDe extends Abstract
     List<ObjectInspector> columnOIs = new ArrayList<ObjectInspector>(columnNames.size());
     for (int c = 0; c < numColumns; c++) {
       TypeInfo typeInfo = columnTypes.get(c);
-      String typeName = typeInfo.getTypeName();
-      if (typeName.equals(serdeConstants.STRING_TYPE_NAME)) {
-        columnOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
-      } else if (typeName.equals(serdeConstants.TINYINT_TYPE_NAME)) {
-        columnOIs.add(PrimitiveObjectInspectorFactory.javaByteObjectInspector);
-      } else if (typeName.equals(serdeConstants.SMALLINT_TYPE_NAME)) {
-       columnOIs.add(PrimitiveObjectInspectorFactory.javaShortObjectInspector);
-      } else if (typeName.equals(serdeConstants.INT_TYPE_NAME)) {
-        columnOIs.add(PrimitiveObjectInspectorFactory.javaIntObjectInspector);
-      } else if (typeName.equals(serdeConstants.BIGINT_TYPE_NAME)) {
-       columnOIs.add(PrimitiveObjectInspectorFactory.javaLongObjectInspector);
-      } else if (typeName.equals(serdeConstants.FLOAT_TYPE_NAME)) {
-        columnOIs.add(PrimitiveObjectInspectorFactory.javaFloatObjectInspector);
-      } else if (typeName.equals(serdeConstants.DOUBLE_TYPE_NAME)) {
-       columnOIs.add(PrimitiveObjectInspectorFactory.javaDoubleObjectInspector);
-      } else if (typeName.equals(serdeConstants.BOOLEAN_TYPE_NAME)) {
-        columnOIs.add(PrimitiveObjectInspectorFactory.javaBooleanObjectInspector);
-      } else if (typeName.equals(serdeConstants.TIMESTAMP_TYPE_NAME)) {
-        columnOIs.add(PrimitiveObjectInspectorFactory.javaTimestampObjectInspector);
-      } else if (typeName.equals(serdeConstants.DATE_TYPE_NAME)) {
-        columnOIs.add(PrimitiveObjectInspectorFactory.javaDateObjectInspector);
-      } else if (typeName.equals(serdeConstants.DECIMAL_TYPE_NAME)) {
-        columnOIs.add(PrimitiveObjectInspectorFactory.javaHiveDecimalObjectInspector);
-      }  else if (typeInfo instanceof PrimitiveTypeInfo
-          &&
-          ((PrimitiveTypeInfo) typeInfo).getPrimitiveCategory() == PrimitiveCategory.VARCHAR) {
-        VarcharTypeParams varcharParams = (VarcharTypeParams)
-            ParameterizedPrimitiveTypeUtils.getTypeParamsFromTypeInfo(typeInfo);
-        columnOIs.add(PrimitiveObjectInspectorFactory.getPrimitiveJavaObjectInspector(
-            (PrimitiveTypeInfo) typeInfo));
+      if (typeInfo instanceof PrimitiveTypeInfo) {
+        PrimitiveTypeInfo pti = (PrimitiveTypeInfo) columnTypes.get(c);
+        AbstractPrimitiveJavaObjectInspector oi =
+            PrimitiveObjectInspectorFactory.getPrimitiveJavaObjectInspector(pti);
+        columnOIs.add(oi);
       } else {
-         throw new SerDeException(getClass().getName()
-         + " doesn't allow column [" + c + "] named "
-         + columnNames.get(c) + " with type " + columnTypes.get(c));
-       }
+        throw new SerDeException(getClass().getName()
+            + " doesn't allow column [" + c + "] named "
+            + columnNames.get(c) + " with type " + columnTypes.get(c));
+      }
      }
 
     // StandardStruct uses ArrayList to store the row.
@@ -259,15 +232,10 @@ public class RegexSerDe extends Abstract
           d = Date.valueOf(t);
           row.set(c, d);
         } else if (typeName.equals(serdeConstants.DECIMAL_TYPE_NAME)) {
-          HiveDecimal bd;
-          bd = new HiveDecimal(t);
+          HiveDecimal bd = HiveDecimal.create(t);
           row.set(c, bd);
-        } else if (typeInfo instanceof PrimitiveTypeInfo
-            &&
-            ((PrimitiveTypeInfo) typeInfo).getPrimitiveCategory() == PrimitiveCategory.VARCHAR) {
-          VarcharTypeParams varcharParams = (VarcharTypeParams)
-              ParameterizedPrimitiveTypeUtils.getTypeParamsFromTypeInfo(typeInfo);
-          HiveVarchar hv = new HiveVarchar(t, varcharParams != null ? varcharParams.length : -1);
+        } else if (typeInfo instanceof VarcharTypeInfo) {
+          HiveVarchar hv = new HiveVarchar(t, ((VarcharTypeInfo)typeInfo).getLength());
           row.set(c, hv);
         }
       } catch (RuntimeException e) {

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroObjectInspectorGenerator.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroObjectInspectorGenerator.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroObjectInspectorGenerator.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroObjectInspectorGenerator.java Tue Oct 22 17:58:59 2013
@@ -17,6 +17,9 @@
  */
 package org.apache.hadoop.hive.serde2.avro;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.avro.Schema;
 import org.apache.hadoop.hive.serde2.SerDeException;
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
@@ -25,15 +28,11 @@ import org.apache.hadoop.hive.serde2.obj
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
 import org.apache.hadoop.hive.serde2.typeinfo.ListTypeInfo;
 import org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.ParameterizedPrimitiveTypeUtils;
 import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
 import org.apache.hadoop.hive.serde2.typeinfo.StructTypeInfo;
 import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
 import org.apache.hadoop.hive.serde2.typeinfo.UnionTypeInfo;
 
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * An AvroObjectInspectorGenerator takes an Avro schema and creates the three
  * data structures Hive needs to work with Avro-encoded data:
@@ -56,9 +55,10 @@ class AvroObjectInspectorGenerator {
   }
 
   private void verifySchemaIsARecord(Schema schema) throws SerDeException {
-    if(!schema.getType().equals(Schema.Type.RECORD))
+    if(!schema.getType().equals(Schema.Type.RECORD)) {
       throw new AvroSerdeException("Schema for table must be of type RECORD. " +
           "Received type: " + schema.getType());
+    }
   }
 
   public List<String> getColumnNames() {
@@ -86,8 +86,9 @@ class AvroObjectInspectorGenerator {
   private ObjectInspector createObjectInspectorWorker(TypeInfo ti) throws SerDeException {
     // We don't need to do the check for U[T,Null] here because we'll give the real type
     // at deserialization and the object inspector will never see the actual union.
-    if(!supportedCategories(ti))
+    if(!supportedCategories(ti)) {
       throw new AvroSerdeException("Don't yet support this type: " + ti);
+    }
     ObjectInspector result;
     switch(ti.getCategory()) {
       case PRIMITIVE:

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/binarysortable/BinarySortableSerDe.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/binarysortable/BinarySortableSerDe.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/binarysortable/BinarySortableSerDe.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/binarysortable/BinarySortableSerDe.java Tue Oct 22 17:58:59 2013
@@ -20,8 +20,6 @@ package org.apache.hadoop.hive.serde2.bi
 
 import java.io.IOException;
 import java.math.BigInteger;
-import java.nio.ByteBuffer;
-import java.nio.charset.CharacterCodingException;
 import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -33,7 +31,6 @@ import java.util.Properties;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hive.common.type.HiveVarchar;
 import org.apache.hadoop.hive.common.type.HiveDecimal;
 import org.apache.hadoop.hive.serde.serdeConstants;
 import org.apache.hadoop.hive.serde2.AbstractSerDe;
@@ -42,8 +39,8 @@ import org.apache.hadoop.hive.serde2.Ser
 import org.apache.hadoop.hive.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.DateWritable;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
-import org.apache.hadoop.hive.serde2.io.HiveVarcharWritable;
 import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
+import org.apache.hadoop.hive.serde2.io.HiveVarcharWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
 import org.apache.hadoop.hive.serde2.io.TimestampWritable;
 import org.apache.hadoop.hive.serde2.objectinspector.ListObjectInspector;
@@ -60,24 +57,22 @@ import org.apache.hadoop.hive.serde2.obj
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.DateObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.DoubleObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.FloatObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.HiveVarcharObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.HiveDecimalObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.primitive.HiveVarcharObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.IntObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.LongObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.ShortObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.StringObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.TimestampObjectInspector;
-import org.apache.hadoop.hive.serde2.typeinfo.ParameterizedPrimitiveTypeUtils.HiveVarcharSerDeHelper;
-import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeParams;
 import org.apache.hadoop.hive.serde2.typeinfo.ListTypeInfo;
 import org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.ParameterizedPrimitiveTypeUtils;
 import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
 import org.apache.hadoop.hive.serde2.typeinfo.StructTypeInfo;
 import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
 import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
 import org.apache.hadoop.hive.serde2.typeinfo.UnionTypeInfo;
+import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
 import org.apache.hadoop.io.BooleanWritable;
 import org.apache.hadoop.io.BytesWritable;
 import org.apache.hadoop.io.FloatWritable;
@@ -410,7 +405,7 @@ public class BinarySortableSerDe extends
 
         String digits = new String(decimalBuffer, 0, length, decimalCharSet);
         BigInteger bi = new BigInteger(digits);
-        HiveDecimal bd = new HiveDecimal(bi).scaleByPowerOfTen(factor-length);
+        HiveDecimal bd = HiveDecimal.create(bi).scaleByPowerOfTen(factor-length);
 
         if (!positive) {
           bd = bd.negate();
@@ -531,11 +526,7 @@ public class BinarySortableSerDe extends
   }
 
   static int getVarcharMaxLength(TypeInfo type) {
-    VarcharTypeParams typeParams = (VarcharTypeParams) ((PrimitiveTypeInfo) type).getTypeParams();
-    if (typeParams != null ) {
-      return typeParams.length;
-    }
-    return -1;
+    return ((VarcharTypeInfo)type).getLength();
   }
 
   static Text deserializeText(InputByteBuffer buffer, boolean invert, Text r)

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/dynamic_type/DynamicSerDe.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/dynamic_type/DynamicSerDe.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/dynamic_type/DynamicSerDe.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/dynamic_type/DynamicSerDe.java Tue Oct 22 17:58:59 2013
@@ -38,7 +38,6 @@ import org.apache.hadoop.hive.serde2.obj
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils.PrimitiveTypeEntry;
 import org.apache.hadoop.hive.serde2.thrift.ConfigurableTProtocol;
 import org.apache.hadoop.hive.serde2.thrift.TReflectionUtils;
-import org.apache.hadoop.hive.serde2.typeinfo.ParameterizedPrimitiveTypeUtils;
 import org.apache.hadoop.io.BytesWritable;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.io.Writable;
@@ -74,6 +73,7 @@ public class DynamicSerDe extends Abstra
 
   TIOStreamTransport tios;
 
+  @Override
   public void initialize(Configuration job, Properties tbl) throws SerDeException {
     try {
 
@@ -146,6 +146,7 @@ public class DynamicSerDe extends Abstra
 
   Object deserializeReuse = null;
 
+  @Override
   public Object deserialize(Writable field) throws SerDeException {
     try {
       if (field instanceof Text) {
@@ -177,7 +178,7 @@ public class DynamicSerDe extends Abstra
     } else if (bt.isPrimitive()) {
       PrimitiveTypeEntry pte = PrimitiveObjectInspectorUtils
           .getTypeEntryFromPrimitiveJavaClass(bt.getRealType());
-      return PrimitiveObjectInspectorFactory.getPrimitiveJavaObjectInspector(pte);
+      return PrimitiveObjectInspectorFactory.getPrimitiveJavaObjectInspector(pte.primitiveCategory);
     } else {
       // Must be a struct
       DynamicSerDeStructBase btStruct = (DynamicSerDeStructBase) bt;
@@ -196,16 +197,19 @@ public class DynamicSerDe extends Abstra
     }
   }
 
+  @Override
   public ObjectInspector getObjectInspector() throws SerDeException {
     return dynamicSerDeStructBaseToObjectInspector(bt);
   }
 
+  @Override
   public Class<? extends Writable> getSerializedClass() {
     return BytesWritable.class;
   }
 
   BytesWritable ret = new BytesWritable();
 
+  @Override
   public Writable serialize(Object obj, ObjectInspector objInspector) throws SerDeException {
     try {
       bos_.reset();
@@ -220,6 +224,7 @@ public class DynamicSerDe extends Abstra
   }
 
 
+  @Override
   public SerDeStats getSerDeStats() {
     // no support for statistics
     return null;

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/io/HiveDecimalWritable.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/io/HiveDecimalWritable.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/io/HiveDecimalWritable.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/io/HiveDecimalWritable.java Tue Oct 22 17:58:59 2013
@@ -81,7 +81,7 @@ public class HiveDecimalWritable impleme
   }
 
   public HiveDecimal getHiveDecimal() {
-    return new HiveDecimal(new BigInteger(internalStorage), scale);
+    return HiveDecimal.create(new BigInteger(internalStorage), scale);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyFactory.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyFactory.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyFactory.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyFactory.java Tue Oct 22 17:58:59 2013
@@ -54,7 +54,6 @@ import org.apache.hadoop.hive.serde2.obj
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory;
 import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
-import org.apache.hadoop.hive.serde2.typeinfo.BaseTypeParams;
 import org.apache.hadoop.hive.serde2.typeinfo.ListTypeInfo;
 import org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo;
 import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
@@ -219,7 +218,6 @@ public final class LazyFactory {
     ObjectInspector.Category c = typeInfo.getCategory();
     switch (c) {
     case PRIMITIVE:
-      BaseTypeParams typeParams = ((PrimitiveTypeInfo)typeInfo).getTypeParams();
       return LazyPrimitiveObjectInspectorFactory.getLazyObjectInspector(
           (PrimitiveTypeInfo) typeInfo, escaped, escapeChar);
     case MAP:

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveDecimal.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveDecimal.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveDecimal.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveDecimal.java Tue Oct 22 17:58:59 2013
@@ -52,15 +52,20 @@ public class LazyHiveDecimal extends Laz
     String byteData = null;
     try {
       byteData = Text.decode(bytes.getData(), start, length);
-      data.set(new HiveDecimal(byteData));
-      isNull = false;
-    } catch (NumberFormatException e) {
-      isNull = true;
-      LOG.debug("Data not in the HiveDecimal data type range so converted to null. Given data is :"
-          + byteData, e);
     } catch (CharacterCodingException e) {
       isNull = true;
       LOG.debug("Data not in the HiveDecimal data type range so converted to null.", e);
+      return;
+    }
+
+    HiveDecimal dec = HiveDecimal.create(byteData);
+    if (dec != null) {
+      data.set(dec);
+      isNull = false;
+    } else {
+      LOG.debug("Data not in the HiveDecimal data type range so converted to null. Given data is :"
+          + byteData);
+      isNull = true;
     }
   }
 

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveVarchar.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveVarchar.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveVarchar.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveVarchar.java Tue Oct 22 17:58:59 2013
@@ -23,7 +23,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.serde2.io.HiveVarcharWritable;
 import org.apache.hadoop.hive.serde2.lazy.objectinspector.primitive.LazyHiveVarcharObjectInspector;
-import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeParams;
+import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
 import org.apache.hadoop.io.Text;
 
 /**
@@ -39,11 +39,7 @@ public class LazyHiveVarchar extends
 
   public LazyHiveVarchar(LazyHiveVarcharObjectInspector oi) {
     super(oi);
-    VarcharTypeParams typeParams = (VarcharTypeParams)oi.getTypeParams();
-    if (typeParams == null) {
-      throw new RuntimeException("varchar type used without type params");
-    }
-    maxLength = typeParams.getLength();
+    maxLength = ((VarcharTypeInfo)oi.getTypeInfo()).getLength();
     data = new HiveVarcharWritable();
   }
 

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyUtils.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyUtils.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyUtils.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyUtils.java Tue Oct 22 17:58:59 2013
@@ -37,6 +37,7 @@ import org.apache.hadoop.hive.serde2.obj
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.BinaryObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.BooleanObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.ByteObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.primitive.DateObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.DoubleObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.FloatObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.HiveDecimalObjectInspector;
@@ -45,7 +46,6 @@ import org.apache.hadoop.hive.serde2.obj
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.LongObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.ShortObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.StringObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.DateObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.TimestampObjectInspector;
 import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
 import org.apache.hadoop.io.BytesWritable;

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/AbstractPrimitiveLazyObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/AbstractPrimitiveLazyObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/AbstractPrimitiveLazyObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/AbstractPrimitiveLazyObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -19,7 +19,7 @@ package org.apache.hadoop.hive.serde2.la
 
 import org.apache.hadoop.hive.serde2.lazy.LazyPrimitive;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.AbstractPrimitiveObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils.PrimitiveTypeEntry;
+import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
 import org.apache.hadoop.io.Writable;
 
 /**
@@ -31,8 +31,8 @@ public abstract class AbstractPrimitiveL
   protected AbstractPrimitiveLazyObjectInspector() {
     super();
   }
-  protected AbstractPrimitiveLazyObjectInspector(PrimitiveTypeEntry typeEntry) {
-    super(typeEntry);
+  protected AbstractPrimitiveLazyObjectInspector(PrimitiveTypeInfo typeInfo) {
+    super(typeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyBinaryObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyBinaryObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyBinaryObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyBinaryObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -21,7 +21,7 @@ package org.apache.hadoop.hive.serde2.la
 import org.apache.hadoop.hive.serde2.lazy.LazyBinary;
 import org.apache.hadoop.hive.serde2.lazy.LazyUtils;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.BinaryObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 import org.apache.hadoop.io.BytesWritable;
 
 public class LazyBinaryObjectInspector extends
@@ -29,7 +29,7 @@ public class LazyBinaryObjectInspector e
     BinaryObjectInspector {
 
   public LazyBinaryObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.binaryTypeEntry);
+    super(TypeInfoFactory.binaryTypeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyBooleanObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyBooleanObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyBooleanObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyBooleanObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -19,7 +19,7 @@ package org.apache.hadoop.hive.serde2.la
 
 import org.apache.hadoop.hive.serde2.lazy.LazyBoolean;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.BooleanObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 import org.apache.hadoop.io.BooleanWritable;
 
 /**
@@ -30,7 +30,7 @@ public class LazyBooleanObjectInspector 
     BooleanObjectInspector {
 
   LazyBooleanObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.booleanTypeEntry);
+    super(TypeInfoFactory.booleanTypeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyByteObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyByteObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyByteObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyByteObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -20,7 +20,7 @@ package org.apache.hadoop.hive.serde2.la
 import org.apache.hadoop.hive.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.lazy.LazyByte;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.ByteObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 
 /**
  * A WritableByteObjectInspector inspects a ByteWritable Object.
@@ -30,7 +30,7 @@ public class LazyByteObjectInspector ext
     ByteObjectInspector {
 
   LazyByteObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.byteTypeEntry);
+    super(TypeInfoFactory.byteTypeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyDateObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyDateObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyDateObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyDateObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -22,7 +22,7 @@ import java.sql.Date;
 import org.apache.hadoop.hive.serde2.io.DateWritable;
 import org.apache.hadoop.hive.serde2.lazy.LazyDate;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.DateObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 
 /**
  * A WritableDateObjectInspector inspects a DateWritable Object.
@@ -32,7 +32,7 @@ public class LazyDateObjectInspector
     implements DateObjectInspector {
 
   protected LazyDateObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.dateTypeEntry);
+    super(TypeInfoFactory.dateTypeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyDoubleObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyDoubleObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyDoubleObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyDoubleObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -20,7 +20,7 @@ package org.apache.hadoop.hive.serde2.la
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 import org.apache.hadoop.hive.serde2.lazy.LazyDouble;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.DoubleObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 
 /**
  * A WritableDoubleObjectInspector inspects a DoubleWritable Object.
@@ -30,7 +30,7 @@ public class LazyDoubleObjectInspector e
     DoubleObjectInspector {
 
   LazyDoubleObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.doubleTypeEntry);
+    super(TypeInfoFactory.doubleTypeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyFloatObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyFloatObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyFloatObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyFloatObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -19,7 +19,7 @@ package org.apache.hadoop.hive.serde2.la
 
 import org.apache.hadoop.hive.serde2.lazy.LazyFloat;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.FloatObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 import org.apache.hadoop.io.FloatWritable;
 
 /**
@@ -30,7 +30,7 @@ public class LazyFloatObjectInspector ex
     FloatObjectInspector {
 
   LazyFloatObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.floatTypeEntry);
+    super(TypeInfoFactory.floatTypeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyHiveDecimalObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyHiveDecimalObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyHiveDecimalObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyHiveDecimalObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -22,14 +22,14 @@ import org.apache.hadoop.hive.common.typ
 import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
 import org.apache.hadoop.hive.serde2.lazy.LazyHiveDecimal;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.HiveDecimalObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 
 public class LazyHiveDecimalObjectInspector
     extends AbstractPrimitiveLazyObjectInspector<HiveDecimalWritable>
     implements HiveDecimalObjectInspector {
 
   protected LazyHiveDecimalObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.decimalTypeEntry);
+    super(TypeInfoFactory.decimalTypeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyHiveVarcharObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyHiveVarcharObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyHiveVarcharObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyHiveVarcharObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -22,9 +22,8 @@ import org.apache.hadoop.hive.common.typ
 import org.apache.hadoop.hive.serde2.io.HiveVarcharWritable;
 import org.apache.hadoop.hive.serde2.lazy.LazyHiveVarchar;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.HiveVarcharObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils.PrimitiveTypeEntry;
-import org.apache.hadoop.hive.serde2.typeinfo.ParameterizedPrimitiveTypeUtils;
-import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeParams;
+import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
+import org.apache.hadoop.hive.serde2.typeinfo.VarcharUtils;
 
 public class LazyHiveVarcharObjectInspector
     extends AbstractPrimitiveLazyObjectInspector<HiveVarcharWritable>
@@ -34,12 +33,8 @@ public class LazyHiveVarcharObjectInspec
   public LazyHiveVarcharObjectInspector() {
   }
 
-  public LazyHiveVarcharObjectInspector(PrimitiveTypeEntry typeEntry) {
-    super(typeEntry);
-    if (typeEntry.primitiveCategory != PrimitiveCategory.VARCHAR) {
-      throw new RuntimeException(
-          "TypeEntry of type varchar expected, got " + typeEntry.primitiveCategory);
-    }
+  public LazyHiveVarcharObjectInspector(VarcharTypeInfo typeInfo) {
+    super(typeInfo);
   }
 
   @Override
@@ -60,10 +55,9 @@ public class LazyHiveVarcharObjectInspec
     }
 
     HiveVarchar ret = ((LazyHiveVarchar) o).getWritableObject().getHiveVarchar();
-    VarcharTypeParams typeParams = (VarcharTypeParams)getTypeParams();
-    if (!ParameterizedPrimitiveTypeUtils.doesPrimitiveMatchTypeParams(
-        ret, typeParams)) {
-      HiveVarchar newValue = new HiveVarchar(ret, typeParams.length);
+    if (!VarcharUtils.doesPrimitiveMatchTypeParams(
+        ret, (VarcharTypeInfo)typeInfo)) {
+      HiveVarchar newValue = new HiveVarchar(ret, ((VarcharTypeInfo)typeInfo).getLength());
       return newValue;
     }
     return ret;

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyIntObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyIntObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyIntObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyIntObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -19,7 +19,7 @@ package org.apache.hadoop.hive.serde2.la
 
 import org.apache.hadoop.hive.serde2.lazy.LazyInteger;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.IntObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 import org.apache.hadoop.io.IntWritable;
 
 /**
@@ -30,7 +30,7 @@ public class LazyIntObjectInspector exte
     IntObjectInspector {
 
   LazyIntObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.intTypeEntry);
+    super(TypeInfoFactory.intTypeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyLongObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyLongObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyLongObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyLongObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -19,7 +19,7 @@ package org.apache.hadoop.hive.serde2.la
 
 import org.apache.hadoop.hive.serde2.lazy.LazyLong;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.LongObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 import org.apache.hadoop.io.LongWritable;
 
 /**
@@ -30,7 +30,7 @@ public class LazyLongObjectInspector ext
     LongObjectInspector {
 
   LazyLongObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.longTypeEntry);
+    super(TypeInfoFactory.longTypeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyPrimitiveObjectInspectorFactory.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyPrimitiveObjectInspectorFactory.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyPrimitiveObjectInspectorFactory.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyPrimitiveObjectInspectorFactory.java Tue Oct 22 17:58:59 2013
@@ -20,14 +20,13 @@ package org.apache.hadoop.hive.serde2.la
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.Map;
 
-import org.apache.hadoop.hive.serde2.SerDeException;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
+import org.apache.hadoop.hive.serde.serdeConstants;
 import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils.PrimitiveTypeEntry;
-import org.apache.hadoop.hive.serde2.typeinfo.BaseTypeParams;
-import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeSpec;
+import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
+import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
 
 /**
  * LazyPrimitiveObjectInspectorFactory is the primary way to create new
@@ -67,115 +66,88 @@ public final class LazyPrimitiveObjectIn
       new LazyBinaryObjectInspector();
   public static final LazyHiveDecimalObjectInspector LAZY_BIG_DECIMAL_OBJECT_INSPECTOR =
       new LazyHiveDecimalObjectInspector();
-  public static final LazyHiveVarcharObjectInspector LAZY_VARCHAR_OBJECT_INSPECTOR =
-      new LazyHiveVarcharObjectInspector(PrimitiveObjectInspectorUtils.varcharTypeEntry);
 
-  static HashMap<ArrayList<Object>, LazyStringObjectInspector> cachedLazyStringObjectInspector =
-      new HashMap<ArrayList<Object>, LazyStringObjectInspector>();
-
-  public static LazyStringObjectInspector getLazyStringObjectInspector(
-      boolean escaped, byte escapeChar) {
-    ArrayList<Object> signature = new ArrayList<Object>();
-    signature.add(Boolean.valueOf(escaped));
-    signature.add(Byte.valueOf(escapeChar));
-    LazyStringObjectInspector result = cachedLazyStringObjectInspector
-        .get(signature);
-    if (result == null) {
-      result = new LazyStringObjectInspector(escaped, escapeChar);
-      cachedLazyStringObjectInspector.put(signature, result);
-    }
-    return result;
+  private LazyPrimitiveObjectInspectorFactory() {
+    // prevent instantiation
   }
 
-  static PrimitiveObjectInspectorUtils.ParameterizedObjectInspectorMap
-    cachedParameterizedLazyObjectInspectors =
-      new PrimitiveObjectInspectorUtils.ParameterizedObjectInspectorMap();
-
-  public static PrimitiveObjectInspector getParameterizedObjectInspector(
-      PrimitiveTypeSpec typeSpec) {
-    PrimitiveCategory primitiveCategory = typeSpec.getPrimitiveCategory();
-    BaseTypeParams typeParams = typeSpec.getTypeParams();
-    PrimitiveObjectInspector poi =
-        cachedParameterizedLazyObjectInspectors.getObjectInspector(typeSpec);
-    if (poi == null) {
-      // Object inspector hasn't been cached for this type/params yet, create now
-      switch (primitiveCategory) {
-        case VARCHAR:
-          PrimitiveTypeEntry typeEntry = PrimitiveObjectInspectorUtils.getTypeEntryFromTypeSpecs(
-              primitiveCategory,
-              typeParams);
-          poi = new LazyHiveVarcharObjectInspector(typeEntry);
-          poi.setTypeParams(typeParams);
-          cachedParameterizedLazyObjectInspectors.setObjectInspector(poi);
-          break;
-
-        default:
-          throw new RuntimeException(
-              "Primitve type " + primitiveCategory + " should not take parameters");
-      }
-    }
+  private static HashMap<ArrayList<Object>, LazyStringObjectInspector> cachedLazyStringObjectInspector =
+      new HashMap<ArrayList<Object>, LazyStringObjectInspector>();
 
-    return poi;
+  private static Map<PrimitiveTypeInfo, AbstractPrimitiveLazyObjectInspector<?>>
+     cachedPrimitiveLazyObjectInspectors =
+    new HashMap<PrimitiveTypeInfo, AbstractPrimitiveLazyObjectInspector<?>>();
+  static {
+    cachedPrimitiveLazyObjectInspectors.put(TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.BOOLEAN_TYPE_NAME),
+        LAZY_BOOLEAN_OBJECT_INSPECTOR);
+    cachedPrimitiveLazyObjectInspectors.put(TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.TINYINT_TYPE_NAME),
+        LAZY_BYTE_OBJECT_INSPECTOR);
+    cachedPrimitiveLazyObjectInspectors.put(TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.SMALLINT_TYPE_NAME),
+        LAZY_SHORT_OBJECT_INSPECTOR);
+    cachedPrimitiveLazyObjectInspectors.put(TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.INT_TYPE_NAME),
+        LAZY_INT_OBJECT_INSPECTOR);
+    cachedPrimitiveLazyObjectInspectors.put(TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.FLOAT_TYPE_NAME),
+        LAZY_FLOAT_OBJECT_INSPECTOR);
+    cachedPrimitiveLazyObjectInspectors.put(TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.DOUBLE_TYPE_NAME),
+        LAZY_DOUBLE_OBJECT_INSPECTOR);
+    cachedPrimitiveLazyObjectInspectors.put(TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.BIGINT_TYPE_NAME),
+        LAZY_LONG_OBJECT_INSPECTOR);
+    cachedPrimitiveLazyObjectInspectors.put(TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.VOID_TYPE_NAME),
+        LAZY_VOID_OBJECT_INSPECTOR);
+    cachedPrimitiveLazyObjectInspectors.put(TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.DATE_TYPE_NAME),
+        LAZY_DATE_OBJECT_INSPECTOR);
+    cachedPrimitiveLazyObjectInspectors.put(TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.TIMESTAMP_TYPE_NAME),
+        LAZY_TIMESTAMP_OBJECT_INSPECTOR);
+    cachedPrimitiveLazyObjectInspectors.put(TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.DECIMAL_TYPE_NAME),
+        LAZY_BIG_DECIMAL_OBJECT_INSPECTOR);
+    cachedPrimitiveLazyObjectInspectors.put(TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.BINARY_TYPE_NAME),
+        LAZY_BINARY_OBJECT_INSPECTOR);
   }
+
   public static AbstractPrimitiveLazyObjectInspector<?> getLazyObjectInspector(
-      PrimitiveCategory primitiveCategory, boolean escaped, byte escapeChar) {
-    switch (primitiveCategory) {
-    case BOOLEAN:
-      return LAZY_BOOLEAN_OBJECT_INSPECTOR;
-    case BYTE:
-      return LAZY_BYTE_OBJECT_INSPECTOR;
-    case SHORT:
-      return LAZY_SHORT_OBJECT_INSPECTOR;
-    case INT:
-      return LAZY_INT_OBJECT_INSPECTOR;
-    case LONG:
-      return LAZY_LONG_OBJECT_INSPECTOR;
-    case FLOAT:
-      return LAZY_FLOAT_OBJECT_INSPECTOR;
-    case DOUBLE:
-      return LAZY_DOUBLE_OBJECT_INSPECTOR;
+      PrimitiveTypeInfo typeInfo, boolean escaped, byte escapeChar) {
+    PrimitiveCategory primitiveCategory = typeInfo.getPrimitiveCategory();
+
+    switch(primitiveCategory) {
     case STRING:
       return getLazyStringObjectInspector(escaped, escapeChar);
-    case VARCHAR:
-      return LAZY_VARCHAR_OBJECT_INSPECTOR;
-    case BINARY:
-      return LAZY_BINARY_OBJECT_INSPECTOR;
-    case VOID:
-      return LAZY_VOID_OBJECT_INSPECTOR;
-    case DATE:
-      return LAZY_DATE_OBJECT_INSPECTOR;
-    case TIMESTAMP:
-      return LAZY_TIMESTAMP_OBJECT_INSPECTOR;
-    case DECIMAL:
-      return LAZY_BIG_DECIMAL_OBJECT_INSPECTOR;
     default:
-      throw new RuntimeException("Internal error: Cannot find ObjectInspector "
-          + " for " + primitiveCategory);
+     return getLazyObjectInspector(typeInfo);
     }
   }
 
   public static AbstractPrimitiveLazyObjectInspector<?> getLazyObjectInspector(
-      PrimitiveTypeSpec typeSpec, boolean escaped, byte escapeChar) {
-    PrimitiveCategory primitiveCategory = typeSpec.getPrimitiveCategory();
-    BaseTypeParams typeParams = typeSpec.getTypeParams();
-
-    if (typeParams == null) {
-      return getLazyObjectInspector(primitiveCategory, escaped, escapeChar);
-    } else {
-      switch(primitiveCategory) {
-        case VARCHAR:
-          LazyHiveVarcharObjectInspector oi = (LazyHiveVarcharObjectInspector)
-            getParameterizedObjectInspector(typeSpec);
-          return oi;
-
-        default:
-          throw new RuntimeException("Type " + primitiveCategory + " does not take parameters");
-      }
+      PrimitiveTypeInfo typeInfo) {
+    AbstractPrimitiveLazyObjectInspector<?> poi = cachedPrimitiveLazyObjectInspectors.get(typeInfo);
+    if (poi != null) {
+      return poi;
+    }
+
+    // Object inspector hasn't been cached for this type/params yet, create now
+    switch (typeInfo.getPrimitiveCategory()) {
+    case VARCHAR:
+      poi = new LazyHiveVarcharObjectInspector((VarcharTypeInfo)typeInfo);
+      break;
+    default:
+      throw new RuntimeException(
+          "Primitve type " + typeInfo.getPrimitiveCategory() + " should not take parameters");
     }
+
+    cachedPrimitiveLazyObjectInspectors.put(typeInfo, poi);
+    return poi;
   }
 
-  private LazyPrimitiveObjectInspectorFactory() {
-    // prevent instantiation
+  public static LazyStringObjectInspector getLazyStringObjectInspector(boolean escaped, byte escapeChar) {
+    ArrayList<Object> signature = new ArrayList<Object>();
+    signature.add(Boolean.valueOf(escaped));
+    signature.add(Byte.valueOf(escapeChar));
+    LazyStringObjectInspector result = cachedLazyStringObjectInspector
+        .get(signature);
+    if (result == null) {
+      result = new LazyStringObjectInspector(escaped, escapeChar);
+      cachedLazyStringObjectInspector.put(signature, result);
+    }
+    return result;
   }
 
 }

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyShortObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyShortObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyShortObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyShortObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -19,8 +19,8 @@ package org.apache.hadoop.hive.serde2.la
 
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
 import org.apache.hadoop.hive.serde2.lazy.LazyShort;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.ShortObjectInspector;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 
 /**
  * A WritableShortObjectInspector inspects a ShortWritable Object.
@@ -30,7 +30,7 @@ public class LazyShortObjectInspector ex
     ShortObjectInspector {
 
   LazyShortObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.shortTypeEntry);
+    super(TypeInfoFactory.shortTypeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyStringObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyStringObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyStringObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyStringObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -18,8 +18,8 @@
 package org.apache.hadoop.hive.serde2.lazy.objectinspector.primitive;
 
 import org.apache.hadoop.hive.serde2.lazy.LazyString;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.StringObjectInspector;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 import org.apache.hadoop.io.Text;
 
 /**
@@ -36,7 +36,7 @@ public class LazyStringObjectInspector e
   }
 
   LazyStringObjectInspector(boolean escaped, byte escapeChar) {
-    super(PrimitiveObjectInspectorUtils.stringTypeEntry);
+    super(TypeInfoFactory.stringTypeInfo);
     this.escaped = escaped;
     this.escapeChar = escapeChar;
   }

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyTimestampObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyTimestampObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyTimestampObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyTimestampObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -21,15 +21,15 @@ import java.sql.Timestamp;
 
 import org.apache.hadoop.hive.serde2.io.TimestampWritable;
 import org.apache.hadoop.hive.serde2.lazy.LazyTimestamp;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.TimestampObjectInspector;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 
 public class LazyTimestampObjectInspector
     extends AbstractPrimitiveLazyObjectInspector<TimestampWritable>
     implements TimestampObjectInspector {
 
   protected LazyTimestampObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.timestampTypeEntry);
+    super(TypeInfoFactory.timestampTypeInfo);
   }
 
   public Object copyObject(Object o) {

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyVoidObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyVoidObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyVoidObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyVoidObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -17,8 +17,8 @@
  */
 package org.apache.hadoop.hive.serde2.lazy.objectinspector.primitive;
 
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.VoidObjectInspector;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 import org.apache.hadoop.io.NullWritable;
 
 /**
@@ -29,7 +29,7 @@ public class LazyVoidObjectInspector ext
     VoidObjectInspector {
 
   LazyVoidObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.voidTypeEntry);
+    super(TypeInfoFactory.voidTypeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinaryHiveVarchar.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinaryHiveVarchar.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinaryHiveVarchar.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinaryHiveVarchar.java Tue Oct 22 17:58:59 2013
@@ -20,7 +20,7 @@ package org.apache.hadoop.hive.serde2.la
 import org.apache.hadoop.hive.serde2.io.HiveVarcharWritable;
 import org.apache.hadoop.hive.serde2.lazy.ByteArrayRef;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableHiveVarcharObjectInspector;
-import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeParams;
+import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
 import org.apache.hadoop.io.Text;
 
 public class LazyBinaryHiveVarchar extends
@@ -30,12 +30,7 @@ public class LazyBinaryHiveVarchar exten
 
   LazyBinaryHiveVarchar(WritableHiveVarcharObjectInspector oi) {
     super(oi);
-    // Check for params
-    VarcharTypeParams typeParams = (VarcharTypeParams)oi.getTypeParams();
-    if (typeParams == null) {
-      throw new RuntimeException("varchar type used without type params");
-    }
-    maxLength = typeParams.length;
+    maxLength = ((VarcharTypeInfo)oi.getTypeInfo()).getLength();
     data = new HiveVarcharWritable();
   }
 

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorConverters.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorConverters.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorConverters.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorConverters.java Tue Oct 22 17:58:59 2013
@@ -39,6 +39,7 @@ import org.apache.hadoop.hive.serde2.obj
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.SettableTimestampObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.VoidObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableStringObjectInspector;
+import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
 
 /**
  * ObjectInspectorConverters.
@@ -222,7 +223,8 @@ public final class ObjectInspectorConver
     case PRIMITIVE:
       // Create a writable object inspector for primitive type and return it.
       PrimitiveObjectInspector primOutputOI = (PrimitiveObjectInspector) outputOI;
-      return PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(primOutputOI);
+      return PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(
+          (PrimitiveTypeInfo)primOutputOI.getTypeInfo());
     case STRUCT:
       StructObjectInspector structOutputOI = (StructObjectInspector) outputOI;
       // create a standard settable struct object inspector.

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorUtils.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorUtils.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorUtils.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorUtils.java Tue Oct 22 17:58:59 2013
@@ -65,6 +65,7 @@ import org.apache.hadoop.hive.serde2.obj
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.StringObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.TimestampObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableStringObjectInspector;
+import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
 import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
 import org.apache.hadoop.hive.shims.ShimLoader;
 import org.apache.hadoop.io.BytesWritable;
@@ -102,7 +103,8 @@ public final class ObjectInspectorUtils 
     if (oi.getCategory() == Category.PRIMITIVE) {
       PrimitiveObjectInspector poi = (PrimitiveObjectInspector) oi;
       if (!(poi instanceof AbstractPrimitiveWritableObjectInspector)) {
-        return PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(poi);
+        return PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(
+            (PrimitiveTypeInfo)poi.getTypeInfo());
       }
     }
     return oi;
@@ -126,23 +128,24 @@ public final class ObjectInspectorUtils 
       switch (objectInspectorOption) {
       case DEFAULT: {
         if (poi.preferWritable()) {
-          result = PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(poi);
+          result = PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(
+              poi.getTypeInfo());
         } else {
-          result = PrimitiveObjectInspectorFactory
-              .getPrimitiveJavaObjectInspector(poi);
+          result = PrimitiveObjectInspectorFactory.getPrimitiveJavaObjectInspector(
+              poi.getTypeInfo());
         }
         break;
       }
       case JAVA: {
-        result = PrimitiveObjectInspectorFactory
-            .getPrimitiveJavaObjectInspector(poi);
+        result = PrimitiveObjectInspectorFactory.getPrimitiveJavaObjectInspector(
+            poi.getTypeInfo());
         break;
       }
-      case WRITABLE: {
-        result = PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(poi);
+      case WRITABLE:
+        result = PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(
+            poi.getTypeInfo());
         break;
       }
-      }
       break;
     }
     case LIST: {
@@ -971,7 +974,7 @@ public final class ObjectInspectorUtils 
       case PRIMITIVE:
         PrimitiveObjectInspector poi = (PrimitiveObjectInspector) oi;
         return PrimitiveObjectInspectorFactory.getPrimitiveWritableConstantObjectInspector(
-            poi, writableValue);
+            poi.getTypeInfo(), writableValue);
       case LIST:
         ListObjectInspector loi = (ListObjectInspector) oi;
         return ObjectInspectorFactory.getStandardConstantListObjectInspector(

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/PrimitiveObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/PrimitiveObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/PrimitiveObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/PrimitiveObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -17,14 +17,14 @@
  */
 package org.apache.hadoop.hive.serde2.objectinspector;
 
-import org.apache.hadoop.hive.serde2.typeinfo.BaseTypeParams;
-import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeSpec;
+import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
+
 
 /**
  * PrimitiveObjectInspector.
  *
  */
-public interface PrimitiveObjectInspector extends ObjectInspector, PrimitiveTypeSpec {
+public interface PrimitiveObjectInspector extends ObjectInspector {
 
   /**
    * The primitive types supported by Hive.
@@ -34,6 +34,8 @@ public interface PrimitiveObjectInspecto
     DATE, TIMESTAMP, BINARY, DECIMAL, VARCHAR, UNKNOWN
   };
 
+  public PrimitiveTypeInfo getTypeInfo();
+
   /**
    * Get the primitive category of the PrimitiveObjectInspector.
    */
@@ -78,16 +80,4 @@ public interface PrimitiveObjectInspecto
    */
   boolean preferWritable();
 
-  /**
-   * If the type has type parameters (such as varchar length, or decimal precision/scale),
-   * then return the parameters for the type.
-   * @return A BaseTypeParams object representing the parameters for the type, or null
-   */
-  BaseTypeParams getTypeParams();
-
-  /**
-   * Set the type parameters for the type.
-   * @param newParams type parameters for the type
-   */
-  void setTypeParams(BaseTypeParams newParams);
 }

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/SettableUnionObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/SettableUnionObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/SettableUnionObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/SettableUnionObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -1,3 +1,21 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.apache.hadoop.hive.serde2.objectinspector;
 
 

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/AbstractPrimitiveJavaObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/AbstractPrimitiveJavaObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/AbstractPrimitiveJavaObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/AbstractPrimitiveJavaObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -17,7 +17,7 @@
  */
 package org.apache.hadoop.hive.serde2.objectinspector.primitive;
 
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils.PrimitiveTypeEntry;
+import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
 
 /**
  * An AbstractJavaPrimitiveObjectInspector for a Java object.
@@ -28,8 +28,8 @@ public abstract class AbstractPrimitiveJ
   protected AbstractPrimitiveJavaObjectInspector() {
     super();
   }
-  protected AbstractPrimitiveJavaObjectInspector(PrimitiveTypeEntry typeEntry) {
-    super(typeEntry);
+  protected AbstractPrimitiveJavaObjectInspector(PrimitiveTypeInfo typeInfo) {
+    super(typeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/AbstractPrimitiveObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/AbstractPrimitiveObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/AbstractPrimitiveObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/AbstractPrimitiveObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -18,8 +18,7 @@
 package org.apache.hadoop.hive.serde2.objectinspector.primitive;
 
 import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils.PrimitiveTypeEntry;
-import org.apache.hadoop.hive.serde2.typeinfo.BaseTypeParams;
+import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
 
 /**
  * An AbstractPrimitiveObjectInspector is based on
@@ -28,7 +27,7 @@ import org.apache.hadoop.hive.serde2.typ
 public abstract class AbstractPrimitiveObjectInspector implements
     PrimitiveObjectInspector {
 
-  protected PrimitiveTypeEntry typeEntry;
+  protected PrimitiveTypeInfo typeInfo;
 
   protected AbstractPrimitiveObjectInspector() {
     super();
@@ -36,8 +35,8 @@ public abstract class AbstractPrimitiveO
   /**
    * Construct a AbstractPrimitiveObjectInspector.
    */
-  protected AbstractPrimitiveObjectInspector(PrimitiveTypeEntry typeEntry) {
-    this.typeEntry = typeEntry;
+  protected AbstractPrimitiveObjectInspector(PrimitiveTypeInfo typeInfo) {
+    this.typeInfo = typeInfo;
   }
 
   /**
@@ -46,7 +45,7 @@ public abstract class AbstractPrimitiveO
    */
   @Override
   public Class<?> getJavaPrimitiveClass() {
-    return typeEntry.primitiveJavaClass;
+    return typeInfo.getPrimitiveJavaClass();
   }
 
   /**
@@ -55,7 +54,7 @@ public abstract class AbstractPrimitiveO
    */
   @Override
   public PrimitiveCategory getPrimitiveCategory() {
-    return typeEntry.primitiveCategory;
+    return typeInfo.getPrimitiveCategory();
   }
 
   /**
@@ -64,7 +63,7 @@ public abstract class AbstractPrimitiveO
    */
   @Override
   public Class<?> getPrimitiveWritableClass() {
-    return typeEntry.primitiveWritableClass;
+    return typeInfo.getPrimitiveWritableClass();
   }
 
   /**
@@ -80,19 +79,11 @@ public abstract class AbstractPrimitiveO
    */
   @Override
   public String getTypeName() {
-    return typeEntry.toString();
+    return typeInfo.getTypeName();
   }
 
-  public BaseTypeParams getTypeParams() {
-    return typeEntry.typeParams;
+  public PrimitiveTypeInfo getTypeInfo() {
+    return this.typeInfo;
   }
 
-  public void setTypeParams(BaseTypeParams newParams) {
-    BaseTypeParams typeParams = typeEntry.typeParams;
-    if (typeParams != null && !typeEntry.isParameterized()) {
-      throw new UnsupportedOperationException(
-          "Attempting to add type parameters " + typeParams + " to type " + getTypeName());
-    }
-    typeEntry.typeParams = newParams;
-  }
 }

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/AbstractPrimitiveWritableObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/AbstractPrimitiveWritableObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/AbstractPrimitiveWritableObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/AbstractPrimitiveWritableObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -17,7 +17,7 @@
  */
 package org.apache.hadoop.hive.serde2.objectinspector.primitive;
 
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils.PrimitiveTypeEntry;
+import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
 
 /**
  * An AbstractWritablePrimitiveObjectInspector for a Writable object.
@@ -29,8 +29,8 @@ public abstract class AbstractPrimitiveW
     super();
   }
   protected AbstractPrimitiveWritableObjectInspector(
-      PrimitiveTypeEntry typeEntry) {
-    super(typeEntry);
+      PrimitiveTypeInfo typeInfo) {
+    super(typeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaBinaryObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaBinaryObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaBinaryObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaBinaryObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -3,6 +3,7 @@ package org.apache.hadoop.hive.serde2.ob
 import java.util.Arrays;
 
 import org.apache.hadoop.hive.serde2.lazy.LazyUtils;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 import org.apache.hadoop.io.BytesWritable;
 
 /**
@@ -27,7 +28,7 @@ public class JavaBinaryObjectInspector e
     SettableBinaryObjectInspector {
 
   JavaBinaryObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.binaryTypeEntry);
+    super(TypeInfoFactory.binaryTypeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaBooleanObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaBooleanObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaBooleanObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaBooleanObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -17,6 +17,7 @@
  */
 package org.apache.hadoop.hive.serde2.objectinspector.primitive;
 
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 import org.apache.hadoop.io.BooleanWritable;
 
 /**
@@ -27,7 +28,7 @@ public class JavaBooleanObjectInspector 
     SettableBooleanObjectInspector {
 
   JavaBooleanObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.booleanTypeEntry);
+    super(TypeInfoFactory.booleanTypeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaByteObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaByteObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaByteObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaByteObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -18,6 +18,7 @@
 package org.apache.hadoop.hive.serde2.objectinspector.primitive;
 
 import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 
 /**
  * A JavaByteObjectInspector inspects a Java Byte Object.
@@ -26,7 +27,7 @@ public class JavaByteObjectInspector ext
     AbstractPrimitiveJavaObjectInspector implements SettableByteObjectInspector {
 
   JavaByteObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.byteTypeEntry);
+    super(TypeInfoFactory.byteTypeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaDateObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaDateObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaDateObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaDateObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -20,6 +20,7 @@ package org.apache.hadoop.hive.serde2.ob
 import java.sql.Date;
 
 import org.apache.hadoop.hive.serde2.io.DateWritable;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 
 /**
  * A JavaDateObjectInspector inspects a Java Date Object.
@@ -29,7 +30,7 @@ public class JavaDateObjectInspector
     implements SettableDateObjectInspector {
 
   protected JavaDateObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.dateTypeEntry);
+    super(TypeInfoFactory.dateTypeInfo);
   }
 
   public DateWritable getPrimitiveWritableObject(Object o) {

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaDoubleObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaDoubleObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaDoubleObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaDoubleObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -18,6 +18,7 @@
 package org.apache.hadoop.hive.serde2.objectinspector.primitive;
 
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 
 /**
  * A JavaDoubleObjectInspector inspects a Java Double Object.
@@ -27,7 +28,7 @@ public class JavaDoubleObjectInspector e
     SettableDoubleObjectInspector {
 
   JavaDoubleObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.doubleTypeEntry);
+    super(TypeInfoFactory.doubleTypeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaFloatObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaFloatObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaFloatObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaFloatObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -17,6 +17,7 @@
  */
 package org.apache.hadoop.hive.serde2.objectinspector.primitive;
 
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 import org.apache.hadoop.io.FloatWritable;
 
 /**
@@ -27,7 +28,7 @@ public class JavaFloatObjectInspector ex
     SettableFloatObjectInspector {
 
   JavaFloatObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.floatTypeEntry);
+    super(TypeInfoFactory.floatTypeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveDecimalObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveDecimalObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveDecimalObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveDecimalObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -21,13 +21,14 @@ import java.math.BigInteger;
 
 import org.apache.hadoop.hive.common.type.HiveDecimal;
 import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 
 public class JavaHiveDecimalObjectInspector
     extends AbstractPrimitiveJavaObjectInspector
     implements SettableHiveDecimalObjectInspector {
 
   protected JavaHiveDecimalObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.decimalTypeEntry);
+    super(TypeInfoFactory.decimalTypeInfo);
   }
 
   @Override
@@ -37,12 +38,12 @@ public class JavaHiveDecimalObjectInspec
     }
 
     if (o instanceof String) {
-      try {
-        o = new HiveDecimal((String)o);
-      } catch(NumberFormatException e) {
+      o = HiveDecimal.create((String)o);
+      if (o == null) {
         return null;
       }
     }
+
     return new HiveDecimalWritable((HiveDecimal) o);
   }
 
@@ -53,7 +54,7 @@ public class JavaHiveDecimalObjectInspec
 
   @Override
   public Object set(Object o, byte[] bytes, int scale) {
-    return new HiveDecimal(new BigInteger(bytes), scale);
+    return HiveDecimal.create(new BigInteger(bytes), scale);
   }
 
   @Override
@@ -68,20 +69,16 @@ public class JavaHiveDecimalObjectInspec
 
   @Override
   public Object create(byte[] bytes, int scale) {
-    try {
-      return new HiveDecimal(new BigInteger(bytes), scale);
-    } catch (NumberFormatException e) {
-      return null;
-    }
+    return HiveDecimal.create(new BigInteger(bytes), scale);
   }
 
   @Override
   public Object create(HiveDecimal t) {
-    try {
-      return t == null ? null : new HiveDecimal(t.unscaledValue(), t.scale());
-    } catch(NumberFormatException e) {
+    if (t == null) {
       return null;
     }
+
+    return HiveDecimal.create(t.unscaledValue(), t.scale());
   }
 
 }

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveVarcharObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveVarcharObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveVarcharObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveVarcharObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -19,24 +19,18 @@ package org.apache.hadoop.hive.serde2.ob
 
 import org.apache.hadoop.hive.common.type.HiveVarchar;
 import org.apache.hadoop.hive.serde2.io.HiveVarcharWritable;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils.PrimitiveTypeEntry;
-import org.apache.hadoop.hive.serde2.typeinfo.ParameterizedPrimitiveTypeUtils;
-import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeParams;
-
-public class JavaHiveVarcharObjectInspector
-    extends AbstractPrimitiveJavaObjectInspector
-    implements SettableHiveVarcharObjectInspector {
+import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
+import org.apache.hadoop.hive.serde2.typeinfo.VarcharUtils;
+
+public class JavaHiveVarcharObjectInspector extends AbstractPrimitiveJavaObjectInspector
+implements SettableHiveVarcharObjectInspector {
 
   // no-arg ctor required for Kyro serialization
   public JavaHiveVarcharObjectInspector() {
   }
 
-  public JavaHiveVarcharObjectInspector(PrimitiveTypeEntry typeEntry) {
-    super(typeEntry);
-    if (typeEntry.primitiveCategory != PrimitiveCategory.VARCHAR) {
-      throw new RuntimeException(
-          "TypeEntry of type varchar expected, got " + typeEntry.primitiveCategory);
-    }
+  public JavaHiveVarcharObjectInspector(VarcharTypeInfo typeInfo) {
+    super(typeInfo);
   }
 
   @Override
@@ -45,8 +39,8 @@ public class JavaHiveVarcharObjectInspec
       return null;
     }
     HiveVarchar value = (HiveVarchar)o;
-    if (ParameterizedPrimitiveTypeUtils.doesPrimitiveMatchTypeParams(
-        value, (VarcharTypeParams) getTypeParams())) {
+    if (VarcharUtils.doesPrimitiveMatchTypeParams(
+        value, (VarcharTypeInfo)typeInfo)) {
       return value;
     }
     // value needs to be converted to match the type params (length, etc).
@@ -75,8 +69,8 @@ public class JavaHiveVarcharObjectInspec
   @Override
   public Object set(Object o, HiveVarchar value) {
     HiveVarchar setValue = (HiveVarchar)o;
-    if (ParameterizedPrimitiveTypeUtils.doesPrimitiveMatchTypeParams(
-        value, (VarcharTypeParams) getTypeParams())) {
+    if (VarcharUtils.doesPrimitiveMatchTypeParams(
+        value, (VarcharTypeInfo)typeInfo)) {
       setValue.setValue(value);
     } else {
       // Otherwise value may be too long, convert to appropriate value based on params
@@ -100,7 +94,8 @@ public class JavaHiveVarcharObjectInspec
   }
 
   public int getMaxLength() {
-    VarcharTypeParams typeParams = (VarcharTypeParams)getTypeParams();
-    return typeParams != null ? typeParams.length : -1;
+    VarcharTypeInfo ti = (VarcharTypeInfo) typeInfo;
+    return ti.getLength();
   }
+
 }

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaIntObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaIntObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaIntObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaIntObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -17,6 +17,7 @@
  */
 package org.apache.hadoop.hive.serde2.objectinspector.primitive;
 
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 import org.apache.hadoop.io.IntWritable;
 
 /**
@@ -26,7 +27,7 @@ public class JavaIntObjectInspector exte
     AbstractPrimitiveJavaObjectInspector implements SettableIntObjectInspector {
 
   JavaIntObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.intTypeEntry);
+    super(TypeInfoFactory.intTypeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaLongObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaLongObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaLongObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaLongObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -17,6 +17,7 @@
  */
 package org.apache.hadoop.hive.serde2.objectinspector.primitive;
 
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 import org.apache.hadoop.io.LongWritable;
 
 /**
@@ -26,7 +27,7 @@ public class JavaLongObjectInspector ext
     AbstractPrimitiveJavaObjectInspector implements SettableLongObjectInspector {
 
   JavaLongObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.longTypeEntry);
+    super(TypeInfoFactory.longTypeInfo);
   }
 
   @Override

Modified: hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaShortObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaShortObjectInspector.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaShortObjectInspector.java (original)
+++ hive/branches/maven/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaShortObjectInspector.java Tue Oct 22 17:58:59 2013
@@ -18,6 +18,7 @@
 package org.apache.hadoop.hive.serde2.objectinspector.primitive;
 
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 
 /**
  * A JavaShortObjectInspector inspects a Java Short Object.
@@ -27,7 +28,7 @@ public class JavaShortObjectInspector ex
     SettableShortObjectInspector {
 
   JavaShortObjectInspector() {
-    super(PrimitiveObjectInspectorUtils.shortTypeEntry);
+    super(TypeInfoFactory.shortTypeInfo);
   }
 
   @Override