MySqlConnector

MySQL Connector for .NET

MIT License

Stars
1.4K
Committers
76

Bot releases are hidden (Show)

MySqlConnector -

Published by bgrainger about 3 years ago

  • Breaking Remove ConnectionIdlePingTime: #1042.
    • The Connection Idle Ping Time connection string option is still accepted, but has no effect.
    • If Connection Reset = False, MySqlConnection.Open will return a pooled connection (if one is available) without testing it for liveness (by pinging the server). This improves performance but may degrade reliability. (Connection Reset = True, which is the default, is still recommended for greatest reliability.)
    • If the server has closed the pooled connection, MySqlConnection.Open will succeed, but the first operation on that connection will fail. Command execution should be wrapped in a try/catch/retry loop to handle this scenario.
  • Add more values to MySqlErrorCode: #1048.
  • Fix bug executing stored procedures with backticks in their names: #1029.
  • Remove inner exception for UnableToConnectToHost exception: #1035.
  • Fix rare ObjectDisposedException that could be thrown when a connection timeout occurred.
  • Reword "recovering leaked sessions" log message.
MySqlConnector -

Published by bgrainger about 3 years ago

  • Remove inner exception for UnableToConnectToHost exception: #1035.
  • Reword "recovering leaked sessions" log message.
MySqlConnector -

Published by bgrainger about 3 years ago

  • Fix bug executing stored procedures with backticks in their names: #1029.
MySqlConnector -

Published by bgrainger about 3 years ago

  • Breaking Remove netstandard1.3 target framework: #1031.
  • Breaking Seal MySqlCommandBuilder and MySqlConversionException.
  • Fix incorrect value for MySqlCommand.LastInsertedId when executing multiple commands: #1026.
  • Add [Category], [DefaultValue], and [Description] attributes to all MySqlConnectionStringBuilder properties.
  • Fix MySqlConnectionStringBuilder.TryGetValue: #1030.
  • Breaking Change how option keys are serialized when retrieving the MySqlConnectionStringBuilder.ConnectionString property:
    • For example, User Id is now User ID, DefaultCommandTimeout is now Default Command Timeout, etc.
    • All existing connection strings are still valid, and all the previous aliases for connection string options are still accepted.
    • The primary connection string option key is listed first in the documentation at https://mysqlconnector.net/connection-options/.
MySqlConnector -

Published by bgrainger about 3 years ago

  • Support .NET 6.0 Preview 7
    • Breaking Update the MySqlBatch (experimental API) to match the latest .NET 6.0 API changes.
  • Throw an informative exception if DELIMITER is used in a SQL statement: #1010.
  • Fix bug that failed to deserialize a binary row (from a prepared statement) correctly: #1018.
MySqlConnector -

Published by bgrainger over 3 years ago

  • Reduce default log message severity: #981.
  • Make MySqlError.Code obsolete: #1011.
    • Use ErrorCode property instead.
  • Remove BackgroundConnectionResetHelper: #1013.
    • MySqlConnectionStringBuilder.DeferConnectionReset is obsolete and will always be treated as if it's true.
  • Support .NET 6.0 Preview:
    • Support DateOnly and TimeOnly structs: #963.
    • Use ZLibStream for compression: #957.
    • Use X_OR_GREATER preprocessor definitions: #958.
MySqlConnector -

Published by bgrainger over 3 years ago

  • Add MySqlError.ErrorCode: #1011.
  • Allow MySqlDataReader.GetDateTime to read a VARCHAR column as a DateTime: #980.
  • Support the NEWDATE column type: #1007.
MySqlConnector -

Published by bgrainger over 3 years ago

  • Handle NoBackslashEscapes for binary parameter values: #999.
  • Fix NotSupportedException when cancelling a MySqlCommand in a TransactionScope: #1001.
  • Ignore InvalidOperationException thrown from MySqlConnection.Cancel: #1002.
  • Set the default value of DeferConnectionReset to true; this disables background connection reset and restores the pre-1.3 behavior.
  • Thanks to @kpreisser for contributions to this release.
MySqlConnector -

Published by bgrainger over 3 years ago

  • Use StringBuilder.GetChunks (in .NET 5.0) for MySqlParameter: #977.
  • Fix error encoding multibyte characters in MySqlBulkCopy: #974.
  • Fix error encoding multibyte characters for StringBuilder MySqlParameter values in .NET 5.0.
MySqlConnector -

Published by bgrainger over 3 years ago

  • Reduce latency of resetting connections: #982.
MySqlConnector -

Published by bgrainger over 3 years ago

  • Add support for SingleStore: #968.
  • Thanks to @carlsverre and @tavanesov-ua for contributions to this release.
MySqlConnector -

Published by bgrainger over 3 years ago

  • Add NuGet Package ReadMe: #978.
MySqlConnector -

