MySQL Connector/NET Release Notes
This release fixes bugs since 6.2.3.
Procedure caching had a problem whereby if you created a procedure, dropped it, and recreated it with a different number of parameters an exception was generated.
MySQL Connector/NET has been changed so that if the procedure is recreated with a different number of parameters, it will still be recognized. (Bug #52562)
The calculation of lockAge
in the Session
Provider sometimes generated a
System.Data.SqlTypes.SqlNullValueException
.
(Bug #55701)
Attempting to read Double.MinValue
from a
DOUBLE
column in MySQL table generated the
following exception:
System.OverflowException : Value was either too large or too small for a Double. --OverflowException at System.Number.ParseDouble(String value, NumberStyles options, NumberFormatInfo numfmt) at MySql.Data.Types.MySqlDouble.MySql.Data.Types.IMySqlValue.ReadValue(MySqlPacket packet, Int64 length, Boolean nullVal) at MySql.Data.MySqlClient.NativeDriver.ReadColumnValue(Int32 index, MySqlField field, IMySqlValue valObject) at MySql.Data.MySqlClient.ResultSet.ReadColumnData(Boolean outputParms) at MySql.Data.MySqlClient.ResultSet.NextRow(CommandBehavior behavior) at MySql.Data.MySqlClient.MySqlDataReader.Read()
(Bug #55644)
After an exception, the internal datareader,
MySqlCommand.Connection.Reader
, was not
properly closed (it was not set to null). If another query was
subsequently executed on that command object an exception was
generated with the message “There is already an open
DataReader associated with this Connection which must be closed
first.”
(Bug #55558)
If using MySQL Server 5.0.x it was not possible to alter stored routines in Visual Studio. If the stored routine was clicked, and the context sensitive menu option, Alter Routine, selected, the following error was generated:
Unable to load object with error: Object reference not set to an instance of an object
(Bug #55170)
MySqlDataAdapter.Update()
generated
concurrency violations for custom stored procedure driven update
commands that used
UpdateRowSource.FirstReturnedRecord
.
(Bug #54895)
Several calls to DataAdapter.Update()
with
intervening changes to DataTable
resulted in
ConcurrencyException
exceptions being
generated.
(Bug #54863)
The icon for the MySQL Web Configuration Tool was not displayed in Visual Studio for Web Application Projects. (Bug #54571)
The MySqlHelper
object did not have an
overloaded version of the ExecuteReader
method that accepted a MySqlConnection
object.
(Bug #54570)
If MySqlDataAdapter
was used with an
INSERT
command where the
VALUES
clause contained an expression with
parentheses in it, and set the
adapter.UpdateBatchSize
parameter to be
greater than one, then the call to
adapter.Update
either generated an exception
or failed to batch the commands, executing each insert
individually.
(Bug #54386)
The method
MySql.Data.Common.QueryNormalizer.CollapseValueList
generated an ArgumentOutOfRangeException
.
(Bug #54152, Bug #53865)
MySQL Connector/NET did not process Thread.Abort()
correctly, and failed to cancel queries currently running on the
server.
(Bug #54012)
Garbage Collector disposal of a
MySqlConnection
object caused the following
exception:
System.IO.EndOfStreamException: Attempted to read past the end of the stream. MySql.Data.MySqlClient.MySqlStream.ReadFully(Stream stream, Byte[] buffer, Int32 offset, Int32 count) MySql.Data.MySqlClient.MySqlStream.LoadPacket() Outer Exception Reading from the stream has failed. ...
(Bug #53457)
MySQL Connector/NET did not throw an EndOfStreamException
exception when net_write_timeout
was
exceeded.
(Bug #53439)
After a timeout exception, if an attempt was made to reuse a connection returned to the connection pool the following exception was generated:
[MySqlException (0x80004005): There is already an open DataReader associated with this Connection which must be closed first.] MySql.Data.MySqlClient.MySqlCommand.CheckState() +278 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) +43 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader() +6 Controls.SimpleCommand.ExecuteReader(String SQL) in ...:323 Albums.GetImagesByAlbum(SimpleCommand Cmd, Int32 iAlbum, String Order, String Limit) in ...:13 Forecast.Page_Load(Object sender, EventArgs e) in ...:70 System.Web.UI.Control.OnLoad(EventArgs e) +99 System.Web.UI.Control.LoadRecursive() +50 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
(Bug #53357)
Membership schema creation failed if the default schema collation was not Latin1. (Bug #53174)
In MySQL Connector/NET, the MySqlConnection.Abort()
method contained a try...catch
construct,
with an empty catch
block. This meant that
any exception generated at this point would not be caught.
(Bug #52769)
EventLog was not disposed in the SessionState provider. (Bug #52550)
The procedure cache affected the MySQL Connector/NET performance, reducing
it by around 65%. This was due to unnecessary calls of
String.Format()
, related to debug logging.
Even though the logging was disabled the string was still being
formatted, resulting in impaired performance.
(Bug #52475)
If FunctionsReturnString=true
was used in the
connection string, the decimal separator (according to locale)
was not interpreted.
(Bug #52187)
Periodically the session provider threw an
SqlNullValueException
exception. When this
happened, the row within the
my_aspnet_Sessions
table had
locked
always set to '1'. The locked status
never changed back to '0' and the user experienced the exception
on every page, until their browser was closed and reopened
(recreating a new sessionID), or the locked
value was manually changed to '0'.
(Bug #52175)
CHAR(36)
columns were not recognized as GUIDs
when used in views with entity models.
(Bug #52085)
In MySQL Connector/NET, the LoadCharsetMap()
function of
the CharSetMap
class set the following
incorrect mapping:
mapping.Add("latin1", new CharacterSet("latin1", 1));
This meant that, for example, the Euro sign was not handled correctly.
The correct mapping should have been:
mapping.Add("latin1", new CharacterSet("windows-1252", 1));
This is because the MySQL latin1
character
set is the same as the windows-cp1252
character set and it extends the official ISO 8859-1 or IANA
latin1.
(Bug #51927)
Stored procedure enumeration code generated an error if a procedure was used in a dataset that did not return any resultsets. (Bug #50671)
When an application was subjected to increased concurrent load, MySQL Connector/NET generated the following error when calling stored procedures:
A DataTable named \'Procedure Parameters\' already belongs to this DataSet.
(Bug #49118)
In the ADO.NET Entity Data Model Wizard, the time to update a model scaled abnormally as the number of entities increased. (Bug #48791, Bug #12596237)
The INSERT
command was significantly slower
with MySQL Connector/NET 6.x compared to 5.x, when compression was enabled.
(Bug #48243)
When the connection string option “Connection Reset = True” was used, a connection reset used the previously used encoding for the subsequent authentication operation. This failed, for example, if UCS2 was used to read the last column before the reset. (Bug #47153)
Opening a connection in the Visual Studio Server Explorer and choosing to alter an existing routine required another authentication at the server. (Bug #44715)
When batching was used in MySqlDataAdapter
, a
connection was not opened automatically in
MySqlDataAdapter.Update()
. This resulted in
an InvalidOperationException
exception being
generated, with the message text “connection must be valid
and open”.
MySQL Connector/NET has been changed to behave more like SQL Server: if the connection is closed, it is opened for the duration of update operation. (Bug #38411)
Database name was emitted into typed datasets. This prevented users using the configured default database. (Bug #33870)