Releases: vapor/postgres-nio
PostgresNIO 1.12.0
SemVer Minor
- Increase bind parameters limit (#298 - by @MahdiBM)
- Raise minimum Swift version to 5.5 (#310, #306 by @MahdiBM)
- Remove need to supply PostgresDecodingContext on decode (#307, #312)
Other changes
- Add docc catalog (#311)
- Add docs outlining changes we made to
PostgresRow/column(name:)
(#312) - Update CI (#306 by @MahdiBM)
New Contributors
Full Changelog: 1.11.1...1.12.0
PostgresNIO 1.11.1
SemVer Patch
- Use provided logger consistently in
PostgresConnection.send(_:logger:)
(#299) - Replace deprecated
NIOAtomics
with Swift Atomics (#300) - Replace
Lock
with newNIOLock
(#305)
Other Changes
- Enable SwiftPackageIndex docc hosting (#297)
Full Changelog: 1.11.0...1.11.1
PostgresNIO 1.11.0
SemVer Minor
- Expose
connectTimeout
as a configuration option by @trasch in #276 - Make backend key data optional allowing use with AWS RDS Proxy by @rausnitz in #296
Other Changes
- Update good first issue workflow to work for multiple labels by @BennyDeBock in #291
- Update README.md in #293
New Contributors
Full Changelog: 1.10.0...1.11.0
PostgresNIO 1.10.0
SemVer Minor
- Drop Swift 5.2 and 5.3 support #287
- Make
PostgresRowSequence.collect
public by @nicholas-otto in #281 - Rename
PostgresCastingError
toPostgresDecodingError
and make public by @nicholas-otto in #286
Other Changes
- Switch this repo to doing its CI independently, plus some updates #284
- Remove unused scripts #288
- Update README to reflect latest changes #289
New Contributors
- @nicholas-otto made their first contribution in #281
Full Changelog: 1.9.0...1.10.0
PostgresNIO 1.9.0
SemVer Minor
- Allow unescaped SQL in
PostgresQuery
in #258 - Remove connection state machine log in #266
- Add EventLoop API that uses
PostgresQuery
in #265 - Add
contains(_:)
toPostgresRandomAccessRow
in #270
SemVer Patch
- Use
Int(exactly:)
instead of restricting to 64 bit platforms in #267 - Continue to make forward progress when cancelled in #261
Other Changes
Full Changelog: 1.8.0...1.9.0
PostgresNIO 1.8.0 (async/await)
This release adds Swift structured concurrency APIs (async/await). It is now possible to run queries like this:
let role = "admin"
let rows = try await connection.query("SELECT id, username, birthday FROM users WHERE role = \(role)", logger: logger)
for try await (id, username, birthday) in rows.decode((Int, String, Date).self, context: .default) {
// do something with the returned values
}
For more information please read the updated README.
What's Changed
- Fix typo in README.md by @flix477 in #208
- Remove PSQLJSONDecoder from PSQLConnection in #214
- Merge type PSQLFormat into PostgresFormat in #212
- Remove PSQLJSONDecoder in #216
- Merge PSQLDataType with PostgresDataType in #213
- Remove PSQLJSONEncoder in #215
- PSQLDecodingError improvements in #211
- Add async option to PSQLRowStream in #206
- Make PSQLDecodingContext generic in #217
- Cut back on number of CI jobs in #218
- Extend PostgresCastingError in #221
- Add PostgresCell in #220
- Add PSQLRow multi decode in #222
- Add PostgresQuery in #223
- Rename PSQLDecodable to PostgresDecodable in #224
- Rename PSQLCodable to PostgresCodable in #225
- Rename PSQLRowSequence to PostgresRowSequence in #226
- Rename PSQLEncodingContext to PostgresEncodingContext in #227
- Move all PostgresConnection code into one file in #228
- Deprecate unused postgres messages in #229
- Cleanup encoding and decoding in #230
- Merge PSQLRow into PostgresRow in #219
- Replace all EncoderContext/DecoderContext uses of
.forTests
with.default
in #231 - Add an async query API (internal for now) in #233
- Add PostgresRowSequence multi decode in #232
- [BufferMessageEncoder] Reduce the number of force unwraps in #234
- [PostgresRowSequence] Make StateMachine private in #235
- Rename PSQLRow multi decode to PostgresRow multi decode in #236
- Explicit TLS config in #237
- Rename PSQLFrontendMessage to PostgresFrontendMessage in #239
- Rename PSQLBackendMessage to PostgresBackendMessage in #238
- Merge PSQLConnection into PostgresConnection in #240
- Cleanup PostgresDecodable in #241
- Make PostgresEncodingContext & PostgresDecodingContext public in #243
- Add Sendable checking in #242
- Add good first issue project board workflow to repository by @BennyDeBock in #246
- New PostgresConnection connect API in #245
- Make new Postgres decoding public in #244
- Make PostgresRowSequence public in #247
- Make Postgres Encodable public in #248
- Make Postgres async query public in #249
- Rename PostgresBackendMessageDecoder in #252
- Add support for Network.framework in #253
- Make DataRow Sendable in #250
- Rename PostgresChannelHandler in #251
- README update for async/await in #254
- Fix missing links in #255
New Contributors
- @flix477 made their first contribution in #208
- @BennyDeBock made their first contribution in #246
Full Changelog: 1.7.2...1.8.0
Refactor PSQLRowStream to make async/await easier
This patch was authored and released by @fabianfett.
Motivation
PSQLRowStream
's current implementation is interesting. It should be better tested and easier to follow for async/await support later.
Changes
- Make
PSQLRowStream
's implementation more sensible - Add unit tests for
PSQLRowStream
Result
Adding async/await support becomes easier.
Faster decoding, thanks to fewer bound checks.
This patch was authored by @fabianfett and released by @gwynne.
Motivation
We like faster code. This removes a ton of unnecessary bounds checks.
Result
Faster code
In draft since it requires a new NIO release.
Add proper support for `Decimal`
This patch was authored by @madsodgaard and released by @gwynne.
Fixes an issue when trying to decode/encode numeric
columns as Decimal
, that would result in an error such as: server: column "balance" is of type numeric but expression is of type text (transformAssignedExpr)
.
ByteBuffer extension, prevent naming conflicts
This patch was authored and released by @fabianfett.
Motivation
We currently extend ByteBuffer with non prefixed utility methods. This may lead to breaking code, if NIO introduces those utilities itself. As potentially planned here: apple/swift-nio#1990
Changes
Prefix all ByteBuffer utility methods
Result
Chances reduced of breaking code.