@Override
  public String toString() {
    StringBuilder sb = new StringBuilder(128);
    sb.append(getClass() + " [serdeParams=" + serdeParams + ", cachedObjectInspector=" + cachedObjectInspector
        + ", serializedSize=" + serializedSize + ", stats=" + stats + ", lastOperationSerialize="
        + lastOperationSerialize + ", lastOperationDeserialize=" + lastOperationDeserialize);

    if (serdeParams != null) {
      sb.append(' ').append(Arrays.toString(serdeParams.getSeparators()));
      if (serdeParams.getRowTypeInfo() != null) {
        sb.append(" : ");
        sb.append(((StructTypeInfo) serdeParams.getRowTypeInfo()).getAllStructFieldNames());
        sb.append(" : ");
        sb.append(((StructTypeInfo) serdeParams.getRowTypeInfo()).getAllStructFieldTypeInfos());
      }
    }

    sb.append(']');
    return sb.toString();
  }
LazySimpleSerDe can be used to read the same data format as
MetadataTypedColumnsetSerDe and TCTLSeparatedProtocol.

However, LazySimpleSerDe creates Objects in a lazy way, to provide better
performance.

Also LazySimpleSerDe outputs typed columns instead of treating all columns as
String like MetadataTypedColumnsetSerDe.
serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazySimpleSerDe.java