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

    • About me
    • Bio
    • Press Release: “Kaj Arnö Appointed MySQL VP of Community Relations”
  • Blogroll

    • Ein Finnlandschwede in Bayern
    • En finlandssvensk i Bayern
    • It’s some interesting topic
    • Kaj Arnö blog aggregation
    • No Software Patents!
    • Planet MySQL
  • Recent Posts

    • How we fixed the MySQL.com Power Outage
    • A Remote-Attendee’s Look at OSCON
    • MySQL Librarian: Capturing Community Insights
    • MySQL: Powering a New World Religion
    • The Embedded Reporter in the Half-Marathon
    • Berlin Open 09: Social Networking
    • Search the planetary archives, and tag your blog entries
    • SELECTing SELECT statements for Wordpress MU blogging statistics
    • How do MySQL users keep track of digital pictures?
    • Presenting and blogging in Chinese
    • On the Merits of Voting
    • The Future of MySQL
    • The Great Open Cloud Shootout: Videos and other links
    • Karen’s Commitments to the MySQL Community
    • What hasn’t changed with MySQL
  • Tags

    Alexander Arnö Black Swan Blogging Blogs Brazil Call for Papers Call for Participation CfP Community Contributions David Axmark Event scheduler Football FOSDEM Growth Innovation Ivan Nikitin Language Launch Mårten Mickos Michael "Monty" Widenius Mountains MySQL MySQL 5.1 MySQL AB MySQL Forge MySQL User Conference MySQL Users Conference Nassim Nicholas Taleb Open Source Oracle Paris Partitioning Photography Running Runnism Runnismus Social Networking South Africa Sun Microsystems Sun Tech Days Thank you Travel Twitter Use case
  • Archives



  • Categories

    • Architecture of Participation
    • Connectors
    • Documentation
    • Events
    • Falcon
    • GPL
    • GUI
    • Licensing
    • MySQL
    • MySQL Cluster
    • MySQL Proxy
    • MySQL Server
    • MySQL Users Conferences
    • MySQL Workbench
    • Photography
    • PHP
    • Release Policy
    • Ruby on Rails
    • Running
    • Summer of Code
    • Sun
    • Sun visits
    • Travel
    • Use cases
    • Virtual company
  • Calendar

    September 2007
    M T W T F S S
    « Aug   Oct »
     12
    3456789
    10111213141516
    17181920212223
    24252627282930
Observations by Kaj Arnö @Sun
« 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

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