Skip to content

Releases: vapor/postgres-nio

Refactor PSQLRowStream to make async/await easier

26 Nov 23:30
780a510
Compare
Choose a tag to compare
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.

26 Nov 23:06
81ca909
Compare
Choose a tag to compare
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`

24 Nov 18:47
2c49bee
Compare
Choose a tag to compare
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

23 Nov 13:18
3931a06
Compare
Choose a tag to compare
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

22 Nov 10:24
1042870
Compare
Choose a tag to compare
This patch was authored and released by @fabianfett.

This is a cherry pick of #188.

Modifications

  • DataRow and RowDescription have been moved out of the PSQLBackendMessage namespace. This allows us to mark them as @inlinable or @usableFromInline at a later point, without marking everything in PSQLBackendMessage as @inlinable
  • DataRow does not use an internal array for its columns anymore. Instead all read operations are directly done on its ByteBuffer slice.
  • DataRow implements the Collection protocol now.

Result

One allocation fewer per queried row.

Make password hashing fast

21 Oct 07:12
c5eda6c
Compare
Choose a tag to compare
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

23 Sep 18:09
046d3ba
Compare
Choose a tag to compare

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

  • Add PSQLBackendMessageEncoder (#175)
  • Add PSQLFrontendMessageDecoder (#178)

PostgresNIO 1.6.1

19 Aug 14:50
6a9eb6f
Compare
Choose a tag to compare

SemVer Patch

  • Fix NIOSSL deprecation warnings (#168) (patch credit to @jareyesda)
  • Fix NIO imports (#171)

Other Changes

  • Splits CI Jobs Into Unit And Integration Tests On Linux (#169) (patch credit to @dnadoba)

1.6.0

28 Jul 16:43
1d37934
Compare
Choose a tag to compare
  • Add platform requirements for iOS, watchOS and tvOS (#154)
  • Update api-docs.yml (#156) Thanks @JaapWijnen
  • Split out IntegrationTests into separate testTarget (#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 PSQLFormat when encoding and decoding (#158)
  • Support AWS Redshift queries - SELECT Metadata without row number (#167) Thanks @grennis

Ignore errors when closing the connection

21 Apr 13:44
33eea14
Compare
Choose a tag to compare
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.