private String convertPrimitiveType(PrimitiveType primitive, boolean inferBinaryAsString) throws SerDeException {
    switch (primitive.getPrimitiveTypeName()) {
      case INT96:
        return serdeConstants.TIMESTAMP_TYPE_NAME;
      case INT32:
        return serdeConstants.INT_TYPE_NAME;
      case INT64:
        return serdeConstants.BIGINT_TYPE_NAME;
      case BOOLEAN:
        return serdeConstants.BOOLEAN_TYPE_NAME;
      case FLOAT:
        return serdeConstants.FLOAT_TYPE_NAME;
      case DOUBLE:
        return serdeConstants.DOUBLE_TYPE_NAME;
      case BINARY:
        if (inferBinaryAsString) {
          return serdeConstants.STRING_TYPE_NAME;
        } else {
          return serdeConstants.BINARY_TYPE_NAME;
        }
      default:
        throw new SerDeException(ErrorMsg.PARQUET_UNHANDLED_TYPE.getErrorCodedMsg(primitive.getPrimitiveTypeName().name()));
    }
  }
Given a complete struct type info and pruned paths containing selected fields
from the type info, return a pruned struct type info only with the selected fields.

For instance, if 'originalTypeInfo' is: s:struct<a:struct<b:int, c:boolean>, d:string>
  and 'prunedPaths' is ["s.a.b,s.d"], then the result will be:
  s:struct<a:struct<b:int>, d:string>

@param originalTypeInfo the complete struct type info
@param prunedPaths a string representing the pruned paths, separated by ','
@return the pruned struct type info
ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/ParquetHiveSerDe.java