MySQL Connector/NET Release Notes  /  Changes in MySQL Connector/Net 6.1  /  Changes in MySQL Connector/NET 6.1.4 (2010-04-28)

Changes in MySQL Connector/NET 6.1.4 (2010-04-28)

This release fixes bugs since 6.1.3.

Functionality Added or Changed

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

  • MySQL Connector/NET has been changed to include MySqlDataReader.GetFieldType(string columnname). Further, MySqlDataReader.GetOrdinal() now includes the name of the column in the exception if the column is not found. (Bug #47467)

Bugs Fixed

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

  • If FunctionsReturnString=true was used in the connection string, the decimal separator (according to locale) was not interpreted. (Bug #52187)

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

  • A non-terminated string in SQL threw a CLR exception rather than a syntax exception. (Bug #51788)

  • When calling ExecuteNonQuery on a command object, the following exception occurred:

    Index and length must refer to a location within the string.
    Parameter name: length

    (Bug #51610)

  • The method Command.TrimSemicolons used StringBuilder, and therefore allocated memory for the query even if it did not need to be trimmed. This led to excessive memory consumption when executing a number of large queries. (Bug #51149)

  • MySqlCommand.Parameters.Clear() did not work. (Bug #50444)

  • When the MySqlScript.execute() method was called, the following exception was generated:

    InvalidOperationException : The CommandText property has not been properly initialized.

    (Bug #50344)

  • Binary Columns were not displayed in the Query Builder of Visual Studio. (Bug #50171)

  • When the UpdateBatchSize property was set to a value greater than 1, only the first row was applied to the database. (Bug #50123)

  • When using table per type inheritance and listing the contents of the parent table, the result of the query was a list of child objects, even though there was no related child record with the same parent Id. (Bug #49850)

  • MySqlDataReader.GetUInt64 returned an incorrect value when reading a BIGINT UNSIGNED column containing a value greater than 2147483647. (Bug #49794)

  • A FormatException was generated when an empty string was returned from a stored function. (Bug #49642)

  • When adding a data set in Visual Studio 2008, the following error was generated:

    Relations couldn't be added. Column 'REFERENCED_TABLE_CATALOG' does not belong to table.

    This was due to a 'REFERENCED_TABLE_CATALOG' column not being included in the foreign keys collection. (Bug #48974)

  • Attempting to execute a load data local infile on a file where the user did not have write permissions, or the file was open in an editor gave an access denied error. (Bug #48944)

  • The method MySqlDataReader.GetSchemaTable() returned 0 in the NumericPrecision field for decimal and newdecimal columns. (Bug #48171)

  • When trying to create stored procedures from an SQL script, a MySqlException was thrown when attempting to redefine the DELIMITER:

    MySql.Data.MySqlClient.MySqlException was unhandled
    Message="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 'DELIMITER' at line 1"
    à MySql.Data.MySqlClient.MySqlStream.ReadPacket()
    à MySql.Data.MySqlClient.NativeDriver.ReadResult(UInt64& affectedRows, Int64&
    à MySql.Data.MySqlClient.MySqlDataReader.GetResultSet()
    à MySql.Data.MySqlClient.MySqlDataReader.NextResult()
    à MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
    à MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()
    à MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
    à MySql.Data.MySqlClient.MySqlScript.Execute()

    Note: The MySqlScript class has been fixed to support the delimiter statement as it is found in SQL scripts. (Bug #46429)

  • Calling a User Defined Function using Entity SQL in the Entity Framework caused a NullReferenceException. (Bug #45277)

  • A connection string set in web.config could not be reused after Visual Studio 2008 Professional was shut down. It continued working for the existing controls, but did not work for new controls added. (Bug #41629)