Releases: vapor/postgres-nio
Close connection if requestTLS fails
Support custom JSON coders
This patch was authored by @jordanebelanger and released by @tanner0101.
Add support for custom, non-Foundation, JSON encoder & decoder through global variables PostgresNIO._defaultJSONEncoder
and PostgresNIO._defaultJSONDecoder
(#125, fixes #126).
Fix prepare(query:) when no data returned
This patch was authored by @Jerry-Carter and released by @tanner0101.
Fixes prepare(query:)
when used with queries that return no results (like DELETE ...
) (#123, fixes #122).
Integer overflow fixes
This patch was authored and released by @tanner0101.
Deprecates PostgresData
integer conversion methods that could lead to overflow errors (#120, fixes #119).
Using the following types in release-mode should no longer be susceptible to overflow (or underflow) crashes:
UInt
Int8
UInt16
UInt32
UInt64
assertion
.
To migrate away from these types, there are two options:
1: Use a wider integer (or type) that does not overflow or underflow.
For example:
Int8
->Int16
UInt16
->Int32
UInt32
->Int
(Int64
)UInt
/UInt64
->String
The caveats with this method are increased storage size and a database migration is required.
2: Do an explicit bitPattern
conversion to the inversely signed type with same bit width.
For example, using Fluent:
// Store the value as `Int32` in Postgres
@Field(key: "foo")
var _foo: Int32
// Access the value as if it were a `UInt32`.
var foo: UInt32 {
get {
.init(bitPattern: self._foo)
}
set {
self._foo = .init(bitPattern: newValue)
}
}
The caveat with this method is that other clients may misinterpret the stored value.
Fix warnings + update CI
This patch was authored and released by @tanner0101.
Fix Xcode 12 beta 3 warnings and add additional test cases to CI (#117).
Support parameter status messages in query / simpleQuery
This patch was authored and released by @tanner0101.
Adds support for parameter status (S
) messages in query
and simpleQuery
calls (#116, fixes #115).
Add support for VARCHAR[]
This patch was authored and released by @tanner0101.
Adds support for CHARACTER VARYING[]
a.k.a VARCHAR[]
(#114, fixes #113).
Support remote close
This patch was authored and released by @tanner0101.
Adds support for recognizing a remote close as calling close()
(fixes #107, #110)
RawRepresentable + PostgresData
This patch was authored and released by @tanner0101.
Add default PostgresDataConvertible
conformance to RawRepresentable
where the raw value is postgres convertible (#105, vapor/postgres-kit#179).
Too many binds error
This patch was authored and released by @tanner0101.
Throw an error if too many binds (>= Int16.max) are sent in a parameterized query (#103, fixes #102).