🐬 Non-blocking, event-driven Swift client for MySQL.
Tidy up package a bit by @gwynne in #103
Fixes #102.
Also does some rather overdue general cleanup of the repo. No functional changes.
Thanks to the reviewers for their help:
Full Changelog: https://github.com/vapor/mysql-nio/compare/1.7.0...1.7.1
Add support for reading timestamp columns in text format.
Fixes #71
Items of note:
assert()
s, precondition()
s, and fatalError()
s with thrown errors as appropriate. Removes almost every source of crashes - especially ones caused by input the user has no control over - in the package.invalidProtocolVersion()
instead of the appropriate .server(ERR_Packet)
)With the rewrite finally back to being actively worked on, it became really obvious how easy these fixes were to make even in the existing code, and I decided users shouldn't have to wait any longer for them, even if the rewrite drops the next day.
Adds the correct platform versions to match the Swift Crypto dependency to enable building on all platforms.
Solves #81
semver-minor
due to adding a new case on MySQLError
.
Needs patch release.
readNullTerminatedString()
implementation with the much more efficient version used by PostgresNIO.writeNullTerminatedString()
, writeLengthEncodedInteger()
, and writeLengthEncodedSlice()
return the number of bytes written, to match ByteBuffer
method conventions.[read|write]LengthEncodedInteger()
, might be slightly faster but probably not enough to notice.Fixes #63.
Also fixes a minor thread-safety issue and clears up deprecation warnings from NIOSSL.
When TextResultSetRow
encountered a null column, it did not increment the buffer index, and so it would repeatedly read NULL
into every remaining column. This patch fixes the issue and adds regression tests (#57).