Dear MySQL users,
MySQL Connector/NET 8.0.11 is the first general availability release of
Connector/NET to add support for the new X DevAPI. The X DevAPI
enables application developers to write code that combines the strengths
of the relational and document models using a modern, NoSQL-like syntax
that does not assume previous experience writing traditional SQL.
To learn more about how to write applications using the X DevAPI, see
http://dev.mysql.com/doc/x-devapi-userguide/en/index.html. For more
information about how the X DevAPI is implemented in Connector/NET, see
http://dev.mysql.com/doc/dev/connector-net. Users relying on NuGet packages need to install the MySql.Data package to be able to use the X DevAPI.
Please note that the X DevAPI requires at least MySQL Server version
5.7.12 or higher with the X Plugin enabled. For general documentation
about how to get started using MySQL as a document store, see
http://dev.mysql.com/doc/refman/5.7/en/document-store.html.
To download Connector/NET 8.0.11, see
http://dev.mysql.com/downloads/connector/net/.
Installation instructions can be found at https://dev.mysql.com/doc/connector-net/en/connector-net-installation.html.
Changes in MySQL Connector/NET 8.0.11 (2018-04-19)
Functionality Added or Changed
* X DevAPI: Connector/NET now supports the NOWAIT and
SKIP_LOCKED locking options introduced in the MySQL 8.0
release series (see SELECT Syntax
(http://dev.mysql.com/doc/refman/5.7/en/select.html)).
The following changes were made to the Connector/NET API:
+ The LockContention enumeration (with values
Default=0, NoWait=1 and SkipLocked=2) was added. The
Default enumeration member represents the previous
behavior of waiting for the row locks to be
released.
+ The existing LockShared() and LockExclusive() method
signatures were modified to include the new
LockContention parameter. Both methods are members
of the MySqlX.XdevAPI.CRUD.FindStatement and
MySqlX.XdevAPI.Relational.TableSelectStatement
classes.
+ Usage examples:
// Default behavior - waits for the row locks to release
LockShared()
LockShared(LockContention.Default)
LockExclusive()
LockExclusive(LockContention.Default)
// New - fails if the rows are locked
LockShared(LockContention.NoWait)
LockExclusive(LockContention.NoWait)
// New - succeeds excluding the locked rows from the result
LockShared(LockContention.SkipLocked)
LockExclusive(LockContention.SkipLocked)
* X DevAPI: Previously, when documents without an _id
attribute were added to a collection, Connector/NET
automatically generated IDs for them. Now the server
generates the _id attribute, unless a document already
contains one. The generated IDs resulting from a
document-add operation can be obtained using the new
Result.GeneratedIds property, which returns a list.
This capability requires a MySQL 8.0 GA server. If the
server does not support document ID generation, the
document-add operation returns an error indicating that
document IDs were missing.
Incompatibility: The GeneratedIds property replaces the
DocumentId and DocumentIds properties, which are now
removed.
* X DevAPI: Support for the SHA256_MEMORY authentication
mechanism was added to enable non-PLAIN insecure
connections (without SSL) for user accounts with
caching_sha2_password, which is the default
authentication plugin introduced in the MySQL 8.0 release
series. The changes related to this support include:
+ New synonyms for the auth connection string option:
authentication and authentication mode (see General
Options
(http://dev.mysql.com/doc/connector-net/en/connector-net-connection-options.
html#connector-net-connection-options-general)).
+ A new authentication mode for the
MySqlAuthenticationMode enumeration: SHA256_MEMORY.
In addition, the Default member now has a new
synonym: Auto=0.
+ A new class:
MySql.Data.MySqlClient.Authentication.Sha256MemoryAu
thenticationPlugin.
* Support was added for the new caching_sha2_password
padding mechanism introduced in the MySQL 8.0 release
series. The new padding mechanism is enabled when all of
the following conditions apply:
+ The user account is set with the
caching_sha2_password authentication plugin.
+ SSL is disabled explicitly (SslMode=none).
+ The AllowPublicKeyRetrieval connection option is
enabled (AllowPublicKeyRetrieval=true).
When enabled, the new padding mechanism is used to encode
the password during RSA key encryption, which applies the
correct padding to match the server.
Bugs Fixed
* Attempting to open the MySQL Web Configuration Tool, with
Connector/NET and MySQL for Visual Studio prerequisites
installed properly, displayed an error message instead of
opening the tool. (Bug #27457398, Bug #88544)
* MySQL Installer could not be installed with NuGet
packages from Microsoft Visual Studio 2015. (Bug
#27251839, Bug #88838)
* When a decimal column was defined with a scale of zero,
such as DECIMAL(8, 0), the value of the NumericPrecision
field returned by the MySqlDataReader.GetSchemaTable
method was lower by one. For example, it returned 7
instead of 8 as expected. (Bug #26954812, Bug #88058)
* The data table returned by the
MySqlDataReader.GetSchemaTable method had an inaccurate
value of zero assigned to the ColumnSize field for
LONGTEXT and LONGBLOB data types, and also indicated that
the IsLong field value was false when it should have
returned true. (Bug #26876592, Bug #87876)
* The MySqlDataReader.GetSchemaTable method returned
different column-size values when used with different
character sets. (Bug #26876582, Bug #87868)
* Support for making a secure connection to a server
configured to use TLSv1.2 was limited by external
factors. (Bug #25689154)
* Connection strings that included TLS/SSL connection
parameters in URI type-string format generated an
exception instead of making a connection with the X
Protocol. (Bug #24510329)
* Attempting to generate an Entity Framework model from a
MySQL 5.7 database using either EF5 or EF6 produced an
exception that prevented the operation from generating
the expected model. (Bug #22173048, Bug #79163)