decode static method

DecodedTuple decode(
  1. Schema schema,
  2. Uint8List data
)

Implementation

static DecodedTuple decode(Schema schema, Uint8List data) {
  final cols = schema.columns;
  final nullBitmapSize = (cols.length + 7) ~/ 8;
  // Decode MVCC header
  final header = MvccTupleHeader.decode(data);

  int pos = MvccTupleHeader.size;
  // Read null bitmap
  final nullBitmap = data.sublist(pos, pos + nullBitmapSize);
  pos += nullBitmapSize;

  final values = <String, dynamic>{};
  for (int i = 0; i < cols.length; i++) {
    final col = cols[i];
    final isNull = (nullBitmap[i >> 3] & (1 << (i & 7))) != 0;
    if (isNull) {
      values[col.name] = null;
    } else {
      final (val, consumed) = _decodeColumn(col.type, data, pos);
      values[col.name] = val;
      pos += consumed;
    }
  }

  return DecodedTuple(header: header, values: values);
}