This is the first GA release for the Connector/ODBC 5.3.x series. The available downloads include both a Unicode driver and an ANSI driver based on the same modern codebase. Please select the driver type you need—Unicode or ANSI—based on the type of your application. Server-side prepared statements are enabled by default. It is suitable for use with any MySQL version since 4.1 (it will not work with 4.0 or earlier releases.)
This is the third release of the MySQL ODBC driver conforming to the ODBC 3.8 specification. It contains the minimally required implementation of the standard with key ODBC 3.8 features, which include self-identification as a ODBC 3.8 driver, streaming of output parameters (supported for binary types only), and support of the SQL_ATTR_RESET_CONNECTION connection attribute (for the Unicode driver only).
Connector/ODBC 5.3 also introduces a GTK+-based setup library, providing GUI DSN setup dialog on some Unix-based systems. The library is currently included in the Oracle Linux 6 and Debian 6 binary packages. Other new features in the 5.3 series include file DSN and bookmark support.
Implemented support for the
ODBCINSTGetProperties
interface for use by unixODBC GUI dialogs. This allows users to configure a file DSN through a graphical user interface on Unix-like platforms. (Bug #17513175, WL #7577)Added support for the connection flag
DFLT_BIGINT_BIND_STR
. (WL #7579)Made the Connector/ODBC GUI on Linux comply with the GNOME Coding Guidelines for Supporting Accessibility. (WL #7635)
The functions
SQLSetDescField()
,SQLGetDiagField()
, andSQLGetDiagRec()
crashed when a null pointer was passed as a handle for those functions. This fix makes the functions check if the passed pointer is null before using it. (Bug #18431088)SQLBulkOperations(SQL_FETCH_BOOKMARK)
returned an SQL_NO_DATA error when called afterSQLBulkOperations(SQL_UPDATE_BY_BOOKMARK)
orSQLBulkOperations(SQL_DELETE_BY_BOOKMARK)
. (Bug #18287216)The order of the control elements was wrong during control selection in Connector/ODBC's Windows GUI. (Bug #18240696)
Concurrent execution of
SQLEndTran()
andSQL_HANDLE_ENV
resulted in a segmentation fault. (Bug #18166331)Calling
SQLNumResultCols()
with a NULL parameter resulted in a segmentation fault. (Bug #18165197)Connector/ODBC's GUI dialog could not be opened from within
ODBCManageDataSourcesQ4
for editing an existing DSN. (Bug #18046123)myodbc-installer
did not initialize the allocated memory. This fix flushes the buffer with “\0” for initialization. (Bug #18046120)Connector/ODBC crashed when trying to prepare a query after connecting to the server with an invalid value for
CHARSET
. This fix checks the CHARSET value and throws an error if it is invalid. (Bug #17999659)At a
malloc()
failure, Connector/ODBC crashed because in thedriver_new()
function,driver
is being freed beforedriver->name
anddriver->lib
. This fix corrects the order of the free() calls. (Bug #17992912)Driver and installer crashed when the path lengths supplied were longer than 256 characters or when the option strings were longer than 100 characters. This fix makes Connector/ODBC return the proper errors instead. (Bug #17966018)
SQLFetch()
crashed when executed using unixodbc versions 2.3.0, 2.3.1, or 2.3.2. (Bug #17857204)A segmentation fault occurred in
SQLSpecialColumns()
if the table name supplied was too long. This fix makes Connector/ODBC throw a proper error for the situation. (Bug #17854697)When called after
SQLParamaData
,SQLGetData
returned an error. (Bug #17842966)SQLGetData
did not return correct length of the data when retrieving data from an output parameter stream. (Bug #17814768, Bug #70946)A segmentation fault occurred in
SQLBulkOperations
for anSQL_UPDATE_BY_BOOKMARK
if the prior fetch returned no records. (Bug #17714358)Data corruption occurred in
SQLBulkOperations()
, because in thebatch_insert()
function,ptr_offset_adjust
sometimes pointed to an invalid memory location. (Bug #17714172)While doing BULK INSERT into a table's time column using Connector/ODBC, a syntax error was thrown if there was an hour value larger than 99. This fix makes sure the proper error is thrown, and when an hour value is larger than 23. (Bug #17613161)
SQLDescribeCol()
returned a memory allocation failure error when called without a resultset. This fix makes sure the proper error is returned. (Bug #17588101)If the catalog name given to
SQLSetConnectAttr()
was too long, callingSQLConnect()
orSQLDriverConnect()
crashed the connection, and callingSQLGetConnectAttr()
returned null for the catalog name. (Bug #17587913)A memory leak occurred in
SQLExecute()
when the connection was killed by another thread. (Bug #17587617)The DMG installer for Connector/ODBC failed on OS X 10.8 and 10.9. This fix corrects the wrong identification for the drive type, which caused the installation problem. (Bug #17512040, Bug #70422)
A memory leak occurred in
SQLSetStmtAttr()
. (Bug #17441507)A segmentation fault occurred when
SQLColumns()
's argument for table name was longer than 256 characters or its argument for column name was longer than 129 characters. This fix makes Connector/ODBC throw a proper error for those situations. (Bug #17358838)An assertion failure occurred in
SQLDescribeCol()
if the column number used is larger than the number of columns in the result set. (Bug #17311065)A memory leak occurred in
SQLProcedureColumns()
when no function or procedure column satisfying the selection condition existed. (Bug #17298721)A segmentation fault occurred in
myodbc_casecmp()
when the provided query was empty. (Bug #17085344)When using Connector/ODBC in Microsoft Access, sorting a column in the data view might crash the program. (Bug #17071780, Bug #69550)
When the connection option
FLAG_NO_INFORMATION_SCHEMA
was used, calling theSQLFetch
function after theSQLForeignKeys
function returned bad results. (Bug #16920750)When building Connector/ODBC on some 64-bit systems other than x86_64 (e.g. ppc64), CMake did not recognize that it was a 64-bit system and incorrectly used
lib
instead oflib64
as directory name for installing the dynamic library. This fix implements a two-step approach, making CMake check for the system architecture by reading the value ofCMAKE_SIZEOF_VOID_P
and also by checking the existence of the/usr/lib64
folder. (Bug #16785424)The function
SQLForeignKeys()
did not work if the connection optionNO_I_S
was set. (Bug #13712420, Bug #64307)Implemented a workaround for a control issue with
GtkComboBox
andGtkComboBoxEntry
, in which the dialog control intercepted the keyboard signals, so that focus could be set to other controls using the keyboard. (WL #7637)