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

            FieldsCount = buffer.ReadInt16();

            RowFieldDescriptions = new List <RowFieldDescription>();

            for (var i = 0; i < FieldsCount; i++)
            {
                var rowFieldDescription = new RowFieldDescription();
                rowFieldDescription.FieldName      = buffer.ReadString();
                rowFieldDescription.TableOid       = buffer.ReadInt32();
                rowFieldDescription.RowAttributeId = buffer.ReadInt16();
                rowFieldDescription.FieldTypeOid   = buffer.ReadInt32();
                rowFieldDescription.DataTypeSize   = buffer.ReadInt16();
                rowFieldDescription.TypeModifier   = buffer.ReadInt32();
                rowFieldDescription.FormatCode     = buffer.ReadInt16();

                RowFieldDescriptions.Add(rowFieldDescription);
            }
        }
        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);
            }
        }