D.4. MySQL Connector/NET Change History

D.4.1. Version 1.0.8

  • An exception would be raised when using an output parameter to a System.String value. (Bug #17814)

  • The DiscoverParameters function would fail when a stored procedure used a NUMERIC parameter type. (Bug #19515)

  • When running a query that included a date comparison, a DateReader error would be raised. (Bug #19481)

  • Parameter substitution in queries where the order of parameters and table fields did not match would substitute incorrect values. (Bug #19261)

  • When working with multiple threads, character set initialization would generate errors. (Bug #17106)

  • When using an unsigned 64-bit integer in a stored procedure, the unsigned bit would be lost stored. (Bug #16934)

  • The connection string parser did not allow single or double quotes in the password. (Bug #16659)

  • The CommandBuilder ignored Unsigned flag at Parameter creation. (Bug #17375)

  • CHAR type added to MySqlDbType. (Bug #17749)

  • Unsigned data types were not properly supported. (Bug #16788)

D.4.2. Version 1.0.7

  • The parameter collection object's Add() method added parameters to the list without first checking to see whether they already existed. Now it updates the value of the existing parameter object if it exists. (Bug #13927)

  • A #42000Query was empty exception occurred when executing a query built with MySqlCommandBuilder, if the query string ended with a semicolon. (Bug #14631)

  • Implemented the MySqlCommandBuilder.DeriveParameters method that is used to discover the parameters for a stored procedure. (Bug #13632)

  • Added support for the cp932 character set. (Bug #13806)

  • Calling a stored procedure where a parameter contained special characters (such as '@') would produce an exception. Note that ANSI_QUOTES had to be enabled to make this possible. (Bug #13753)

  • A statement that contained multiple references to the same parameter could not be prepared. (Bug #13541)

  • The Ping() method did not update the State property of the Connection object. (Bug #13658)

D.4.3. Version 1.0.6

  • The nant build sequence had problems. (Bug #12978)

  • Serializing a parameter failed if the first value passed in was NULL. (Bug #13276)

  • Field names that contained the following characters caused errors: ()%<>/ (Bug #13036)

  • The MySQL Connector/NET 1.0.5 installer would not install alongside MySQL Connector/NET 1.0.4. (Bug #12835)

  • MySQL Connector/NET 1.0.5 could not connect on Mono. (Bug #13345)

D.4.4. Version 1.0.5

  • With multiple hosts in the connection string, MySQL Connector/NET would not connect to the last host in the list. (Bug #12628)

  • MySQL Connector/NET interpreted the new decimal data type as a byte array. (Bug #11294)

  • The cp1250 character set was not supported. (Bug #11621)

  • Connection could fail when .NET thread pool had no available worker threads. (Bug #10637)

  • Decimal parameters caused syntax errors. (Bug #11550, Bug #10486, Bug #10152)

  • A call to a stored procedure caused an exception if the stored procedure had no parameters. (Bug #11542)

  • Certain malformed queries would trigger a Connection must be valid and open error message. (Bug #11490)

  • The MySqlCommandBuilder class could not handle queries that referenced tables in a database other than the default database. (Bug #8382)

  • MySQL Connector/NET could not work properly with certain regional settings. (WL#8228)

  • Trying to use a stored procedure when Connection.Database was not populated generated an exception. (Bug #11450)

  • Trying to read a TIMESTAMP column generated an exception. (Bug #7951)

  • Parameters were not recognized when they were separated by linefeeds. (Bug #9722)

  • Calling MySqlConnection.clone when a connection string had not yet been set on the original connection would generate an error. (Bug #10281)

  • Added support to call a stored function from MySQL Connector/NET. (Bug #10644)

  • MySQL Connector/NET could not connect to MySQL 4.1.14. (Bug #12771)

  • The ConnectionString property could not be set when a MySqlConnection object was added with the designer. (Bug #12551, Bug #8724)

D.4.5. Version 1.0.4 1-20-05

  • Bug #7243 calling prepare causing exception [fixed]

  • Fixed another small problem with prepared statements

  • Bug #7258 MySqlCommand.Connection returns an IDbConnection [fixed]

  • Bug #7345 MySqlAdapter.Fill method throws Error message : Non-negative number required [fixed]

  • Bug #7478 Clone method bug in MySqlCommand [fixed]

  • Bug #7612 MySqlDataReader.GetString(index) returns non-Null value when field is Null [fixed]

  • Bug #7755 MySqlReader.GetInt32 throws exception if column is unsigned [fixed]

  • Bug #7704 GetBytes is working no more [fixed]

  • Bug #7724 Quote character \222 not quoted in EscapeString [fixed]

  • Fixed problem that causes named pipes to not work with some blob functionality

  • Fixed problem with shared memory connections

  • Bug #7436 Problem with Multiple resultsets... [fixed]

  • Added or filled out several more topics in the API reference documentation

D.4.6. Version 1.0.3-gamma 12-10-04

  • Made MySQL the default named pipe name

  • Now SHOW COLLATION is used upon connection to retrieve the full list of charset ids

  • Fixed Invalid character set index: 200 (Bug #6547)

  • Installer now includes options to install into GAC and create Start Menu items

  • Bug #6863 - Int64 Support in MySqlCommand Parameters [fixed]

  • Connections now do not have to give a database on the connection string

  • Bug #6770 - MySqlDataReader.GetChar(int i) throws IndexOutOfRange Exception [fixed]

  • Fixed problem where multiple resultsets having different numbers of columns would cause a problem

  • Bug #6983 Exception stack trace lost when re-throwing exceptions [fixed]

  • Fixed major problem with detecting null values when using prepared statements

  • Bug #6902 Errors in parsing stored procedure parameters [fixed]

  • Bug #6668 Integer "out" parameter from stored procedure returned as string [fixed]

  • Bug #7032 MySqlDateTime in Datatables sorting by Text, not Date. [fixed]

  • Bug #7133 Invalid query string when using inout parameters [fixed]

  • Bug #6831 Test suite fails with MySQL 4.0 because of case sensitivity of table names [fixed]

  • Bug #7132 Inserting DateTime causes System.InvalidCastException to be thrown [fixed]

  • Bug #6879 InvalidCast when using DATE_ADD-function [fixed]

  • Bug #6634 An Open Connection has been Closed by the Host System [fixed]

  • Added ServerThread property to MySqlConnection to expose server thread id

  • Added Ping method to MySqlConnection

  • Changed the name of the test suite to MySql.Data.Tests.dll

D.4.7. Version 1.0.2-gamma 04-11-15

  • Fixed problem with MySqlBinary where string values could not be used to update extended text columns

  • Fixed Installation directory ignored using custom installation (Bug #6329)

  • Fixed problem where setting command text leaves the command in a prepared state

  • Fixed double type handling in MySqlParameter(string parameterName, object value) (Bug #6428)

  • Fixed Zero date "0000-00-00" is returned wrong when filling Dataset (Bug #6429)

  • Fixed problem where calling stored procedures might cause an "Illegal mix of collations" problem.

  • Added charset connection string option

  • Fixed #HY000 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ (Bug #6322)

  • Added the TableEditor CS and VB sample

  • Fixed Charset-map for UCS-2 (Bug #6541)

  • Updated the installer to include the new samples

  • Fixed Long inserts take very long time (Bu #5453)

  • Fixed Objects not being disposed (Bug #6649)

  • Provider is now using character set specified by server as default

D.4.8. Version 1.0.1-beta2 04-10-27

  • Fixed BUG #5602 Possible bug in MySqlParameter(string, object) constructor

  • Fixed BUG #5458 Calling GetChars on a longtext column throws an exception

  • Fixed BUG #5474 cannot run a stored procedure populating mysqlcommand.parameters

  • Fixed BUG #5469 Setting DbType throws NullReferenceException

  • Fixed problem where connector was not issuing a CMD_QUIT before closing the socket

  • Fixed BUG #5392 MySqlCommand sees "?" as parameters in string literals

  • Fixed problem with ConnectionInternal where a key might be added more than once

  • CP1252 is now used for Latin1 only when the server is 4.1.2 and later

  • Fixed BUG #5388 DataReader reports all rows as NULL if one row is NULL

  • Virtualized driver subsystem so future releases could easily support client or embedded server support

  • Field buffers being reused to decrease memory allocations and increase speed

  • Fixed problem where using old syntax while using the interfaces caused problems

  • Using PacketWriter instead of Packet for writing to streams

  • Refactored compression code into CompressedStream to clean up NativeDriver

  • Added test case for resetting the command text on a prepared command

  • Fixed problem where MySqlParameterCollection.Add() would throw unclear exception when given a null value (Bug #5621)

  • Fixed construtor initialize problems in MySqlCommand() (Bug #5613)

  • Fixed Parsing the ';' char (Bug #5876)

  • Fixed missing Reference in DbType setter (Bug #5897)

  • Fixed System.OverflowException when using YEAR datatype (Bug #6036)

  • Added Aggregate function test (wasn't really a bug)

  • Fixed serializing of floating point parameters (double, numeric, single, decimal) (Bug #5900)

  • IsNullable error (Bug #5796)

  • Fixed problem where connection lifetime on the connect string was not being respected

  • Fixed problem where Min Pool Size was not being respected

  • Fixed MySqlDataReader and 'show tables from ...' behavior (Bug #5256)

  • Implemented SequentialAccess

  • Fixed MySqlDateTime sets IsZero property on all subseq.records after first zero found (Bug #6006)

  • Fixed Can't display Chinese correctly (Bug #5288)

  • Fixed Russian character support as well

  • Fixed Method TokenizeSql() uses only a limited set of valid characters for parameters (Bug #6217)

  • Fixed NET Connector source missing resx files (Bug #6216)

  • Fixed DBNull Values causing problems with retrieving/updating queries. (Bug #5798)

  • Fixed Yet Another "object reference not set to an instance of an object" (Bug #5496)

  • Fixed problem in PacketReader where it could try to allocate the wrong buffer size in EnsureCapacity

  • Fixed GetBoolean returns wrong values (Bug #6227)

  • Fixed IndexOutOfBounds when reading BLOB with DataReader with GetString(index) (Bug #6230)

D.4.9. Version 1.0.0 04-09-01

  • Fixed BUG# 3889 Thai encoding not correctly supported

  • Updated many of the test cases

  • Fixed problem with using compression

  • Bumped version number to 1.0.0 for beta 1 release

  • Added COPYING.rtf file for use in installer

  • Removed all of the XML comment warnings (I'll clean them up better later)

  • Removed some last references to ByteFX

D.4.10. Version 0.9.0 04-08-30

  • Added test fixture for prepared statements

  • All type classes now implement a SerializeBinary method for sending their data to a PacketWriter

  • Added PacketWriter class that will enable future low-memory large object handling

  • Fixed many small bugs in running prepared statements and stored procedures

  • Changed command so that an exception will not be throw in executing a stored procedure with parameters in old syntax mode

  • SingleRow behavior now working right even with limit

  • GetBytes now only works on binary columns

  • Logger now truncates long sql commands so blob columns don't blow out our log

  • host and database now have a default value of "" unless otherwise set

  • FIXED BUG# 5214 Connection Timeout seems to be ignored

  • Added test case for bug# 5051: GetSchema not working correctly

  • Fixed problem where GetSchema would return false for IsUnique when the column is key

  • MySqlDataReader GetXXX methods now using the field level MySqlValue object and not performing conversions

  • FIXED BUG# 5097: DataReader returning NULL for time column

  • Added test case for LOAD DATA LOCAL INFILE

  • Added replacetext custom nant task

  • Added CommandBuilderTest fixture

  • Added Last One Wins feature to CommandBuilder

  • Fixed persist security info case problem

  • Fixed GetBool so that 1, true, "true", and "yes" all count as trueWL# 2024 Make parameter mark configurable

  • Added the "old syntax" connection string parameter to allow use of @ parameter marker

  • Fixed Bug #4658 MySqlCommandBuilder

  • Fixed Bug #4864 ByteFX.MySqlClient caches passwords if 'Persist Security Info' is false

  • Updated license banner in all source files to include FLOSS exception

  • Added new .Types namespace and implementations for most current MySql types

  • Added MySqlField41 as a subclass of MySqlField

  • Changed many classes to now use the new .Types types

  • Changed type enum int to Int32, short to Int16, and bigint to Int64

  • Added dummy types UInt16, UInt32, and UInt64 to allow an unsigned parameter to be made

  • Connections are now reset when they are pulled from the connection pool

  • Refactored auth code in driver so it can be used for both auth and reset

  • Added UserReset test in PoolingTests.cs

  • Connections are now reset using COM_CHANGE_USER when pulled from the pool

  • Implemented SingleResultSet behavior

  • Implemented support of unicode

  • Added char set mappings for utf-8 and ucs-2

  • fixed Bug #4520 time fields overflow using bytefx .net mysql driver

  • Modified time test in data type test fixture to check for time spans where hours > 24

  • Fixed Bug #4505 Wrong string with backslash escaping in ByteFx.Data.MySqlClient.MySqlParameter

  • Added code to Parameter test case TestQuoting to test for backslashes

  • Fixed Bug #4486 mysqlcommandbuilder fails with multi-word column names

  • Fixed bug in TokenizeSql where underscore would terminate character capture in parameter name

  • Added test case for spaces in column names

  • Fixed bug# 4324 - MySqlDataReader.GetBytes don't works correctly

  • Added GetBytes() test case to DataReader test fixture

  • Now reading all server variables in InternalConnection.Configure into Hashtable

  • Now using string[] for index map in CharSetMap

  • Added CRInSQL test case for carriage returns in SQL

  • setting maxPacketSize to default value in Driver.ctor

  • Fixed bug #4442 - Setting MySqlDbType on a parameter doesn't set generic type

  • Removed obsolete data types Long and LongLong

  • Fixed bug# 4071 - Overflow exception thrown when using "use pipe" on connection string

  • Changed "use pipe" keyword to "pipe name" or just "pipe"

  • Allow reading multiple resultsets from a single query

  • Added flags attribute to ServerStatusFlags enum

  • Changed name of ServerStatus enum to ServerStatusFlags

  • Fixed BUG #4386 - Inserted data row doesn't update properly

  • Fixed bug #4074 - Error processing show create table

  • Change Packet.ReadLenInteger to ReadPackedLong and added packet.ReadPackedInteger that alwasy reads integers packed with 2,3,4

  • Added syntax.cs test fixture to test various SQL syntax bugs

  • Fixed bug# 4149 Improper handling of time values. Now time value of 00:00:00 is not treated as null.

  • Moved all test suite files into TestSuite folder

  • Fixed bug where null column would move the result packet pointer backward

  • Added new nant build script

  • Fixed BUG #3917 - clear tablename so it will be regen'ed properly during the next GenerateSchema.

  • Fixed bug #3915 - GetValues was always returning zero and was also always trying to copy all fields rather than respecting the size of the array passed in.

  • Implemented shared memory access protocol

  • Implemented prepared statements for MySQL 4.1

  • Implemented stored procedures for MySQL 5.0

  • Renamed MySqlInternalConnection to InternalConnection

  • SQL is now parsed as chars, fixes problems with other languages

  • Added logging and allow batch connection string options

  • Fixed bug #3888 - RowUpdating event not set when setting the DataAdapter property

  • Fixed bug in char set mapping

  • Implemented 4.1 authentication

  • Improved open/auth code in driver

  • Improved how connection bits are set during connection

  • Database name is now passed to server during initial handshake

  • Changed namespace for client to MySql.Data.MySqlClient

  • Changed assembly name of client to MySql.Data.dll

  • Changed license text in all source files to GPL

  • Added the MySqlClient.build Nant file

  • Removed the mono batch files

  • Moved some of the unused files into notused folder so nant build file can use wildcards

  • Implemented shared memory accesss

  • Major revamp in code structure

  • Prepared statements now working for MySql 4.1.1 and later

  • Finished implementing auth for 4.0, 4.1.0, and 4.1.1

  • Changed namespace from MySQL.Data.MySQLClient back to MySql.Data.MySqlClient

  • Fixed bug in CharSetMapping where it was trying to use text names as ints

  • Changed namespace to MySQL.Data.MySQLClient

  • Integrated auth changes from UC2004

  • Fixed bug where calling any of the GetXXX methods on a datareader before or after reading data would not throw the appropriate exception (thanks Luca Morelli <morelli.luca@iol.it>)

  • Added TimeSpan code in parameter.cs to properly serialize a timespan object to mysql time format (thanks Gianluca Colombo <g.colombo@alfi.it>)

  • Added TimeStamp to parameter serialization code. Prevented DataAdatper updates from working right (thanks MIchael King)

  • Fixed a misspelling in MySqlHelper.cs (thanks Patrick Kristiansen)

D.4.11. Version 0.76

  • Driver now using charset number given in handshake to create encoding

  • Changed command editor to point to MySqlClient.Design

  • Fixed bug in Version.isAtLeast

  • Changed DBConnectionString to support changes done to MySqlConnectionString

  • Removed SqlCommandEditor and DataAdapterPreviewDialog

  • Using new long return values in many places

  • Integrated new CompressedStream class

  • Changed ConnectionString and added attributes to allow it to be used in MySqlClient.Design

  • Changed packet.cs to support newer lengths in ReadLenInteger

  • changed other classes to use new properties and fields of MySqlConnectionString

  • ConnectionInternal is now using PING to see whether the server is alive

  • Moved toolbox bitmaps into resource/

  • Changed field.cs to allow values to come directly from row buffer

  • Changed to use the new driver.Send syntax

  • Using a new packet queueing system

  • started work handling the "broken" compression packet handling

  • Fixed bug in StreamCreator where failure to connect to a host would continue to loop infinitly (thanks Kevin Casella)

  • Improved connectstring handling

  • Moved designers into Pro product

  • Removed some old commented out code from command.cs

  • Fixed a problem with compression

  • Fixed connection object where an exception throw prior to the connection opening would not leave the connection in the connecting state (thanks Chris Cline )

  • Added GUID support

  • Fixed sequence out of order bug (thanks Mark Reay)

D.4.12. Version 0.75

  • Enum values now supported as parameter values (thanks Philipp Sumi)

  • Year datatype now supported

  • fixed compression

  • Fixed bug where a parameter with a TimeSpan as the value would not serialize properly

  • Fixed bug where default ctor would not set default connection string values

  • Added some XML comments to some members

  • Work to fix/improve compression handling

  • Improved ConnectionString handling so that it better matches the standard set by SqlClient.

  • A MySqlException is now thrown if a username is not included in the connection string

  • Localhost is now used as the default if not specified on the connection string

  • An exception is now thrown if an attempt is made to set the connection string while the connection is open

  • Small changes to ConnectionString docs

  • Removed MultiHostStream and MySqlStream. Replaced it with Common/StreamCreator

  • Added support for Use Pipe connection string value

  • Added Platform class for easier access to platform utility functions

  • Fixed small pooling bug where new connection was not getting created after IsAlive fails

  • Added Platform.cs and StreamCreator.cs

  • Fixed Field.cs to properly handle 4.1 style timestamps

  • Changed Common.Version to Common.DBVersion to avoid name conflict

  • Fixed field.cs so that text columns return the right field type (thanks beni27@gmx.net)

  • Added MySqlError class to provide some reference for error codes (thanks Geert Veenstra)

D.4.13. Version 0.74

  • Added Unix socket support (thanks Mohammad DAMT [md@mt.web.id])

  • only calling Thread.Sleep when no data is available

  • improved escaping of quote characters in parameter data

  • removed misleading comments from parameter.cs

  • fixed pooling bug

  • same pooling bug fixed again!! ;-)

  • Fixed ConnectionSTring editor dialog (thanks marco p (pomarc))

  • UserId now supported in connection strings (thanks Jeff Neeley)

  • Attempting to create a parameter that is not input throws an exception (thanks Ryan Gregg)

  • Added much documentation

  • checked in new MultiHostStream capability. Big thanks to Dan Guisinger for this. he originally submitted the code and idea of supporting multiple machines on the connect string.

  • Added alot of documentation. Still alot to do.

  • Fixed speed issue with 0.73

  • changed to Thread.Sleep(0) in MySqlDataStream to help optimize the case where it doesn't need to wait (thanks Todd German)

  • Prepopulating the idlepools to MinPoolSize

  • Fixed MySqlPool deadlock condition as well as stupid bug where CreateNewPooledConnection was not ever adding new connections to the pool. Also fixed MySqlStream.ReadBytes and ReadByte to not use TicksPerSecond which does not appear to always be right. (thanks Matthew J. Peddlesden)

  • Fix for precision and scale (thanks Matthew J. Peddlesden)

  • Added Thread.Sleep(1) to stream reading methods to be more cpu friendly (thanks Sean McGinnis)

  • Fixed problem where ExecuteReader would sometime return null (thanks Lloyd Dupont )

  • Fixed major bug with null field handling (thanks Naucki)

  • enclosed queries for max_allowed_packet and characterset inside try catch (and set defaults)

  • fixed problem where socket was not getting closed properly (thanks Steve!)

  • Fixed problem where ExecuteNonQuery was not always returning the right value

  • Fixed InternalConnection to not use @@session.max_allowed_packet but use @@max_allowed_packet. (Thanks Miguel)

  • Added many new XML doc lines

  • Fixed sql parsing to not send empty queries (thanks Rory)

  • Fixed problem where the reader was not unpeeking the packet on close

  • Fixed problem where user variables were not being handled (thanks Sami Vaaraniemi)

  • Fixed loop checking in the MySqlPool (thanks Steve M. Brown)

  • Fixed ParameterCollection.Add method to match SqlClient (thanks Joshua Mouch)

  • Fixed ConnectionSTring parsing to handle no and yes for boolean and not lowercase values (thanks Naucki)

  • Added InternalConnection class, changes to pooling

  • Implemented Persist Security Info

  • Added security.cs and version.cs to project

  • Fixed DateTime handling in Parameter.cs (thanks Burkhard Perkens-Golomb)

  • Fixed parameter serialization where some types would throw a cast exception

  • Fixed DataReader to convert all returned values to prevent casting errors (thanks Keith Murray)

  • Added code to Command.ExecuteReader to return null if the initial SQL command throws an exception (thanks Burkhard Perkens-Golomb)

  • Fixed ExecuteScalar bug introduced with restructure

  • Restructure to allow for LOCAL DATA INFILE and better sequencing of packets

  • Fixed several bugs related to restructure.

  • Early work done to support more secure passwords in Mysql 4.1. Old passwords in 4.1 not supported yet

  • Parameters appearing after system parameters are now handled correctly (Adam M. (adammil))

  • strings can now be assigned directly to blob fields (Adam M.)

  • Fixed float parameters (thanks Pent)

  • Improved Parameter ctor and ParameterCollection.Add methods to better match SqlClient (thx Joshua Mouch )

  • Corrected Connection.CreateCommand to return a MySqlCommand type

  • Fixed connection string designer dialog box problem (thanks Abraham Guyt)

  • Fixed problem with sending commands not always reading the response packet (thanks Joshua Mouch )

  • Fixed parameter serialization where some blobs types were not being handled (thanks Sean McGinnis )

  • Removed spurious MessageBox.show from DataReader code (thanks Joshua Mouch )

  • Fixed a nasty bug in the split sql code (thanks everyone! :-) )

D.4.14. Version 0.71

  • Fixed bug in MySqlStream where too much data could attempt to be read (thanks Peter Belbin)

  • Implemented HasRows (thanks Nash Pherson)

  • Fixed bug where tables with more than 252 columns cause an exception ( thanks Joshua Kessler )

  • Fixed bug where SQL statements ending in ; would cause a problem ( thanks Shane Krueger )

  • Fixed bug in driver where error messages were getting truncated by 1 character (thanks Shane Krueger)

  • Made MySqlException serializable (thanks Mathias Hasselmann)

D.4.15. Version 0.70

  • Updated some of the character code pages to be more accurate

  • Fixed problem where readers could be opened on connections that had readers open

  • Release of 0.70

  • Moved test to separate assembly MySqlClientTests

  • Fixed stupid problem in driver with sequence out of order (Thanks Peter Belbin)

  • Added some pipe tests

  • Increased default max pool size to 50

  • Compiles with Mono 0-24

  • Fixed connection and data reader dispose problems

  • Added String datatype handling to parameter serialization

  • Fixed sequence problem in driver that occurred after thrown exception (thanks Burkhard Perkens-Golomb)

  • Added support for CommandBehavior.SingleRow to DataReader

  • Fixed command sql processing so quotes are better handled (thanks Theo Spears)

  • Fixed parsing of double, single, and decimal values to account for non-English separators. You still have to use the right syntax if you using hard coded sql, but if you use parameters the code will convert floating point types to use '.' appropriately internal both into the server and out. [ Thanks anonymous ]

  • Added MySqlStream class to simplify timeOuts and driver coding.

  • Fixed DataReader so that it is closed properly when the associated connection is closed. [thanks smishra]

  • Made client more SqlClient compliant so that DataReaders have to be closed before the connection can be used to run another command

  • Improved DBNull.Value handling in the fields

  • Added several unit tests

  • Fixed MySqlException so that the base class is actually called :-o

  • Improved driver coding

  • Fixed bug where NextResult was returning false on the last resultset

  • Added more tests for MySQL

  • Improved casting problems by equating unsigned 32bit values to Int64 and usigned 16bit values to Int32, and so forth.

  • Added new ctor for MySqlParameter for (name, type, size, srccol)

  • Fixed bug in MySqlDataReader where it didn't check for null fieldlist before returning field count

  • Started adding MySqlClient unit tests (added MySqlClient/Tests folder and some test cases)

  • Fixed some things in Connection String handling

  • Moved INIT_DB to MySqlPool. I may move it again, this is in preparation of the conference.

  • Fixed bug inside CommandBuilder that prevented inserts from happening properly

  • Reworked some of the internals so that all three execute methods of Command worked properly

  • FIxed many small bugs found during benchmarking

  • The first cut of CoonectionPooling is working. "min pool size" and "max pool size" are respected.

  • Work to enable multiple resultsets to be returned

  • Character sets are handled much more intelligently now. The driver queries MySQL at startup for the default character set. That character set is then used for conversions if that code page can be loaded. If not, then the default code page for the current OS is used.

  • Added code to save the inferred type in the name,value ctor of Parameter

  • Also, inferred type if value of null parameter is changed using Value property

  • Converted all files to use proper Camel case. MySQL is now MySql in all files. PgSQL is now PgSql

  • Added attribute to PgSql code to prevent designer from trying to show

  • Added MySQLDbType property to Parameter object and added proper conversion code to convert from DbType to MySQLDbType)

  • Removed unused ObjectToString method from MySQLParameter.cs

  • Fixed Add(..) method in ParameterCollection so that it doesn't use Add(name, value) instead.

  • Fixed IndexOf and Contains in ParameterCollection to be aware that parameter names are now stored without @

  • Fixed Command.ConvertSQLToBytes so it only allows characters that can be in MySQL variable names

  • Fixed DataReader and Field so that blob fields read their data from Field.cs and GetBytes works right

  • Added simple query builder editor to CommandText property of MySQLCommand

  • Fixed CommandBuilder and Parameter serialization to account for Parameters not storing @ in their names

  • Removed MySQLFieldType enum from Field.cs. Now using MySQLDbType enum

  • Added Designer attribute to several classes to prevent designer view when using VS.Net

  • Fixed Initial catalog typo in ConnectionString designer

  • Removed 3 parameter ctor for MySQLParameter that conflicted with (name, type, value)

  • changed MySQLParameter so paramName is now stored without leading @ (this fixed null inserts when using designer)

  • Changed TypeConverter for MySQLParameter to use the ctor with all properties

D.4.16. Version 0.68

  • Fixed sequence issue in driver

  • Added DbParametersEditor to make parameter editing more like SqlClient

  • Fixed Command class so that parameters can be edited using the designer

  • Update connection string designer to support Use Compression flag

  • Fixed string encoding so that European characters like ä will work correctly

  • Creating base classes to aid in building new data providers

  • Added support for UID key in connection string

  • Field, parameter, command now using DBNull.Value instead of null

  • CommandBuilder using DBNull.Value

  • CommandBuilder now builds insert command correctly when an auto_insert field is not present

  • Field now uses typeof keyword to return System.Types (performance)

D.4.17. Version 0.65

  • MySQLCommandBuilder now implemented

  • Transaction support now implemented (not all table types support this)

  • GetSchemaTable fixed to not use xsd (for Mono)

  • Driver is now Mono-compatible!!

  • TIME data type now supported

  • More work to improve Timestamp data type handling

  • Changed signatures of all classes to match corresponding SqlClient classes

D.4.18. Version 0.60

  • Protocol compression using SharpZipLib (www.icsharpcode.net)

  • Named pipes on Windows now working properly

  • Work done to improve Timestamp data type handling

  • Implemented IEnumerable on DataReader so DataGrid would work

D.4.19. Version 0.50

  • Speed increased dramatically by removing bugging network sync code

  • Driver no longer buffers rows of data (more ADO.Net compliant)

  • Conversion bugs related to TIMESTAMP and DATETIME fields fixed