public NpgsqlParameterStatus(Stream stream)
 {
     //Read message length
     PGUtil.EatStreamBytes(stream, 4);
     Parameter      = PGUtil.ReadString(stream);
     ParameterValue = PGUtil.ReadString(stream);
 }
示例#2
0
            private NpgsqlBackendTypeInfo _typeInfo; // everything we know about this field type

            public FieldData(Stream stream, NpgsqlBackendTypeMapping typeMapping)
            {
                Name     = PGUtil.ReadString(stream);
                TableOID = PGUtil.ReadInt32(stream);
                ColumnAttributeNumber = PGUtil.ReadInt16(stream);
                TypeInfo     = typeMapping[TypeOID = PGUtil.ReadInt32(stream)];
                TypeSize     = PGUtil.ReadInt16(stream);
                TypeModifier = PGUtil.ReadInt32(stream);
                FormatCode   = (FormatCode)PGUtil.ReadInt16(stream);
            }
示例#3
0
 public CompletedResponse(Stream stream)
 {
     string[] tokens = PGUtil.ReadString(stream).Split();
     if (tokens.Length > 1)
     {
         int rowsAffected;
         if (int.TryParse(tokens[tokens.Length - 1], out rowsAffected))
         {
             _rowsAffected = rowsAffected;
         }
         else
         {
             _rowsAffected = null;
         }
     }
     _lastInsertedOID = (tokens.Length > 2 && tokens[0].Trim().ToUpperInvariant() == "INSERT")
                            ? long.Parse(tokens[1])
                            : (long?)null;
 }
示例#4
0
 internal NpgsqlNotificationEventArgs(Stream stream, bool readAdditional)
 {
     PID                   = PGUtil.ReadInt32(stream);
     Condition             = PGUtil.ReadString(stream);
     AdditionalInformation = readAdditional ? PGUtil.ReadString(stream) : string.Empty;
 }
示例#5
0
        internal NpgsqlError(Stream stream)
        {
            // Check the messageLength value. If it is 1178686529, this would be the
            // "FATA" string, which would mean a protocol 2.0 error string.
            if (PGUtil.ReadInt32(stream) == 1178686529)
            {
                string[] v2Parts = ("FATA" + PGUtil.ReadString(stream)).Split(new char[] { ':' }, 2);
                if (v2Parts.Length == 2)
                {
                    _severity = v2Parts[0].Trim();
                    _message  = v2Parts[1].Trim();
                }
                else
                {
                    _severity = string.Empty;
                    _message  = v2Parts[0].Trim();
                }
            }
            else
            {
                bool done = false;
                int  fieldCode;

                while (!done && (fieldCode = stream.ReadByte()) != -1)
                {
                    switch ((byte)fieldCode)
                    {
                    case 0:
                        // Null terminator; error message fully consumed.
                        done = true;
                        ;
                        break;

                    case (byte)ErrorFieldTypeCodes.Severity:
                        _severity = PGUtil.ReadString(stream);
                        ;
                        break;

                    case (byte)ErrorFieldTypeCodes.Code:
                        _code = PGUtil.ReadString(stream);
                        ;
                        break;

                    case (byte)ErrorFieldTypeCodes.Message:
                        _message = PGUtil.ReadString(stream);
                        ;
                        break;

                    case (byte)ErrorFieldTypeCodes.Detail:
                        _detail = PGUtil.ReadString(stream);
                        ;
                        break;

                    case (byte)ErrorFieldTypeCodes.Hint:
                        _hint = PGUtil.ReadString(stream);
                        ;
                        break;

                    case (byte)ErrorFieldTypeCodes.Position:
                        _position = PGUtil.ReadString(stream);
                        ;
                        break;

                    case (byte)ErrorFieldTypeCodes.InternalPosition:
                        _internalPosition = PGUtil.ReadString(stream);
                        ;
                        break;

                    case (byte)ErrorFieldTypeCodes.InternalQuery:
                        _internalQuery = PGUtil.ReadString(stream);
                        ;
                        break;

                    case (byte)ErrorFieldTypeCodes.Where:
                        _where = PGUtil.ReadString(stream);
                        ;
                        break;

                    case (byte)ErrorFieldTypeCodes.File:
                        _file = PGUtil.ReadString(stream);
                        ;
                        break;

                    case (byte)ErrorFieldTypeCodes.Line:
                        _line = PGUtil.ReadString(stream);
                        ;
                        break;

                    case (byte)ErrorFieldTypeCodes.Routine:
                        _routine = PGUtil.ReadString(stream);
                        ;
                        break;

                    case (byte)ErrorFieldTypeCodes.SchemaName:
                        _schemaName = PGUtil.ReadString(stream);
                        ;
                        break;

                    case (byte)ErrorFieldTypeCodes.TableName:
                        _tableName = PGUtil.ReadString(stream);
                        ;
                        break;

                    case (byte)ErrorFieldTypeCodes.ColumnName:
                        _columnName = PGUtil.ReadString(stream);
                        ;
                        break;

                    case (byte)ErrorFieldTypeCodes.DataTypeName:
                        _datatypeName = PGUtil.ReadString(stream);
                        ;
                        break;

                    case (byte)ErrorFieldTypeCodes.ConstraintName:
                        _constraintName = PGUtil.ReadString(stream);
                        ;
                        break;

                    default:
                        // Unknown error field; consume and discard.
                        PGUtil.ReadString(stream);
                        ;
                        break;
                    }
                }
            }
        }