MySQL Connector/ODBC Release Notes
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)
Added support for the connection flag
DFLT_BIGINT_BIND_STR
.
Made the Connector/ODBC GUI on Linux comply with the GNOME Coding Guidelines for Supporting Accessibility.
The functions SQLSetDescField()
,
SQLGetDiagField()
, and
SQLGetDiagRec()
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
after
SQLBulkOperations(SQL_UPDATE_BY_BOOKMARK)
or
SQLBulkOperations(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()
and
SQL_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 the driver_new()
function,
driver
is being freed before
driver->name
and
driver->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 an
SQL_UPDATE_BY_BOOKMARK
if the prior fetch
returned no records.
(Bug #17714358)
Data corruption occurred in
SQLBulkOperations()
, because in the
batch_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, calling
SQLConnect()
or
SQLDriverConnect()
crashed the connection,
and calling SQLGetConnectAttr()
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
the SQLFetch
function after the
SQLForeignKeys
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 of lib64
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 of
CMAKE_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 option NO_I_S
was set.
(Bug #13712420, Bug #64307)
Implemented a workaround for a control issue with
GtkComboBox
and
GtkComboBoxEntry
, in which the dialog
control intercepted the keyboard signals, so that focus could be
set to other controls using the keyboard.