public override byte[] Serialize()
        {
            var buffer = new PostgresProtocolStream();

            buffer.Write(PortalName);
            buffer.Write(PreparedStatementName);
            buffer.Write(ParameterFormatCodeCount);

            for (var i = 0; i < ParameterFormatCodeCount; i++)
            {
                buffer.Write(ParameterFormatCodes[i]);
            }

            buffer.Write(ParameterValueCount);

            for (var i = 0; i < ParameterValueCount; i++)
            {
                buffer.Write(ParameterValues[i].Length);
                buffer.Write(ParameterValues[i].Value);
            }

            buffer.Write(RowFormatCode);

            return(buffer.ToArray());
        }
        public override byte[] Serialize()
        {
            var buffer = new PostgresProtocolStream();

            buffer.Write(PreparedStatementName);
            buffer.Write(Query);
            buffer.Write(ParameterDataTypeOidsCount);

            for (var i = 0; i < ParameterDataTypeOidsCount; i++)
            {
                buffer.Write(ParameterDataTypeOids[i]);
            }

            return(buffer.ToArray());
        }
        public override byte[] Serialize()
        {
            var buffer = new PostgresProtocolStream();

            buffer.Write(ProtocolVersion);

            for (var i = 0; i < Parameters.Count; i++)
            {
                buffer.Write(Parameters[i].Name);
                buffer.Write(Parameters[i].Value);
            }

            buffer.WriteByte(EndMessage);

            return(buffer.ToArray());
        }
        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);

            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);
            }
        }