This is a new release, fixing recently discovered bugs.
Bugs fixed:
Cloning of
MySqlCommand
was not typesafe. To clone aMySqlCommand
it was necessary to do:MySqlCommand clone = (MySqlCommand)((ICloneable)comm).Clone();
MySQL Connector/NET was changed so that it was possible to do:
MySqlCommand clone = comm.Clone();
If
MySqlConnection.GetSchema
was called for "Indexes" on a table named “b`a`d” as follows:DataTable schemaPrimaryKeys = connection.GetSchema( "Indexes", new string[] { null, schemaName, "b`a`d"});
Then the following exception was generated:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'a`d`' at line 1
It was not possible to retrieve a value from a MySQL server table, if the value was larger than that supported by the .NET type
System.Decimal
.MySQL Connector/NET was changed to expose the
MySqlDecimal
type, along with the supporting methodGetMySqlDecimal
. (Bug#48100)An entity model created from a schema containing a table with a column of type
UNSIGNED BIGINT
and a view of the table did not behave correctly. When an entity was created and mapped to the view, the column that was of typeUNSIGNED BIGINT
was displayed asBIGINT
. (Bug#47872)When loading the
MySQLClient-mono.sln
file included with the Connector/NET source into Mono Develop, the following error occurred:/home/tbedford/connector-net-src/6.1/MySQLClient-mono.sln(22): Unsupported or unrecognized project: '/home/tbedford/connector-net-src/6.1/Installer/Installer.wixproj'
If the file was modified to remove this problem, then attempting to build the solution generated the following error:
/home/tbedford/connector-net-src/6.1/MySql.Data/Provider/Source/Connection.cs(280,46): error CS0115: `MySql.Data.MySqlClient.MySqlConnection.DbProviderFactory' is marked as an override but no suitable property found to override
If an error occurred during connection to a MySQL Server, deserializing the error message from the packet buffer caused a
NullReferenceException
to be thrown. When the methodMySqlPacket::ReadString()
attempted to retrieve the error message, the following line of code threw the exception:string s = encoding.GetString(bits, (int)buffer.Position, end - (int)buffer.Position);
This was due to the fact that the encoding field had not been initialized correctly. (Bug#46844)
In the
MySqlDataReader
class theGetSByte
function returned abyte
value instead of ansbyte
value. (Bug#46620)The MySQL Connector/NET Profile Provider,
MySql.Web.Profile.MySQLProfileProvider
, generated an error when running on Mono. When an attempt was made to save a string inProfile.Name
the string was not saved to themy_aspnet_Profiles
table. If an attempt was made to force the save withProfile.Save()
the following error was generated:Server Error in '/mono' Application -------------------------------------------------------------------------------- The requested feature is not implemented. Description: HTTP 500. Error processing request. Stack Trace: System.NotImplementedException: The requested feature is not implemented. at MySql.Data.MySqlClient.MySqlConnection.EnlistTransaction (System.Transactions.Transaction transaction) [0x00000] at MySql.Data.MySqlClient.MySqlConnection.Open () [0x00000] at MySql.Web.Profile.MySQLProfileProvider.SetPropertyValues (System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyValueCollection collection) [0x00000] -------------------------------------------------------------------------------- Version information: Mono Version: 2.0.50727.1433; ASP.NET Version: 2.0.50727.1433
An exception was generated when using
TIMESTAMP
columns with the Entity Framework. (Bug#46311)MySQL Connector/NET sometimes hung, without generating an exception. This happened if a read from a stream failed returning a 0, causing the code in
LoadPacket()
to enter an infinite loop. (Bug#46308)When using MySQL Connector/NET 6.0.4 and a MySQL Server 4.1 an exception was generated when trying to execute:
connection.GetSchema("Columns", ...);
The exception generated was:
'connection.GetSchema("Columns")' threw an exception of type 'System.ArgumentException'System.Data.DataTable {System.ArgumentException} base{"Input string was not in a correct format.Couldn't store <'Select'> in NUMERIC_PRECISION Column. Expected type is UInt64."}System.Exception {System.ArgumentException}
The MySQL Connector/NET method
StoredProcedure.GetParameters(string)
ignored the programmer's setting of theUseProcedureBodies
option. This broke any application for which the application's parameter names did not match the parameter names in the Stored Procedure, resulting in anArgumentException
with the message “Parameter 'foo' not found in the collection.” and the following stack trace:MySql.Data.dll!MySql.Data.MySqlClient.MySqlParameterCollection.GetParameterFlexible(stri ng parameterName = "pStart", bool throwOnNotFound = true) Line 459C# MySql.Data.dll!MySql.Data.MySqlClient.StoredProcedure.Resolve() Line 157 + 0x25 bytesC# MySql.Data.dll!MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(System.Data.CommandBeha vior behavior = SequentialAccess) Line 405 + 0xb bytesC# MySql.Data.dll!MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReader(System.Data.Comma ndBehavior behavior = SequentialAccess) Line 884 + 0xb bytesC# System.Data.dll!System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(System .Data.CommandBehavior behavior) + 0xb bytes System.Data.dll!System.Data.Common.DbDataAdapter.FillInternal(System.Data.DataSet dataset = {System.Data.DataSet}, System.Data.DataTable[] datatables = null, int startRecord = 0, int maxRecords = 0, string srcTable = "Table", System.Data.IDbCommand command = {MySql.Data.MySqlClient.MySqlCommand}, System.Data.CommandBehavior behavior) + 0x83 bytes System.Data.dll!System.Data.Common.DbDataAdapter.Fill(System.Data.DataSet dataSet, int startRecord, int maxRecords, string srcTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior) + 0x120 bytes System.Data.dll!System.Data.Common.DbDataAdapter.Fill(System.Data.DataSet dataSet) + 0x5f bytes
Conversion of MySQL
TINYINT(1)
toboolean
failed. (Bug#46205, Bug#46359, Bug#41953)When populating a MySQL database table in Visual Studio using the Table Editor, if a
VARCHAR(10)
column was changed to aVARCHAR(20)
column an exception was generated:SystemArgumentException: DataGridViewComboBoxCell value is not valid. To replace this default dialog please handle the DataError Event.
In MySQL Connector/NET 6.0.4 using
GetProcData
generated an error because theparameters
data table was only created if MySQL Server was at least version 6.0.6, or if theUseProcedureBodies
connection string option was set to true.Also the
DeriveParameters
command generated a null reference exception. This was because theparameters
data table, which was null, was used in afor each
loop. (Bug#45952)The Entity Framework provider was not calling
DBSortExpression
correctly when theSkip
andTake
methods were used, such as in the following statement:TestModel.tblquarantine.OrderByDescending(q => q.MsgDate).Skip(100).Take(100).ToList();
This resulted in the data being unsorted. (Bug#45723)
The
EscapeString
code carried out escaping by callingstring.Replace
multiple times. This resulted in a performance bottleneck, as for every line a new string was allocated and another was disposed of by the garbage collector. (Bug#45699)Adding the
Allow Batch=False
option to the connection string caused MySQL Connector/NET to generate the error:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET character_set_results=NULL' at line 1
The MySQL Connector/NET 6.0.4 installer failed with an error. The error message generated was:
There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor.
When Bug#45474)
was clicked to acknowledge the error the installer exited. (A MySQL Connector/NET test program that connected to MySQL Server using the connection string option
compress=true
crashed, but only when running on Mono. The program worked as expected when running on Microsoft Windows.This was due to a bug in Mono. MySQL Connector/NET was modified to avoid using
WeakReferences
in theCompressed
stream class, which was causing the crash. (Bug#45463)Calling the Entity Framework
SaveChanges()
method of any MySQL ORM Entity with a column typeTIME
, generated an error message:Unknown PrimitiveKind Time
Insert into two tables failed when using the Entity Framework. The exception generated was:
The value given is not an instance of type 'Edm.Int32'
Input parameters were missing from Stored Procedures when using them with ADO.NET Data Entities. (Bug#44985)
Errors occurred when using the Entity Framework with cultures that used a comma as the decimal separator. This was because the formatting for
SINGLE
,DOUBLE
andDECIMAL
values was not handled correctly. (Bug#44455)When attempting to connect to MySQL using the Compact Framework version of MySQL Connector/NET, an
IndexOutOfRangeException
exception was generated on trying to open the connection. (Bug#43736)When reading data, such as with a
MySqlDataAdapter
on aMySqlConnection
, MySQL Connector/NET could potentially enter an infinite loop inCompressedStream.ReadNextpacket()
if compression was enabled. (Bug#43678)An error occurred when building MySQL Connector/NET from source code checked out from the public SVN repository. This happened on Linux using Mono and Nant. The Mono JIT compiler version was 1.2.6.0. The Nant version was 0.85.
When an attempt was made to build (for example) the MySQL Connector/NET 5.2 branch using the command:
$ nant -buildfile:Client.build
The following error occurred:
BUILD FAILED Error loading buildfile. Encoding name 'Windows-1252' not supported. Parameter name: name
After a Reference to "C:\Program Files\MySQL\MySQL Connector Net 5.2.4\Compact Framework\MySql.Data.CF.dll" was added to a Windows Mobile 5.0 project, the project then failed to build, generating a Microsoft Visual C# compiler error.
The error generated was:
Error 2 The type 'System.Runtime.CompilerServices.CompilerGeneratedAttribute' has no constructors defined MysqlTest Error 3 Internal Compiler Error (0xc0000005 at address 5A7E3714): likely culprit is 'COMPILE'.
MySQL Connector/NET CHM documentation stated that MySQL Server 3.23 was supported. (Bug#42110)
In the case of long network inactivity, especially when connection pooling was used, connections were sometimes dropped, for example, by firewalls.
Note: The bugfix introduced a new
keepalive
parameter, which prevents disconnects by sending an empty TCP packet after a specified timeout. (Bug#40684)MySQL Connector/NET generated the following exception:
System.NullReferenceException: Object reference not set to an instance of an object. bei MySql.Data.MySqlClient.MySqlCommand.TimeoutExpired(Object commandObject) bei System.Threading._TimerCallback.TimerCallback_Context(Object state) bei System.Threading.ExecutionContext.runTryCode(Object userData) bei System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) bei System.Threading._TimerCallback.PerformTimerCallback(Object state)
Calling a Stored Procedure with an output parameter through MySQL Connector/NET resulted in a memory leak. Calling the same Stored Procedure without an output parameter did not result in a memory leak. (Bug#36027)
Using a
DataAdapter
with a linkedMySqlCommandBuilder
the following exception was thrown when trying to callda.Update(DataRow[] rows)
:Connection must be valid and open