Releases: vapor/postgres-nio
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.
DataRow without allocation; DataRow as Collection; RowDescription top level
This patch was authored and released by @fabianfett.
This is a cherry pick of #188.
Modifications
- DataRowand- RowDescriptionhave been moved out of the- PSQLBackendMessagenamespace. This allows us to mark them as- @inlinableor- @usableFromInlineat a later point, without marking everything in- PSQLBackendMessageas- @inlinable
- DataRowdoes not use an internal array for its columns anymore. Instead all read operations are directly done on its ByteBuffer slice.
- DataRowimplements the- Collectionprotocol now.
Result
One allocation fewer per queried row.
Make password hashing fast
This patch was authored by @fabianfett and released by @gwynne.
This is just a really quick patch to reduce the 320 allocations we have for hashing the password to something sensible (less than 10).
Result
In allocation analysis, password hashing doesn't appear as a biggy anymore.
PostgresNIO 1.6.2
Semver Patch
- PSQLBackendMessageDecoder is a SingleStepDecoder (#174)
- Add conveniences to PSQLFrontendMessage (#173)
- Add RowStreamStateMachine (#176)
- Extract PSQLRow (#177)
- Add BufferedMessageEncoder, fix PSQLFrontendMessageEncoder (#179)
- Batch rows for consumption (#180)
- Depend on Swift Crypto "1.0.0" ..< "3.0.0"(#183)
- Move Decoding into PSQLChannelHandler (#182)
- Move message encoding into PSQLChannelHandler (#181)
- Bump SwiftNIO dependency to 2.33.0 (#184)
Other changes
PostgresNIO 1.6.1
SemVer Patch
- Fix NIOSSL deprecation warnings (#168) (patch credit to @jareyesda)
- Fix NIO imports (#171)
Other Changes
1.6.0
- Add platform requirements for iOS, watchOS and tvOS (#154)
- Update api-docs.yml (#156) Thanks @JaapWijnen
- Split out IntegrationTestsinto separatetestTarget(#157)
- Use sync pipeline operations, update NIO dependencies (#152)
- Add one Auth and one SSL test case (#159)
- Fix API docs link. Resolves (#163)
- Add link to our SECURITY.md (#164)
- Use PSQLFormatwhen encoding and decoding (#158)
- Support AWS Redshift queries - SELECT Metadata without row number (#167) Thanks @grennis
Ignore errors when closing the connection
This patch was authored by @fabianfett and released by @0xTim.
Resolves an issue where errors thrown by some database servers during closing a connection would cause an error in PostgresNIO. Resolves #150
Modifications
- We ignore errors when the connection is already closing
- Updated logging to only issue debug and trace logs.
- Don't print password in trace logging mode.
Fixes an issue where empty values were treated as null values and vica versa
This patch was authored by @fabianfett and released by @0xTim.
Fix encoding and decoding optional values to and from the database due to a regression in #135. Resolves #143 (#144)