public TypeInfo getTypeInfo(int columnNum) throws HiveException { if (initialTypeInfos == null) { throw new HiveException("initialTypeInfos array is null in contextName " + contextName); } final int initialSize = initialTypeInfos.size(); if (columnNum < initialSize) { return initialTypeInfos.get(columnNum); } else { String typeName = ocm.getScratchTypeName(columnNum); // Replace unparsable synonyms. typeName = VectorizationContext.mapTypeNameSynonyms(typeName); // Make CHAR and VARCHAR type info parsable. if (typeName.equals("char")) { typeName = "char(" + HiveChar.MAX_CHAR_LENGTH + ")"; } else if (typeName.equals("varchar")) { typeName = "varchar(" + HiveVarchar.MAX_VARCHAR_LENGTH + ")"; } return TypeInfoUtils.getTypeInfoFromTypeString(typeName); } }