Monday, November 6, 2006

MySQL Connector/Net 5.0.2 has been released!

MySQL Connector/Net 5.0.2 Beta has been released.  MySQL Connector/Net is an all-managed ADO.Net provider for MySQL.  While this release is suitable for any version of MySQL, it is strongly encouraged that this release not be used on any production data. 

It is now available in source and binary form from the Connector/Net download pages at and mirror sites (note that not all mirror sites may be up to date at this point of time - if you can't find this version on some mirror, please try again later or choose another download site.)

Changes in this release (changelog):

Bugs fixed

  • Bug #23268 System.FormatException when invoking procedure with ENUM input parameter
  • Bug #23538 Exception thrown when GetSchemaTable is called and "fields" is null.
  • Bug #23245 Connector Net 5.01 Beta Installer produces Antivirus Error Message
  • Bug #23758 Unable to connect to any server - IPv6 related
  • Bug #22882 Registry key 'Global' access denied
  • Bug #18186 Problem with implementation of PreparedStatement

Other changes

  • Increased speed of MySqlParameterCollection.IndexOf(string) orders of magnitude (parameter name lookups are now strict on use of parameter marker)
  • Improved character set mappings
  • Turned MySqlPoolManager into a static class and added a static ctor to avoid any race conditions related to initializing the hashtable.
  • Added 'Ignore Prepare' connection string option for disabling prepared statements application-wide
  • Added Installer class to provide custom install type procedures such as modifying machine.config
  • A nicer exception is displayed if you have added a parameter without the parameter marker.
  • Load Data Local InFile is working again
  • Installer now gives the user the choice of creating start menu items and registering the provider in the GAC.


We have added a new connection string option named 'Ignore Prepare'. It is a boolean option and its default value is true. This option, when true, instructs the provider to ignore any calls to MySqlCommand.Prepare(). We decided to do this because we have discovered some inconsistencies with server side prepared statements which can lead to incorrect or damaging results. If you are sure you want to use server-side prepared statements, then you can add 'ignore prepare=false' to your connection string and it will behave as before.


Highlights of the 5.0.x Connector/Net releases:

Support for ADO.Net 2.0 interfaces and subclasses

Re-architected to improve speed and flexibility
The internals of the provider have been improved to allow column values to be retrieved without boxing in many cases.  Also, the internal changes have enabled the future inclusion of embedded and client library support.

Implemented Usage Advisor
The Usage Advisor first appeared in Connector/J.  We have now implemented that feature in Connector/Net.  Enabling it causes the provider to check both your queries and how you read the results and report to you if it thinks you are using the provider in an  inefficient manner.  It checks such things as using a query without an index, not reading all the columns or rows from a resultset, etc.

Implemented asynchronous query methods
The MySqlCommand object now supports asynchronous queries.  This is implemented using the BeginExecuteNonQuery and EndExecuteNonQuery methods.  BeginExecuteReader and EndExecuteReader are now included.

Implemented stored procedure metadata caching
We now cache the metadata that is retrieved during stored procedure and stored function execution.  This cache data is used for subsequent executions of that stored routine.

Added PerfMon hooks
This release includes PerfMon hooks to monitor stored procedure cache hits and misses.  We are looking at adding additional hooks in the first beta release.

Removed use of SharpZipLib library
We have replaced use of the SharpZipLib library with the deflate support available with .NET 2.0.

Support for embedded server and client library has been removed
For those of you that have seen my presentations on 5.0, we decided to remove these features to help get 5.0 out the door more quickly.  These features will reappear in a later version of the product.

Thank you for checking out this release of Connector/Net. 


Live Map Search more accurate than Google maps

This morning I decided to look up where my wife and I need to vote tomorrow.  We recently moved and had to call the county clerk to determine the correct polling place.  Punching the address into Google maps, I noticed something odd.  The area pointed to can't be place to vote.  Instead, it's a small pasture where horses graze.  I know because it's right down the road from my house.  Here's the image with the arrow:


Trying this in Microsoft's Live Local map server, I got the following image.  Notice how the pushpin is on the other side of Roy Cole Rd.  This is correct.  The area pointed to by the pushpin above is a firehall and the place where we will be voting.  I'm not saying that Microsoft's maps are always more


I'm quite certain others can find many examples where Google Maps are more accurate but after this little test I just might be more likely to use Live Maps in the future.

Sunday, November 5, 2006

MySQL Conference 2007 Call for Papers about to close

I blogged about this earlier but the MySQL Conference for 2007 is fast approaching and the call for papers is about to close.  November 7th is the deadline so you've only got two days left to send in those great presentation ideas.  I'm submitting a couple of sessions so hopefully I'll see you there!