MySQLPacket.decodeColumnCountPacket constructor

MySQLPacket.decodeColumnCountPacket(
  1. Uint8List buffer
)

Decodifica um pacote que contém a contagem de colunas MySQLPacketColumnCount.

Implementation

factory MySQLPacket.decodeColumnCountPacket(Uint8List buffer) {
  final header = decodePacketHeader(buffer);
  final payloadBytes = _extractPayload(buffer, header.$1);
  final type = payloadBytes[0];
  late MySQLPacketPayload payload;

  if (type == 0x00) {
    if (payloadBytes.length < 7) {
      throw MySQLProtocolException(
        'Truncated MySQLPacketOK in COM_QUERY response: '
        'expected at least 7 bytes, got ${payloadBytes.length}',
      );
    }
    payload = MySQLPacketOK.decode(payloadBytes);
  } else if (type == 0xff) {
    payload = MySQLPacketError.decode(payloadBytes);
  } else if (type == 0xfb) {
    throw MySQLProtocolException(
      "COM_QUERY_RESPONSE of type 0xfb is not implemented",
    );
  } else {
    payload = MySQLPacketColumnCount.decode(payloadBytes);
  }

  return MySQLPacket(
    sequenceID: header.$2,
    payloadLength: payloadBytes.length,
    payload: payload,
  );
}