Skip to content

Releases: vapor/mysql-nio

Fix handling of null columns in TextResultSetRow

07 Oct 19:13
4cbef4c
Compare
Choose a tag to compare
This patch was authored by @NobodyNada and released by @tanner0101.

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).

Fix auth using empty password with MySQL 5.7

25 Aug 07:37
2a17a53
Compare
Choose a tag to compare
This patch was authored and released by @gwynne.

The following changes have been made:

  • When using the mysql_native_password auth plugin (or when authenticating with MySQL 5.7 in general), an empty password is now correctly treated as specifying no password at all. Fixes vapor/fluent-mysql-driver#195.

  • The .CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA capability, which improves and simplifies auth handling in some common cases, is now correctly supported and reported as such.

  • The unit tests now support the MYSQL_USERNAME, MYSQL_PASSWORD, MYSQL_DATABASE, and MYSQL_PORT env vars.

  • Small code cleanups.

Major fixes to authentication support

30 Jul 15:31
1e85541
Compare
Choose a tag to compare
This patch was authored and released by @gwynne.

Fixes the following failure modes:

  • In tests, certain errors would crash instead of failing
  • The xor(_:_:) utility did not correctly apply the operation to the entire buffer.
  • Most protocol errors now throw a much more specific error.
  • Trace logging is now more verbose during authentication.
  • The AuthSwitchRequest packet (tagged with 0xfe during the authentication phase, incorrectly treated as EOF before) is now correctly handled; this permits both the use of arbitrary auth plugins and the use of the "fast auth" mechanism.
  • The caching_sha2_password handling would previously incorrectly treat the trailing NUL as part of the auth data.
  • The fast_auth_success (0x1 0x3) packet during authentication is now correctly handled.
  • When the caching_sha2_password plugin fails to authenticate on non-TLS connections, we now log a useful error message and throw a meaningful error. The framework is in place to implement this fully as soon as a usable implementation of the RSA public-key encrypt operation (with PEM armor and PKCS#1-OAEP padding support) is available.

This massively increases compatibility with all supported versions of MySQL and MariaDB and paves the way for further improvements.

Tagged semver-minor due to the new enumerators for the more specific errors.

Fix MYSQL_TIME data type

30 Jul 15:16
1604c35
Compare
Choose a tag to compare
This patch was authored and released by @tanner0101.

Fixes an issue causing MYSQL_TIME to use an incorrect data type when sending time or date only values (#54).

Docs + missing functionality

28 Jul 21:11
714de3d
Compare
Choose a tag to compare
This patch was authored and released by @tanner0101.

Adds docs and implements missing functionality from PostgresNIO (#52).

  • Adds README docs.
  • Adds contributing.md docs
  • Adds missing MySQLData fixed-width integer properties (int8, int16, uint32, etc).
  • Adds serverHostname parameter to MySQLConnection.connect.

MYSQL_TIME improvements

28 Jul 20:15
b72fdcd
Compare
Choose a tag to compare
This patch was authored and released by @tanner0101.

Adds support for 8 and 12 byte (time only) MYSQL_TIME formats (#50, fixes #49).

⚠️ Breaking change: Makes MySQLTime stored properties and date optional. Previously these methods could crash when used with a time-only value.

MySQLNIO 1.0.0

22 Jul 19:11
687a9ba
Compare
Choose a tag to compare

Add server version check

22 Jul 17:32
687a9ba
Compare
Choose a tag to compare
Pre-release
This patch was authored and released by @tanner0101.

Adds a check to ensure the server version is supported (#41, fixes #39).

Unsupported MySQL server versions will now log an error during handshake.

Improve CI

20 Jul 21:39
a3d241f
Compare
Choose a tag to compare
Improve CI Pre-release
Pre-release
This patch was authored and released by @tanner0101.

Adds additional Swift image tests, MariaDB tests, and dependent package tests (#40, fixes #21).

Improve CI

20 Jul 21:39
a3d241f
Compare
Choose a tag to compare
Improve CI Pre-release
Pre-release
This patch was authored and released by @tanner0101.

Adds additional Swift image tests, MariaDB tests, and dependent package tests (#40, fixes #21).