public override void Deserialize(byte[] payload)
        {
            var buffer = new PostgresProtocolStream(payload);

            Fields = new List <MessageField>();

            while (true)
            {
                var fieldId = (byte)buffer.ReadByte();
                if (fieldId == '\0')
                {
                    break;
                }

                var messageField = new MessageField();
                messageField.Id    = fieldId;
                messageField.Value = buffer.ReadString();
                Fields.Add(messageField);
            }
        }
        public override void Deserialize(byte[] payload)
        {
            var buffer = new PostgresProtocolStream(payload);

            ColumnCount = buffer.ReadInt16();

            Rows = new List <RowField>();

            for (var i = 0; i < ColumnCount; i++)
            {
                var rowField = new RowField();
                rowField.Length = buffer.ReadInt32();

                var rowValueBytes = new List <byte>();
                for (var j = 0; j < rowField.Length; j++)
                {
                    rowValueBytes.Add((byte)buffer.ReadByte());
                }

                rowField.Value = rowValueBytes;

                Rows.Add(rowField);
            }
        }