MySQL

The world's most popular open source database

Contact a MySQL Representative


  • MySQL.com
  • Developer Zone
  • Partners & Solutions
  • Customer Login
  • DevZone
  • Downloads
  • Documentation
  • Articles
  • Forums
  • Bugs
  • Forge
  • Blogs
 
  • Pages

    • Press Release: “Kaj Arnö Appointed MySQL VP of Community Relations”
  • Archives

    • June 2008
    • May 2008
    • April 2008
    • March 2008
    • February 2008
    • January 2008
    • December 2007
    • November 2007
    • October 2007
    • September 2007
    • August 2007
    • July 2007
    • June 2007
    • May 2007
    • April 2007
    • March 2007
    • February 2007
    • January 2007
    • December 2006
    • November 2006
    • October 2006
    • September 2006
    • August 2006
    • July 2006
    • June 2006
    • May 2006
    • April 2006
    • March 2006
    • February 2006
    • January 2006
    • December 2005
    • November 2005
    • October 2005
    • September 2005
  • Categories

    • Architecture of Participation (45)
    • Connectors (12)
    • Documentation (4)
    • Events (43)
    • Falcon (5)
    • GPL (8)
    • GUI (3)
    • Licensing (11)
    • MySQL (199)
    • MySQL Cluster (5)
    • MySQL Proxy (4)
    • MySQL Server (30)
    • MySQL Users Conferences (24)
    • MySQL Workbench (5)
    • Photography (11)
    • PHP (9)
    • Release Policy (19)
    • Ruby on Rails (5)
    • Running (4)
    • Summer of Code (8)
    • Sun (46)
    • Sun visits (23)
    • Travel (19)
    • Use cases (7)
    • Virtual company (36)



Kaj Arnö
« Communication Challenges for the MySQL Community Team
Ruby creator Yukihiro “Matz” Matsumoto at MySQL UC Japan »

Re-engineered ODBC 5.1 driver for MySQL

MySQL is today releasing a new ODBC driver, under the version number ODBC 5.1. It is a partial rewrite of the the original MyODBC 3.51 code base, originally developed by Monty and Venu Anuganti, including individual parts of the current 65K ODBC 5 code base. It is designed to work with all MySQL versions starting with MySQL 4.1.

The original ODBC 3.51 driver was incomplete and admittedly somewhat of a quick hack, containing some debatable code. For that reason, Connector/ODBC 5 started as a complete rewrite. After 2 years it had 65 KLOC, but no tests and was in part overdesigned. That project was started but never finished, and had some deep Qt dependencies.

In the meantime, the original ODBC 3.51 has had 6 new releases and over 200 bugs fixed. As for ODBC 5.1, debatable parts of the code have been rewritten. The new ODBC 5.1 driver thus shares almost solely its major version number with the old ODBC 5 driver, which never went past Beta stage. The development of the old ODBC 5 driver has now stopped.

The new ODBC 5.1 driver, like 3.51, supports all relevant platforms (including Win64). While ODBC mostly is relevant for Windows, we have some (but not many) Linux based ODBC users.

Overall, ODBC 3.51 (released as 3.51.20) is now in a better state than ever. The ODBC QA team has written several hundred new tests. Without doubt, the 3.51 code base is now a good fundament for the new ODBC 5.1 version.

ODBC 3.51 supports a subset of the ODBC Core interface, plus some Level 1 and Level 2 features. ODBC 5.1 should be a complete implementation of the ODBC Core interface, plus more Level 1 and 2 features.

We aren’t going to reach complete Level 1 conformance because we won’t be supporting asynchronous execution. and we won’t support SQLProcedureColumns() as we at this point cannot get stored procedure parameter info from the server.

The stumbling blocks for full level 2 conformance are in/out and out parameters, and bookmarks, related to MySQL Server.

New features include Unicode support, and descriptors for connectors and metadata as required by Level 3. The following features are already supported in ODBC 5.1.0

  • Support for SQL_C_WCHAR.
  • Support for Unicode functions (SQLConnectW, etc.)
  • Descriptor support (SQLGetDescField, SQLGetDescRec, etc.)

Before ODBC 5.1 goes beta, you can expect the following functions

  • Replace installer library with new implementation (from ODBC 5.0 tree)
  • Implement native Windows setup library
  • Implement native Mac OS X setup library
  • Replace OPTIONS flags with individual DSN settings (but support OPTIONS for backwards-compatibility)
  • Fix support for SQLBIGINT (Bug #28887):
    http://msdn2.microsoft.com/en-us/library/ms714121.aspx
  • Make diagnostics support standards-compliant:
    http://msdn2.microsoft.com/en-us/library/ms711021.aspx
  • Support for SQL_ATTR_METADATA_ID:
    http://msdn2.microsoft.com/en-us/library/ms716447.aspx
  • Support for SQL_NUMERIC_STRUCT:
    http://msdn2.microsoft.com/en-us/library/ms714556.aspx
  • Implement SQLBrowseConnect():
    http://msdn2.microsoft.com/en-us/library/ms714565.aspx
    http://msdn2.microsoft.com/en-us/library/ms712446.aspx
  • Implement SQLCancel() (Bug #15601):
    http://msdn2.microsoft.com/en-us/library/ms714112.aspx
  • Implement arrays of parameters:
    http://msdn2.microsoft.com/en-us/library/ms711818.aspx

MySQL has a number of beta customers identified by the Support team. They represent user bases for which Unicode is interesting. From the Community of MySQL users, we are looking for testers who can expand upon the quality assurance done inside MySQL, which is based on automated tests.

Especially, we’re looking for beta testers who work with closed source applications like Microsoft Access, PowerBuilder, and Borland tools. Testers should contact Lenz Grimmer or Kaj Arnö in the MySQL community team (at firstname@mysql.com), who will establish the contact between the ODBC team and the beta testers.

This entry was posted on Tuesday, September 11th, 2007 at 1:04 and is filed under Connectors, MySQL. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

One Response to “Re-engineered ODBC 5.1 driver for MySQL”

  1. venu Says:
    October 11th, 2007 at 13:37

    Thats a good move…thanks for giving a credit :)

Leave a Reply

Kaj Arnö is proudly powered by WordPress MU running on Blogs.mysql.com.
Entries (RSS) and Comments (RSS).