diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteQueryUsingAggregateIndexCtx.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteQueryUsingAggregateIndexCtx.java index 12e2e24..590ab60 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteQueryUsingAggregateIndexCtx.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteQueryUsingAggregateIndexCtx.java @@ -239,7 +239,6 @@ private void replaceSelectOperatorProcess(SelectOperator operator) throws Semant List selRSSignature = selRS.getSignature(); // Need to create a new type for Column[_count_of_indexed_key_column] node PrimitiveTypeInfo pti = TypeInfoFactory.getPrimitiveTypeInfo("bigint"); - pti.setTypeName("bigint"); ColumnInfo newCI = new ColumnInfo(rewriteQueryCtx.getAggregateFunction(), pti, "", false); selRSSignature.add(newCI); selRS.setSignature((ArrayList) selRSSignature); diff --git serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/BaseCharTypeInfo.java serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/BaseCharTypeInfo.java index fc54a8f..764d5b8 100644 --- serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/BaseCharTypeInfo.java +++ serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/BaseCharTypeInfo.java @@ -61,10 +61,4 @@ public static String getQualifiedName(String typeName, int length) { sb.append(")"); return sb.toString(); } - - @Override - public void setTypeName(String typeName) { - // type name should already be set by subclass - return; - } } diff --git serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/DecimalTypeInfo.java serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/DecimalTypeInfo.java index d00f77d..e53634f 100644 --- serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/DecimalTypeInfo.java +++ serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/DecimalTypeInfo.java @@ -44,12 +44,6 @@ public String getTypeName() { } @Override - public void setTypeName(String typeName) { - // No need to set type name, it should always be decimal - return; - } - - @Override public boolean equals(Object other) { if (this == other) { return true; diff --git serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/PrimitiveTypeInfo.java serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/PrimitiveTypeInfo.java index 98524ad..bdc5f76 100644 --- serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/PrimitiveTypeInfo.java +++ serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/PrimitiveTypeInfo.java @@ -40,12 +40,22 @@ private static final long serialVersionUID = 1L; // Base name (varchar vs fully qualified name such as varchar(200)). - protected String typeName; + protected final String typeName; + + private final PrimitiveCategory primitiveCategory; + private final Class primitiveWritableClass; + private final Class primitiveJavaClass; /** * For java serialization use only. */ public PrimitiveTypeInfo() { + + // Dummy final assignments. + typeName = null; + primitiveCategory = null; + primitiveWritableClass = null; + primitiveJavaClass = null; } /** @@ -53,6 +63,10 @@ public PrimitiveTypeInfo() { */ PrimitiveTypeInfo(String typeName) { this.typeName = typeName; + PrimitiveTypeEntry primitiveTypeEntry = PrimitiveObjectInspectorUtils.getTypeEntryFromTypeName(typeName); + primitiveCategory = primitiveTypeEntry.primitiveCategory; + primitiveWritableClass = primitiveTypeEntry.primitiveWritableClass; + primitiveJavaClass = primitiveTypeEntry.primitiveJavaClass; } /** @@ -64,20 +78,15 @@ public Category getCategory() { } public PrimitiveCategory getPrimitiveCategory() { - return getPrimitiveTypeEntry().primitiveCategory; + return primitiveCategory; } public Class getPrimitiveWritableClass() { - return getPrimitiveTypeEntry().primitiveWritableClass; + return primitiveWritableClass; } public Class getPrimitiveJavaClass() { - return getPrimitiveTypeEntry().primitiveJavaClass; - } - - // The following 2 methods are for java serialization use only. - public void setTypeName(String typeName) { - this.typeName = typeName; + return primitiveJavaClass; } @Override diff --git serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TimestampLocalTZTypeInfo.java serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TimestampLocalTZTypeInfo.java index e19d7b0..7fb0205 100644 --- serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TimestampLocalTZTypeInfo.java +++ serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TimestampLocalTZTypeInfo.java @@ -44,12 +44,6 @@ public String getTypeName() { } @Override - public void setTypeName(String typeName) { - // No need to set type name, it should always be timestamplocaltz - return; - } - - @Override public boolean equals(Object other) { if (this == other) { return true;