public static Object[] readTabletValuesFromStream(
      DataInputStream stream, TSDataType[] types, int columns, int size) throws IOException {
    Object[] values = new Object[columns];
    for (int i = 0; i < columns; i++) {
      switch (types[i]) {
        case BOOLEAN:
          parseBooleanColumn(size, stream, values, i);
          break;
        case DATE:
        case INT32:
          parseInt32Column(size, stream, values, i);
          break;
        case TIMESTAMP:
        case INT64:
          parseInt64Column(size, stream, values, i);
          break;
        case FLOAT:
          parseFloatColumn(size, stream, values, i);
          break;
        case DOUBLE:
          parseDoubleColumn(size, stream, values, i);
          break;
        case TEXT:
        case BLOB:
        case STRING:
          parseTextColumn(size, stream, values, i);
          break;
        default:
          throw new UnSupportedDataTypeException(
              String.format("data type %s is not supported when convert data at client", types[i]));
      }
    }
    return values;
  }
Deserialize Tablet Values From Buffer

@param buffer data values
@param columns column number
@param size value count in each column
@throws UnSupportedDataTypeException if TSDataType is unknown, UnSupportedDataTypeException
    will be thrown.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/QueryDataSetUtils.java