Published by bgrainger over 3 years ago

  • Support StringBuilder, Memory<char>, and ReadOnlyMemory<char> as MySqlParameter.Value values: #975.
  • Fix ArgumentException in MySqlBulkCopy: #974.
MySqlConnector -

Published by bgrainger over 3 years ago

  • Improve compatibility with MySQL Server 8.0.24:
    • Ignore new ER_CLIENT_INTERACTION_TIMEOUT error packet sent to timed-out connections: #970.
    • Known Issue: Connections with UseCompression=true may throw a MySqlProtocolException when timed out.
MySqlConnector -

Published by bgrainger over 3 years ago

  • Support Enum parameters in prepared commands: #965.
  • Fix OverflowException reading OkPayload: #966.
  • Fix internal SQL parsing error with C-style comments.
MySqlConnector -

Published by bgrainger over 3 years ago

  • Fix a bug that could cause a timed-out query to still throw a QueryInterrupted MySqlException instead of CommandTimeoutExpired.
MySqlConnector -

Published by bgrainger over 3 years ago

  • Remove two new Info log messages added in 1.3.0: #956.
    • The equivalent messages in 1.2.1 were at Debug level.
  • Make Adler32 class internal.
    • This was not intended to be added to the public API in 1.3.0.
MySqlConnector -

Published by bgrainger over 3 years ago

  • Connections are now reset asynchronously in the background: #178.
    • This speeds up MySqlConnection.Open(Async) but still cleans up connections between uses.
    • Use DeferConnectionReset=true in the connection string to revert to the old behaviour.
    • Experimental Use ConnectionIdlePingTime=300 in the connection string to avoid any network I/O when retrieving a connection from the pool; this is fastest but may return invalid connections from Open. This setting is experimental and may change in the future.
  • Change default value of IgnorePrepare to false: #929.
    • Calling MySqlCommand.Prepare(Async) will have an effect by default.
  • Implement Azure Server Redirection: #789.
    • Support community protocol for server redirection: #945.
  • Support MemoryStream as a value for MySqlParameter.Value: #943.
  • Implement MySqlException.IsTransient: #849.
  • Implement IComparable<MySqlDateTime> and IEquatable<MySqlDateTime> on MySqlDateTime.
  • Breaking Remove public constructor for MySqlConversionException.
    • This constructor was never intended to be public.
  • Implement serialization for exceptions.
  • Report CommandTimeoutExpired consistently: #939.
    • This changes the MySqlException.ErrorCode from QueryInterrupted to CommandTimeoutExpired.
  • Nagle's Algorithm is disabled on TCP sockets: #921.
  • Adler32 checksum (for compressed packets) uses hardware acceleration: #865.
  • Set timeouts for cancellation operations from CancellationTimeout connection string option: #951.
  • Throw OperationCanceledException from OpenAsync when the CancellationToken is cancelled: #931.
  • Use transaction for 'SHOW WARNINGS': #918.
  • Improve exception message for unsupported parameter types: #925.
  • Fix exception in server version parsing: #934.
  • Fix silent failure to use TLS 1.3 (when explicitly requested) on older frameworks.
  • Fix error deserialising MySqlException.ErrorCode property.
  • Prevent exceptions being thrown from MySqlTransaction.Dispose: #923.
  • Fix nested MySqlException (thrown in some scenarios from ExecuteReader).
  • Use .NET 5.0 methods to load PEM certificates.
  • Thanks to @novak-as for contributions to this release.
MySqlConnector -

Published by bgrainger over 3 years ago

  • Adler32 checksum (for compressed packets) uses hardware acceleration: #865.
  • Report CommandTimeoutExpired consistently: #939.
  • MySqlException.IsTransient is now false for CommandTimeoutExpired: #940.
  • Support MemoryStream as a value for MySqlParameter.Value: #943.
  • Throw OperationCanceledException from OpenAsync when the CancellationToken is cancelled: #931.
  • Support community protocol for server redirection: #945.
  • Fix nested MySqlException (thrown in some scenarios from ExecuteReader).
  • Remove public constructor for MySqlConversionException.
  • Implement serialization for exceptions.
  • Use .NET 5.0 methods to load PEM certificates.
  • Thanks to @novak-as for contributions to this release.
MySqlConnector -

Published by bgrainger over 3 years ago

  • Implement Azure Server Redirection: #789.
  • Change default value of IgnorePrepare to false: #929.
    • Calling MySqlCommand.Prepare(Async) will have an effect by default.
  • Implement IComparable<MySqlDateTime> and IEquatable<MySqlDateTime> on MySqlDateTime.
  • Improve exception message for unsupported parameter types: #925.
  • Fix exception in server version parsing: #934.
  • Fix silent failure to use TLS 1.3 (when explicitly requested) on older frameworks.
Badges
Extracted from project README
NuGet AppVeyor Azure Pipelines Devolutions Faithlife
Related Projects