Connector Odbc Relnotes en
Connector Odbc Relnotes en
Abstract
This document contains release notes for the changes in each release of MySQL Connector/ODBC.
Updates to these notes occur as new product features are added, so that everybody can follow the development
process. If a recent version is listed here that you cannot find on the download page (https://dev.mysql.com/
downloads/), the version has not yet been released.
The documentation included in source and binary distributions may not be fully up to date with respect to release note
entries because integration of the documentation occurs at release build time. For the most up-to-date release notes,
please refer to the online documentation instead.
For help with using MySQL, please visit the MySQL Forums, where you can discuss your issues with other MySQL
users.
Table of Contents
Preface and Legal Notices ................................................................................................................. 3
Changes in MySQL Connector/ODBC Version 8.0 ............................................................................... 4
Changes in MySQL Connector/ODBC 8.0.21 (2020-07-13, General Availability) ............................ 4
Changes in MySQL Connector/ODBC 8.0.20 (2020-04-27, General Availability) ............................ 5
Changes in MySQL Connector/ODBC 8.0.19 (2020-01-13, General Availability) ............................ 5
Changes in MySQL Connector/ODBC 8.0.18 (2019-10-14, General Availability) ............................ 6
Changes in MySQL Connector/ODBC 8.0.17 (2019-07-22, General Availability) ............................ 6
Changes in MySQL Connector/ODBC 8.0.16 (2019-04-25, General Availability) ............................ 6
Changes in MySQL Connector/ODBC 8.0.15 (2019-02-01, General Availability) ............................ 7
Changes in MySQL Connector/ODBC 8.0.14 (2019-01-21, General Availability) ............................ 7
Changes in MySQL Connector/ODBC 8.0.13 (2018-10-22, General Availability) ............................ 7
Changes in MySQL Connector/ODBC 8.0.12 (2018-07-27, General Availability) ............................ 8
Changes in MySQL Connector/ODBC 8.0.11 (2018-04-19, General Availability) ............................ 8
Changes in MySQL Connector/ODBC Version 5.3 ............................................................................... 9
Changes in MySQL Connector/ODBC 5.3.14 (2019-10-30, General Availability) ............................ 9
Changes in MySQL Connector/ODBC 5.3.13 (2019-04-29, General Availability) ............................ 9
Changes in MySQL Connector/ODBC 5.3.12 (2019-01-28, General Availability) ............................ 9
Changes in MySQL Connector/ODBC 5.3.11 (2018-07-30, General Availability) ........................... 10
Changes in MySQL Connector/ODBC 5.3.10 (2018-01-30, General Availability) ........................... 10
Changes in MySQL Connector/ODBC 5.3.9 (2017-07-24, General Availability) ............................ 11
Changes in MySQL Connector/ODBC 5.3.8 (2017-04-28, General Availability) ............................ 12
Changes in MySQL Connector/ODBC 5.3.7 (2016-12-13, General Availability) ............................ 12
Changes in MySQL Connector/ODBC 5.3.6 (2016-03-17, General Availability) ............................ 13
Changes in MySQL Connector/ODBC 5.3.5 (2015-5-25, General Availability) .............................. 14
Changes in MySQL Connector/ODBC 5.3.4 (2014-07-18, General Availability) ............................ 14
Changes in MySQL Connector/ODBC 5.3.3 (2014-04-16, General Availability) ............................ 15
Changes in MySQL Connector/ODBC 5.3.2 (2014-04-08, General Availability) ............................ 15
Changes in MySQL Connector/ODBC 5.3.1 (2013-11-27, Beta) .................................................. 17
1
MySQL Connector/ODBC Release Notes
2
MySQL Connector/ODBC Release Notes
Legal Notices
Copyright © 1997, 2020, Oracle and/or its affiliates.
This software and related documentation are provided under a license agreement containing restrictions
on use and disclosure and are protected by intellectual property laws. Except as expressly permitted
in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast,
modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any
means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for
interoperability, is prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free.
If you find any errors, please report them to us in writing.
If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it
on behalf of the U.S. Government, then the following notice is applicable:
U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated
software, any programs embedded, installed or activated on delivered hardware, and modifications of
such programs) and Oracle computer documentation or other Oracle data delivered to or accessed by
U.S. Government end users are "commercial computer software" or "commercial computer software
documentation" pursuant to the applicable Federal Acquisition Regulation and agency-specific
supplemental regulations. As such, the use, reproduction, duplication, release, display, disclosure,
modification, preparation of derivative works, and/or adaptation of i) Oracle programs (including any
operating system, integrated software, any programs embedded, installed or activated on delivered
hardware, and modifications of such programs), ii) Oracle computer documentation and/or iii) other Oracle
data, is subject to the rights and limitations specified in the license contained in the applicable contract.
The terms governing the U.S. Government's use of Oracle cloud services are defined by the applicable
contract for such services. No other rights are granted to the U.S. Government.
This software or hardware is developed for general use in a variety of information management
applications. It is not developed or intended for use in any inherently dangerous applications, including
applications that may create a risk of personal injury. If you use this software or hardware in dangerous
applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other
measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages
caused by use of this software or hardware in dangerous applications.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks
of their respective owners.
Intel and Intel Inside are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks
are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD,
Epyc, and the AMD logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a
registered trademark of The Open Group.
3
MySQL Connector/ODBC Release Notes
This software or hardware and documentation may provide access to or information about content,
products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and
expressly disclaim all warranties of any kind with respect to third-party content, products, and services
unless otherwise set forth in an applicable agreement between you and Oracle. Oracle Corporation and its
affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of
third-party content, products, or services, except as set forth in an applicable agreement between you and
Oracle.
This documentation is NOT distributed under a GPL license. Use of this documentation is subject to the
following terms:
You may create a printed copy of this documentation solely for your own personal use. Conversion to other
formats is allowed as long as the actual content is not altered or edited in any way. You shall not publish
or distribute this documentation in any form or on any media, except if you distribute the documentation in
a manner similar to how Oracle disseminates it (that is, electronically for download on a Web site with the
software) or on a CD-ROM or similar medium, provided however that the documentation is disseminated
together with the software on the same medium. Any other use, such as any dissemination of printed
copies or use of this documentation, in whole or in part, in another publication, requires the prior written
consent from an authorized representative of Oracle. Oracle and/or its affiliates reserve any and all rights
to this documentation not expressly granted above.
Documentation Accessibility
For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website
at
https://www.oracle.com/corporate/accessibility/.
• Bugs Fixed
Security Notes
• For platforms on which OpenSSL libraries are bundled, the linked OpenSSL library for Connector/
ODBC has been updated to version 1.1.1g. Issues fixed in the new OpenSSL version are described
at https://www.openssl.org/news/cl111.txt and https://www.openssl.org/news/vulnerabilities.html. (Bug
#31296688)
Bugs Fixed
• The MSI installer now checks for the Visual 2019 C++ runtime, and aborts if this required runtime is not
installed.
This is also the first version that requires Visual 2019 C++ runtime, when before the 2017 version was
also supported. (Bug #31102234)
4
MySQL Connector/ODBC Release Notes
• Only a single value was being inserted instead of the array, with SQLParamOptions. (Bug #30591722)
• The SUM aggregate function did not function with ADO. (Bug #30277891, Bug #96642)
• Bugs Fixed
Bugs Fixed
• When using SQL_C_WCHAR with SQLGetData, binary data was not returned correctly as its
hexacecimal representation. Related, using SQL_C_CHAR with SQLGetData did return binary data as
hex. (Bug #28864788, Bug #92429)
• When binding an SQL_BIT type column to the SQL_C_CHAR type, SQLFetchScroll would return the
values as an integer instead of a char. (Bug #28484784, Bug #91904)
• Bugs Fixed
To automatically resolve any SRV record available in a target DNS server or service discovery
endpoint, specify ENABLE_DNS_SRV=1 in the DSN; the host is passed for SRV lookup
without a port and with a full lookup name. For example: DRIVER={MySQL ODBC 8.0
Driver};SERVER=_mysql._tcp.foo.abc.com;ENABLE_DNS_SRV=1;USER=user;PWD=passwd;
• Confirmed support for compiling with VS2019, and for supporting the Visual C++ 2019 redistributable.
• When creating a new connection using the classic MySQL protocol, multiple hosts can be tried until
a successful connection is established. A list of hosts can be given in a connection string, along
with passing MULTI_HOST=1 to to enable this functionality. The connection string looks similar to
SERVER=address1[:port1],address2[:port2]....;MULTI_HOST=1;.
Other notes: the default port is used if port is not specified, the connector randomly picks hosts, and
if a host fails then a new host is chosen. An error is returned if SERVER contains multiple hosts when
MULTI_HOST is not enabled.
5
MySQL Connector/ODBC Release Notes
Bugs Fixed
• With prepared SELECT statements the fixed-length numeric types such as INT were set to 0 instead of
their stored value. (Bug #30428851, Bug #97191)
• Connector/ODBC failed to compile when dynamically linking to the MySQL client library
(MYSQLCLIENT_STATIC_LINKING=0); due to a mismatch between an internal copy of the library
headers and the version of code implementing the library internals. (Bug #30292290, Bug #96835)
For example, if a stored procedure had one or more parameters then an incomplete result set could be
returned. (Bug #29467224, Bug #94623)
• On Linux, memory was leaked on each server connection attempt due to how mysql_server_end was
implemented and executed. (Bug #26194929)
Thanks to Jacques Germishuys for the patch. (Bug #24814467, Bug #83297)
• Bugs Fixed
Bugs Fixed
• The myodbc-installer command line utility did not display all DSN options. (Bug #29753227)
• On Windows, building and installing from source could yield a binary that would not execute due to a
case-sensitivity issue in the CMake logic. (Bug #29210040)
• An exception was emitted when fetching contents of a BLOB/TEXT records after executing a statement
as a server-side prepared statement with a bound parameter.
6
MySQL Connector/ODBC Release Notes
The workaround is not using parameters or specifying NO_SSPS=1 in the connection string; this allows
the driver to fetch the data. (Bug #29282638, Bug #29512548, Bug #28790708, Bug #93895, Bug
#94545, Bug #92078)
The connection string overrides the DSN value if both are set.
• MySQL Connector/ODBC is now compatible with MSVC 2017, while retaining compatibility with MSVC
2015:
• Previously, Connector/ODBC binary distributions were compatible with projects built using MSVC
2015. Binary distributions now are compatible with projects built using MSVC 2017 or 2015.
• Previously, Connector/ODBC source distributions could be built using MSVC 2015. Source
distributions now can be built using MSVC 2017 or 2015.
• Previously, the MSI installer accepted the Visual C++ Redistributable for Visual Studio 2015. The MSI
installer now accepts the Visual C++ Redistributable for Visual Studio 2017 or 2015.
• Two informative text files were added: INFO_BIN contains information about the build environment
used to produce the distribution, and INFO_SRC provides information about the product version and the
source repository from which the distribution was produced. Source distributions include the INFO_SRC
file only.
• Bugs Fixed
Bugs Fixed
• Fixed column metadata handling with Microsoft Access. (Bug #28670725, Bug #91856)
• The following obsolete options were removed: NO_SCHEMA (use NO_CATALOG instead),
DISABLE_SSL_DEFAULT (use SSLMODE instead), and SSL_ENFORCE (use SSLMODE instead).
(Bug #28407520)
• The ODBC Driver returned 0 for the SQL_MAX_SCHEMA_NAME_LEN attribute, and now returns 64 as
the maximum length for a MySQL schema name. (Bug #28385722)
7
MySQL Connector/ODBC Release Notes
• Because the MySQL ODBC driver ignored the SQL_RD_OFF value for the
SQL_ATTR_RETRIEVE_DATA attribute, it incorrectly kept writing into the data buffers. This led to
write access violation errors when data was written into the buffer when the user application explicitly
requested not to write there. (Bug #28098219, Bug #91060)
• Bugs Fixed
• Refactored codebase to remove legacy code and implement general performance improvements.
For example, unused ANSI data conversion code and legacy functions were removed. Example
improvements affect bookmark handling for bulk operations, handling of memory buffers for prepared
statements, and handling of session variables.
• On Windows, 32-bit support was added and 32-bit binaries are now available.
• An RPM package for installing ARM 64-bit (aarch64) binaries of Connector/ODBC on Oracle Linux 7 is
now available in the MySQL Yum Repository and for direct download.
Known Limitation for this ARM release: You must enable the Oracle Linux 7 Software Collections
Repository (ol7_software_collections) to install this package, and must also adjust the libstdc++7 path.
See Yum's Platform Specific Notes for additional details.
Bugs Fixed
• Added checks for unsupported functionality that return SQL_ERROR instead of SQL_SUCCESS, where
the error message refers to the unsupported functionality. (Bug #28217387)
• The data source dependent type's name was not always returned. For example, the ODBC driver
reported TEXT as the database type for TINYTEXT, MEDIUMTEXT, and LONGTEXT, and reported
BLOB for TINYBLOB, MEDIUMBLOB, and LONGBLOB. (Bug #11761407, Bug #53900)
Connector/ODBC 8.0.11 is the first release to use the new numbering. It was branched from Connector/
ODBC 5.3.10.
The Connector/ODBC 8.0 series also adds full MySQL Server 8.0 support.
8
MySQL Connector/ODBC Release Notes
• A new OpenSSL runtime dependency was added that must be present on the target system where
the connector is used. For some platforms it is assumed that a system-wide OpenSSL is available,
for others, such as Windows and macOS, these required OpenSSL libraries are bundled in the binary
packages.
• Packaging was modified for the new MySQL Connector/ODBC 8 series. For example, the Connector/
ODBC 5.x ODBC driver has a file named myodbc5w.dll, whereas this same ODBC driver is named
myodbc8w.dll for the Connector/ODBC 8.x series. The sample .ini file also references these new file
names.
• On EL7, and only when using the generic Linux packages, SQLSetPos usage caused an unexpected
shutdown. (Bug #29630465)
• An exception was emitted when fetching contents of a BLOB/TEXT records after executing a statement
as a server-side prepared statement with a bound parameter.
The workaround is not using parameters or specifying NO_SSPS=1 in the connection string; this allows
the driver to fetch the data. (Bug #29282638, Bug #29512548, Bug #28790708, Bug #93895, Bug
#94545, Bug #92078)
• Bugs Fixed
The connection string overrides the DSN value if both are set.
Bugs Fixed
• Dynamic linking (-DCLIENT_STATIC_LINKING:BOOL=false) was not functioning, and updating to the
most recent MySQL Server 5.7 headers restored this functionality. (Bug #28609434, Bug #92319, Bug
#91841)
9
MySQL Connector/ODBC Release Notes
• Bugs Fixed
Bugs Fixed
• The Unicode version now uses the UTF8MB4 character set as a transport character set between the
MySQL server and the ODBC driver. Because text conversions requested by the ODBC user with the
CHARSET connection option are done inside the ODBC Driver after the data is received from the server,
it now converts text data as UTF8MB4 to USER_CHARSET instead of UTF8 to USER_CHARSET. (Bug
#28204756)
• Connections to MySQL Server 8.0 could yield "Source character set not supported by client" errors
during sorting and case-sensitive operations. Now known UTF8MB4 collations are used for these
operations, such as utf8mb4_general_ci (known to libmysqlclient 5.7) instead of utf8mb4_tolower_ci.
(Bug #28116892, Bug #90984)
• MySQL Server 8.0 connections could fail with unsupported character sets and collations as
utf8mb4_xxxxxx collations reported by MySQL Server 8.0 with numbers greater than 250 were
unknown to libmysqlclient 5.7. Because collations affect sorting but not the data conversion, they can be
substituted with known collations such as utf8mb4_general_ci (45). (Bug #28116892, Bug #90984)
• Connector/ODBC is now built with MySQL client library 5.7.23, and commercial builds also use an
updated OpenSSL version (v1.0.2o). Issues fixed in the new OpenSSL version are described at http://
www.openssl.org/news/vulnerabilities.html. (Bug #27829777)
• Reported errors that occurred while executing multiple statements with a single query were generic and
without context. For example, SQLMoreResults might return "unhandled error from mysql_next_result()"
instead of the error reported by MySQL Server. (Bug #11757423, Bug #49466)
• Bugs Fixed
• When building Connector/ODBC from source, users now have a choice of linking dynamically or
statically to the MySQL client library. Dynamic linking is selected by default. See Building Connector/
ODBC from a Source Distribution on Windows or Building Connector/ODBC from a Source Distribution
on Unix for details.
10
MySQL Connector/ODBC Release Notes
However, the binary distributions of Connector/ODBC from Oracle remain statically linked to the client
library.
Bugs Fixed
• Fixed an OpenRecordSet memory leak due to get_session_variable() not freeing a result for errors. (Bug
#27155880, Bug #88143)
• Calling MySQLDriverConnect with the pcbConnStrOut argument set to NULL caused an unexpected
failure. (Bug #27101767, Bug #88371)
• SELECT FOR UPDATE statements could fail with PREFETCH set. (Bug #26646688, Bug #87457)
• Connector/ODBC now compiles on MySQL 5.5. Thanks to Vadim Zeitlin for the patch. (Bug #26633971,
Bug #87413)
• Bugs Fixed
Security Notes
• The linked OpenSSL library for MySQL Connector/ODBC 5.3.9 Commercial has been updated to version
1.0.2l.
This change does not affect the Oracle-produced MySQL Community build of Connector/ODBC 5.3.9,
which uses the yaSSL library instead. (Bug #26320994)
Another new CMake option, WITH_NODEFAULTLIB, has been introduced for specifying the Visual C++
runtime you want to link Connector/ODBC to when using mixed link types (that is, when link type to the
Visual C++ runtime differs for Connector/ODBC and the MySQL client library it links to).
Bugs Fixed
• The SQLForeignKeys() function returned an empty result set when the information schema was being
used. (Bug #26388694)
• Calling SQLExecute() after calling SQLFreeStmt() with the SQL_RESET_PARAMS option resulted in
an assertion failure. With this fix, a proper error is now thrown in the situation. (Bug #19148246)
11
MySQL Connector/ODBC Release Notes
• Bugs Fixed
Security Notes
• The linked OpenSSL library for Connector/ODBC Commercial 5.3.8 has been updated from version
1.0.2j to version 1.0.2k. Versions of OpenSSL prior to 1.0.2k are reported to be vulnerable to
CVE-2017-3731, CVE-2017-3732, and CVE-2017-7055.
This change does not affect the Oracle-produced MySQL Community build of Connector/ODBC 5.3.8,
which uses the yaSSL library instead. (Bug #25615448)
Bugs Fixed
• When error 2006 (“MySQL server has gone away”) occurred, Connector/ODBC wrongly returned the
SQL_NO_DATA error. (Bug #25671389)
• When the SQL_TIMESTAMP_STRUCT was used, if the date portion of a timestamp was populated but
the time portion was uninitialized, queries involving the timestamp would fail with a Date overflow
error. With this fix, the uninitialized time value is simply ignored. (Bug #25386024)
• Several fixes were made to the packaged README file, including the copyright year. (Bug #22858162)
• Connector/ODBC quit unexpectedly when a negative column number was passed as an argument for
the SQLGetData() method. (Bug #18636600)
• When server-side prepared statements were enabled, using the prefetch option caused SQL syntax
errors to be returned for queries that contained parameter markers. (Bug #17386788)
• After the attribute SQL_ATTR_MAX_ROWS had been set for a certain statement handler, a new statement
handler also had the same value set automatically. The fix makes sure a new statement handler returns
all rows by default. (Bug #17259397, Bug #69554)
• If the NO_INFORMATION_SCHEMA connection option was set, the SQLTables() function did not
return the catalog correctly when a wildcard or SQL_ALL_CATALOGS was used in its arguments. (Bug
#14005343)
12
MySQL Connector/ODBC Release Notes
• Bugs Fixed
Security Notes
• The linked OpenSSL library for Connector/ODBC Commercial 5.3.7 has been updated from version
1.0.1q to version 1.0.2j. Versions of OpenSSL prior to 1.0.2j are reported to be vulnerable to
CVE-2016-6304.
This change does not affect the Oracle-produced MySQL Community build of Connector/ODBC 5.3.7,
which uses the yaSSL library instead. (Bug #24753385)
• Added new configuration option NO_TLS_1_0, NO_TLS_1_1, and NO_TLS_1_2 for controlling TLS
versions for encrypting connecting. See Connector/ODBC DSN Configuration Options for details. For
more information about encryption protocols in MySQL, see Encrypted Connection TLS Protocols and
Ciphers. (Bug #23496903)
Bugs Fixed
• An assertion failure occurred when mysql_stmt_close() was called on a broken connection. (Bug
#25109356)
• Connector/ODBC could not be installed on OS X using the installer provided with the .dmg file unless
unixODBC had been installed on the system. With this fix, Connector/ODBC is now built to work with the
iODBC manager instead. Installation now only requires iODBC to be on the system. (Bug #23123503,
Bug #81113)
• Connector/ODBC could not be built with CMake 3.0.2 or later. The build script has been fixed to correct
the issue. (Bug #22746557)
• Bugs Fixed
Security Notes
• The linked OpenSSL library for Connector/ODBC Commercial 5.3.6 has been updated from version
1.0.1m to version 1.0.1q. Versions of OpenSSL prior to 1.0.1q are reported to be vulnerable to
CVE-2015-3195.
This change does not affect the Oracle-produced MySQL Community build of Connector/ODBC 5.3.6,
which uses the yaSSL library instead.
13
MySQL Connector/ODBC Release Notes
Bugs Fixed
• The function MySQLGetPrivateProfileStringW() used malloc() to allocate memory and then
xfree() to free the allocated memory for a returned value. That caused some issues when certain
third-party versions of MySQL client library (like MariaDB 10.x) was used. The issues have been fixed by
replacing malloc() with my_malloc(). (Bug #21074676, Bug #76984)
• Attempt to build Connector/ODBC from source on a Linux platform against the client library and header
files shipped with MySQL server 5.7.6 or newer failed. It was due to the changes made to the client
library and the header files, to which Connector/ODBC has now been adapted. (Bug #20685833)
• An application that used ActiveX Data Objects (ADO) and the Connector/ODBC ANSI driver hung after
trying to write French characters to a database that used the UTF-8 character set. (Bug #20526062)
• Because Connector/ODBC did not parse comments properly, the parameter markers embedded in
comments caused the complaint that SQLBindParameter was not used for all parameters. (Bug
#16613308, Bug #53891)
Since the only change in Connector/ODBC 5.3.5 is the inclusion of OpenSSL libraries publicly reported
as unaffected by CVE-2015-0286, and since Oracle-produced MySQL Community builds use YaSSL
libraries which have been reported as not affected by CVE-2015-0286, Oracle will not produce builds for
Connector/ODBC Community for version 5.3.5. This means the Community edition of Connector/ODBC
will skip version 5.3.5. (Bug #20747740)
Security Notes
• The linked OpenSSL library for Connector/ODBC Commercial 5.3.4 has been updated from version
1.0.1g to version 1.0.1h. Versions of OpenSSL prior to and including 1.0.1g are reported to be vulnerable
to CVE-2014-0224.
This change does not affect the Oracle-produced MySQL Community build of Connector/ODBC 5.3.4,
which uses the yaSSL library instead.
14
MySQL Connector/ODBC Release Notes
• Introduced a new DSN configuration option, rsakey, for specifying the full-path name of the PEM file
that contains the RSA public key for using the SHA256 authentication plugin of MySQL. See Connector/
ODBC DSN Configuration Options for details.
Since the only change in Connector/ODBC 5.3.3 is the inclusion of OpenSSL libraries publicly reported
as unaffected by CVE-2014-0160, and since Oracle-produced MySQL Community builds use yaSSL
libraries, which have been reported as not affected by CVE-2014-0160, Oracle will not produce builds for
Connector/ODBC Community for version 5.3.3. This means the Community edition of Connector/ODBC
will skip version 5.3.3. (Bug #18533200)
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.
• Bugs Fixed
• Made the Connector/ODBC GUI on Linux comply with the GNOME Coding Guidelines for Supporting
Accessibility.
Bugs Fixed
• 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)
15
MySQL Connector/ODBC Release Notes
• The order of the control elements was wrong during control selection in Connector/ODBC's Windows
GUI. (Bug #18240696)
• 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)
• 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)
• SQLGetData did not return correct length of the data when retrieving data from an output parameter
stream. (Bug #17814768, Bug #70946)
• 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)
16
MySQL Connector/ODBC Release Notes
• 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 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 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.
This is the second 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.
17
MySQL Connector/ODBC Release Notes
Keep in mind that this is a beta release and, as with any other pre-production releases, cautions should
be taken when installing on production level systems or systems with critical data. Not all of the features
planned for the final Connector/ODBC 5.3 release are implemented.
• Bugs Fixed
Bugs Fixed
• Calling SQLBulkOperations() without setting SQLSetStmtAttr resulted in a segmentation fault.
(Bug #17714290)
• A memory leak occurred when using Connector/ODBC to update the contents of a row. (Bug
#17653461, Bug #70662)
• A memory leak occurred in SQLConnect() when it was invoked after a call of SQLSetConnectAttr()
that used the parameter SQL_ATTR_CURRENT_CATALOG. (Bug #17586844)
• In ODBCManageDataSourcesQ4, when creating a new DSN with a Unix socket instead of a TCP
connection, NAMED_PIPE was set to “1” in the created DSN, which caused all connections that used the
DSN to fail with the “Wrong or unknown protocol” error. (Bug #17586452)
This is the first MySQL ODBC driver series conforming to the ODBC 3.8 specification. It contains the
minimally required implementation of the standard with key 3.8 features, which includes driver self-
identification and the streaming of output parameters (supported for binary types only) in this alpha
release.
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.
The release is built against the MySQL server 5.6.14 client library.
Keep in mind that this is an alpha release and, as with any other pre-production releases, cautions should
be taken when installing on production level systems or systems with critical data. Not all of the features
planned for the final Connector/ODBC 5.3 release are implemented.
• Bugs Fixed
18
MySQL Connector/ODBC Release Notes
• Support for File Data Source Names. (Bug #11746219, Bug #24581)
• Support of ODBC 3.8 standard: driver self-identification and input/output stream parameters
• Added GUI DSN setup dialog for some Unix-based systems by implementing a GTK+-based setup
library.
• Added new variable in CMake configuration files ODBCCP32_LIB for odbccpp32.lib path, and added
MYSQLCLIENT_LIB_NAME for linking MySQL client library statically or dynamically by specifying the
MySQL client library (libmysql.*, mysqlclient.*, libmysqlclient_r.*, libmysqlclient.*)
to be used. Linkage to MySQL 5.6.4 and later is now by C++, because libmysqlclient_r has
become a C++ library since.
Bugs Fixed
• A memory leak occurred in fetch_varlength_columns() while calling SQLExecDirect(),
because freeing result_bind buffers requires field_count, which was set to “0” when
mysql_stmt_free_result() was called. This fix frees result_bind buffers before calling
mysql_stmt_free_result(). (Bug #17441296)
• A program using parameter markers might crash with a segmentation fault. To avoid the problem, this
fix changes the argument length in the function convert_c_type2str() to be a pointer to a long
integer. (Bug #17421620, Bug #69733)
• The exit condition for a for loop in stringutil.c is changed to avoid a possible out-of-bounds error
and the associated reports by Valgrind. (Bug #17397596, Bug #64105)
• Microsoft Visual Studio 2010 crashed when reading rows from any table in Server Explorer with
connections to DSNs made by Connector/ODBC. (Bug #17304031, Bug #69950)
• When SQL TIME data was converted to the C data type of TIMESTAMP, if the value of the hour field is
greater than 24, the date fields did not get set to the current date and the fraction field for seconds did
not get set to zero as required by the ODBC specifications. (Bug #17016839, Bug #69545)
• When trying to create a linked server in Micrsoft SQL Server 2008 to a MySQL server set up with
Connector/ODBC as a DSN, the Microsoft SQL Server (if it is a 64-bit version) crashed or the linked
server suffered a catastrophic failure (if a 32-bit version of the Microsoft SQL Server is used). (Bug
#16604346, Bug #63386)
• When reading TIME column data using the SQLGetData method into the SQL_C_TYPE_TIME datatype,
errors occurred when the time string contained more than 6-digits (e.g., 120:53:44). (Bug #16176981,
Bug #67793)
• When called after SQLPrepare, the funciton SQLMoreResults returned SQL_ERROR, instead of
SQL_NO_DATA as required by the ODBC specification. (Bug #16101282, Bug #67920)
19
MySQL Connector/ODBC Release Notes
• Connector/ODBC used the “;” character instead of a null byte (“\0”) to terminate keyword-value pairs in
attribute strings. (Bug #15940689, Bug #66548)
• When using the Unicode-enabled version of the Connector/ODBC driver to connect to any MySQL
server of version 5.5.2 or older, all statements failed with the error message “Server does not support 4-
byte encoded UTF8 characters.” (Bug #14838690, Bug #67428)
• The configured values of a DSN's parameters overrode the values provided through the connection
string, instead of the other way round. (Bug #11760574, Bug #52996)
Since the only change in Connector/ODBC 5.2.8 is the inclusion of OpenSSL libraries publicly reported
as unaffected by CVE-2015-0286, and since Oracle-produced MySQL Community builds use YaSSL
libraries which have been reported as not affected by CVE-2015-0286, Oracle will not produce builds for
Connector/ODBC Community for version 5.2.8. This means the Community edition of Connector/ODBC
will skip version 5.2.8. (Bug #20747740)
• Bugs Fixed
Heartbleed Bug
• Connector/ODBC has been updated to use OpenSSL version 1.0.1g, which has been publicly reported
as not vulnerable to CVE-2014-0160. Please see Oracle Note #1645479.1 for further details. (Bug
#18533200)
Bugs Fixed
• 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)
• The order of the control elements was wrong during control selection in Connector/ODBC's Windows
GUI. (Bug #18240696)
• Connector/ODBC's GUI dialog could not be opened from within ODBCManageDataSourcesQ4 for
editing an existing DSN. (Bug #18046123)
20
MySQL Connector/ODBC Release Notes
• 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)
• 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)
• 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)
• A memory leak occurred when using Connector/ODBC to update the contents of a row. (Bug
#17653461, Bug #70662)
• If Connector/ODBC was built from source on Unix/Linux platforms, the tests provided in the distribution
(see Testing Connector/ODBC on Unix) could not be run with make test. (Bug #17615811, Bug
#70634)
• 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)
• A memory leak occurred in SQLConnect() when it was invoked after a call of SQLSetConnectAttr()
that used the parameter SQL_ATTR_CURRENT_CATALOG. (Bug #17586844)
• 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 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 segmentation fault occurred in myodbc_casecmp() when the provided query was empty. (Bug
#17085344)
21
MySQL Connector/ODBC Release Notes
• 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)
• Bugs Fixed
Bugs Fixed
• A memory leak occurred in fetch_varlength_columns() while calling SQLExecDirect(),
because freeing result_bind buffers requires field_count, which was set to “0” when
mysql_stmt_free_result() was called. This fix frees result_bind buffers before calling
mysql_stmt_free_result(). (Bug #17441296)
• A program using parameter markers might crash with a segmentation fault. To avoid the problem, this
fix changes the argument length in the function convert_c_type2str() to be a pointer to a long
integer. (Bug #17421620, Bug #69733)
• The exit condition for a for loop in stringutil.c is changed to avoid a possible out-of-bounds error
and the associated reports by Valgrind. (Bug #17397596, Bug #64105)
• Microsoft Visual Studio 2010 crashed when reading rows from any table in Server Explorer with
connections to DSNs made by Connector/ODBC. (Bug #17304031, Bug #69950)
• When SQL TIME data was converted to the C data type of TIMESTAMP, if the value of the hour field is
greater than 24, the date fields did not get set to the current date and the fraction field for seconds did
not get set to zero as required by the ODBC specifications. (Bug #17016839, Bug #69545)
• When trying to create a linked server in Micrsoft SQL Server 2008 to a MySQL server set up with
Connector/ODBC as a DSN, the Microsoft SQL Server (if it is a 64-bit version) crashed or the linked
22
MySQL Connector/ODBC Release Notes
server suffered a catastrophic failure (if a 32-bit version of the Microsoft SQL Server is used). (Bug
#16604346, Bug #63386)
• When reading TIME column data using the SQLGetData method into the SQL_C_TYPE_TIME datatype,
errors occurred when the time string contained more than 6-digits (e.g., 120:53:44). (Bug #16176981,
Bug #67793)
• When called after SQLPrepare, the funciton SQLMoreResults returned SQL_ERROR, instead of
SQL_NO_DATA as required by the ODBC specification. (Bug #16101282, Bug #67920)
• Connector/ODBC used the “;” character instead of a null byte (“\0”) to terminate keyword-value pairs in
attribute strings. (Bug #15940689, Bug #66548)
• When using the Unicode-enabled version of the Connector/ODBC driver to connect to any MySQL
server of version 5.5.2 or older, all statements failed with the error message “Server does not support 4-
byte encoded UTF8 characters.” (Bug #14838690, Bug #67428)
• The configured values of a DSN's parameters overrode the values provided through the connection
string, instead of the other way round. (Bug #11760574, Bug #52996)
• Bugs Fixed
Bugs Fixed
• A data connection could not be opened in Microsoft Word 2010 for mail merges that attempted to use an
ODBC DSN. (Bug #16526604, Bug #63844)
• The query_print() function could cause a serious error on 32-bit systems due to a 32-bit / 64-bit
mismatch in its return value. This error could occur when logging was enabled, for example when using
configuration settings such as:
[Driver]
option=524292
• Trailing zeros for the fractional part of the second for datetime and timestamp values were not
removed for MySQL server version 5.5 or earlier, which do not support fractional second. (Bug
#16294197, Bug #65418)
• Microsoft Access could experience a severe error when updating a BIT column in view representing a
MySQL table, for example through the datasheet interface. (Bug #16287859, Bug #68243)
• When binding text data to a numeric or decimal field with SQLBindParameter, Connector/ODBC
always used the system locale to determine the thousands and decimal separators. This resulted
in errors when, for example, a decimal separator in a number expressed in the British or American
notation (“.”) is treated as a thousands separator and removed during the binding because Connector/
ODBC was running on a non-English OS. To avoid the error, this fix makes Connector/ODBC use the
23
MySQL Connector/ODBC Release Notes
comma (“,”) as the thousands separator and the period (“.”) as the decimal separator for binding if the
FLAG_NO_LOCALE connection option is set; if the option is not set, Connector/ODBC continues to
follow the system locale in interpreting and binding the numbers. (Bug #11766369, Bug #59469)
• Bugs Fixed
• GET
• IO_AFTER_GTIDS
• IO_BEFORE_GTIDS
• MASTER_BIND
• ONE_SHOT
• PARTITION
• SQL_AFTER_GTIDS
• SQL_BEFORE_GTIDS
• The new connection option can_handle_exp_pwd indicates that your application includes error-
handling logic to deal with the error code for an expired password. See Connector/ODBC Connection
Parameters for the details of this connection option and the associated SQL state and native error code.
See ALTER USER Statement for details about password expiration for MySQL server accounts.
This new option is added to the Windows GUI, through a checkbox Can Handle Expired Password on
the Connection tab of the Details dialog.
Bugs Fixed
• When a column with type TINYTEXT, TEXT, MEDIUMTEXT, or LONGTEXT was retrieved from a table with
a binary collation, the text fields were converted to a hexadecimal representation, even though these
values were not really BLOBs. The unnecessary conversion could expand the data, causing overflow
problems when storing the result values. (Bug #11746572, Bug #27282)
Bugs Fixed
• Insert operations could fail if the inserted values contained any bit fields, mapped to table columns
declared as bit(1):
24
MySQL Connector/ODBC Release Notes
• Compilation failure was observed for driver/hanlde.c on the Oracle Linux platform. This was due to
the use of the function bzero(), which could cause problems on some platforms. This fix replaces the
bzero() call with a memset() call. (Bug #15939629)
• The is_minimum_version function could return an incorrect result in some cases where the difference
was in the third component of the release number. (Bug #15926340)
The issue occurred even if SQLFreeStmt() calls were used. The Prepared_stmt_count value grew
until it exceeded the internal limit. A workaround was to disable server-side prepared statements. (Bug
#14812778, Bug #67340)
• On a 64-bit system, calls to the SQLBindCol function using indicator variables (through the last
parameter) could return incorrect results. (Bug #11766437, Bug #59541)
• Bugs Fixed
• Server-side prepared statements are now enabled by default. To revert to the former behavior, using
client-side emulation for prepared statemnts, specify the NO_SSPS option when configuring the DSN.
• The implementation of the SQLBindParameter() function was enhanced to support “out” and
“inout” parameters when calling stored procedures. Designate the bind parameters intended to
hold output values from stored procedures using the type specifiers SQL_PARAM_OUTPUT or
SQL_PARAM_INPUT_OUTPUT.
Note
Currently, the support for “out” and “inout” parameters does not apply to
LONGTEXT and LONGBLOB columns.
25
MySQL Connector/ODBC Release Notes
Bugs Fixed
• Improved error handling for bad input data, such as an incorrect SQLSetConnectAttr length. This fix
improves reliability in cases such as an ANSI application using a Unicode driver. (Bug #14620420)
• The string returned by the SQLNativeSql function was not null-terminated as it should be. (Bug
#14559721)
• After executing a stored procedure returning a combination of resultsets and OUT parameters,
Connector/ODB would be disconnected from the server. The issue occurred after fetching the result sets
and executing a subsequent query. (Bug #14512187)
• Specifying certain values for the CHARSET option in the connection string could cause a serious error
when a query was executed. (Bug #14363601)
• Bugs Fixed
Bugs Fixed
• Close proximity issue when handling OS signals in myodbc. (Bug #14303803)
• Several catalog or info functions could raise an incorrect error String data, right
truncated when only partial information was requested. For example, if the application called
SQLDescribeCol(hstmt, ColNumber, ColName, BufferLen, ....), but did not want the
column name (ColName == NULL and BufferLen == 0). SQL_SUCCESS_WITH_INFO could also be
returned rather than the correct value SQL_SUCCESS. This issue affected many ADO, DAO, and other
applications.
SQLDescribeCol
SQLDescribeColA
SQLDescribeColW
SQLGetInfoA
SQLGetInfoW
SQLColAttribute
SQLColAttributeW
SQLGetConnectAttr
26
MySQL Connector/ODBC Release Notes
SQLGetConnectAttrW
SQLGetCursorName
SQLGetCursorNameW
SQLGetInfo
SQLGetInfoW
SQLNativeSql
SQLNativeSqlW
(Bug #14285620)
• Long table names crash OBDC driver. (Bug #14085211, Bug #65200)
• Bugs Fixed
• Clear text authentication to MySQL servers is now supported by Connector/ODBC. The support is
controlled by the new Enable Cleartext Authentication connection option (with the flag name
ENABLE_CLEARTEXT_PLUGIN). (Bug #16445091)
Bugs Fixed
• The exit condition for a for loop in stringutil.c is changed to avoid a possible out-of-bounds error
and the associated reports by Valgrind. (Bug #17397596, Bug #64105)
• Microsoft Visual Studio 2010 crashed when reading rows from any table in Server Explorer with
connections to DSNs made by Connector/ODBC. (Bug #17304031, Bug #69950)
• When trying to create a linked server in Micrsoft SQL Server 2008 to a MySQL server set up with
Connector/ODBC as a DSN, the Microsoft SQL Server (if it is a 64-bit version) crashed or the linked
server suffered a catastrophic failure (if a 32-bit version of the Microsoft SQL Server is used). (Bug
#16604346, Bug #63386)
• A data connection could not be opened in Microsoft Word 2010 for mail merges that attempted to use an
ODBC DSN. (Bug #16526604, Bug #63844)
• Trailing zeros for the fractional part of the second for datetime and timestamp values were not
removed for MySQL server version 5.5 or earlier, which do not support fractional second. (Bug
#16294197, Bug #65418)
• Connector/ODBC used the “;” character instead of a null byte (“\0”) to terminate keyword-value pairs in
attribute strings. (Bug #15940689, Bug #66548)
27
MySQL Connector/ODBC Release Notes
• The configured values of a DSN's parameters overrode the values provided through the connection
string, instead of the other way round. (Bug #11760574, Bug #52996)
• Bugs Fixed
• GET
• IO_AFTER_GTIDS
• IO_BEFORE_GTIDS
• MASTER_BIND
• ONE_SHOT
• PARTITION
• SQL_AFTER_GTIDS
• SQL_BEFORE_GTIDS
• The new connection option can_handle_exp_pwd indicates that your application includes error-
handling logic to deal with the error code for an expired password. See Connector/ODBC Connection
Parameters for the details of this connection option and the associated SQL state and native error code.
See ALTER USER Statement for details about password expiration for MySQL server accounts.
This new option is added to the Windows GUI, through a checkbox Can Handle Expired Password on
the Connection tab of the Details dialog.
Bugs Fixed
• The string returned by the SQLNativeSql function was not null-terminated as it should be. (Bug
#14559721)
• Specifying certain values for the CHARSET option in the connection string could cause a serious error
when a query was executed. (Bug #14363601)
• If multiple statements were called using the same statement handle, SQLColumns and possibly other
catalog functions could return wrong results. Some field length values were not reset in the descriptor
records. The issue occurred even if the statement handle was closed with SQL_CLOSE between the
statements. (Bug #14338051)
• If an application received a SIGPIPE signal, then another SIGPIPE signal immediately after (before the
first signal handler was finished), the application could terminate rather than handling the second signal.
(Bug #14303803)
• Several catalog or info functions could raise an incorrect error String data, right
truncated when only partial information was requested. For example, if the application called
SQLDescribeCol(hstmt, ColNumber, ColName, BufferLen, ....), but did not want the
28
MySQL Connector/ODBC Release Notes
column name (ColName == NULL and BufferLen == 0). SQL_SUCCESS_WITH_INFO could also be
returned rather than the correct value SQL_SUCCESS. This issue affected many ADO, DAO, and other
applications.
SQLDescribeCol
SQLDescribeColA
SQLDescribeColW
SQLGetInfoA
SQLGetInfoW
SQLColAttribute
SQLColAttributeW
SQLGetConnectAttr
SQLGetConnectAttrW
SQLGetCursorName
SQLGetCursorNameW
SQLGetInfo
SQLGetInfoW
SQLNativeSql
SQLNativeSqlW
(Bug #14285620)
• Calling the SQLTables function with a very long database or table name could cause a serious error.
This fix allows the SQLTables function to accept database and table names with the maximum length of
64 characters. (Bug #14085211)
• On a 64-bit system, calls to the SQLBindCol function using indicator variables (through the last
parameter) could return incorrect results. (Bug #11766437, Bug #59541)
• When a column with type TINYTEXT, TEXT, MEDIUMTEXT, or LONGTEXT was retrieved from a table with
a binary collation, the text fields were converted to a hexadecimal representation, even though these
values were not really BLOBs. The unnecessary conversion could expand the data, causing overflow
problems when storing the result values. (Bug #11746572, Bug #27282)
• Bugs Fixed
Bugs Fixed
• The SQLTables() function did not return the catalog correctly if the wildcard or SQL_ALL_CATALOGS
was used. (Bug #13914518)
29
MySQL Connector/ODBC Release Notes
• Fractional seconds part of timestamp was ignored in prepared statements that use SQLBindParameter
and SQL_C_TIMESTAMP type. For example, a prepared query comparing two timestamp values that only
differed in the fractional part would consider the values identical. (Bug #12767761, Bug #60648)
• The fraction member in SQL_TIMESTAMP_STRUCT was always set to 0 when a timestamp was
retrieved using SQLGetData(). The fix causes the fraction member to be correctly set, with a
value representing nanoseconds. This issue did not occur when a result was retrieved as a string
(SQLGetData() with SQL_C_CHAR). (Bug #12767740, Bug #60646)
• On Windows platforms, some memory was leaked on each connection attempt due to an incorrect
response to a SQLGetDiagRec() call. (Bug #11766029, Bug #59059)
• A failure on one statement causes another statement to fail. (Bug #13097201, Bug #62657)
The 64-bit MSI installer no longer contains 32-bit and 64-bit builds of the driver, like it did in previous
versions. It now only includes 64-bit support.
• Bugs Fixed
Bugs Fixed
• Some catalog functions (such as SQLColumns(), SQLStatistics(), and SQLPrimaryKeys())
would only return one row, when called after pre-execution failed. (Bug #12824839)
• The CLI installer script mysqlodbc-installer was missing documentation about how to configure the
optional data source parameters. (Bug #12810058)
• The Install.bat script contained leftover 3.51 information, and did not properly install the 5.1
Connector/ODBC connector. (Bug #12781039)
• With the option charset=cp1251 specified in the connection string, the results could be returned as
CP1251 or as UTF8 depending on the query. For example, these queries could give results in different
code pages:
30
MySQL Connector/ODBC Release Notes
• An off-by-one error, where sqlwcharchr might read one SQLWCHAR after the end of a string. (Bug
#61586)
• The Connector/ODBC driver did not call mysql_thread_end() when a thread ended, which caused
error messages like: Error in my_thread_global_end(): 1 threads didn't exit. (Bug
#57727)
• When using Connector/ODBC to fetch data, if a net_write_timeout condition occurred, the operation
returned the standard "end of data" status, rather than an error. (Bug #39878)
• MS Access fields with VARCHAR NOT NULL columns could not be altered. (Bug #31067)
• Bugs Fixed
Bugs Fixed
• For some procedure and parameter combinations SQLProcedureColumns() did not work correctly.
For example, it could not return records for an existing procedure with correct parameters supplied.
Further, it returned incorrect data for column 7, TYPE_NAME. For example, it returned VARCHAR(20)
instead of VARCHAR. (Bug #57182)
• The Connector/ODBC MSI installer did not set the InstallLocation value in the Microsoft Windows
registry. (Bug #56978)
• In bulk upload mode, SQLExecute would return SQL_SUCCESS, even when the uploaded data
contained errors, such as primary key duplication, and foreign key violation. (Bug #56804)
• SQLDescribeCol and SQLColAttribute could not be called before SQLExecute, if the query was
parameterized and not all parameters were bound.
Note, MSDN states that “For performance reasons, an application should not call SQLColAttribute/
SQLDescribeCol before executing a statement.” However, it should still be possible to do so if
performance reasons are not paramount. (Bug #56717)
• When SQLNumResultCols() was called between SQLPrepare() and SQLExecute() the driver ran
SET @@sql_select_limit=1, which limited the resultset to just one row. (Bug #56677)
• After installing Connector/ODBC, the system DSN created could not be configured or deleted. An error
dialog was displayed, showing the error message “Invalid attribute string”.
31
MySQL Connector/ODBC Release Notes
In this case the problem was due to the fact that the driver could not parse the NULL-separated
connection string. (Bug #56233)
• When used after a call to SQLTables(), SQLRowCount() did not return the correct value. (Bug
#55870)
• When attempting to install the latest Connector/ODBC 5.1.6 on Windows using the MSI, with an existing
5.1.x version already installed, the following error was generated:
Another version of this product is already installed. Installation of this version
cannot continue. To configure or remove the existing version of this product, use
Add/Remove Programs on the Control Panel.
Also, the version number displayed in the ODBC Data Source Administrator/Drivers tab did not get
updated when removing or installing a new version of 5.1.x. (Bug #54314)
• Bugs Fixed
Bugs Fixed
• SQLColAttribute(SQL_DESC_PRECISION...) function returned incorrect results for type identifiers
that have a negative value:
#define SQL_LONGVARCHAR (-1) returned 4294967295
#define SQL_BINARY (-2) returned 4294967294
#define SQL_VARBINARY (-3) returned 4294967293
#define SQL_LONGVARBINARY (-4) returned 4294967292
#define SQL_BIGINT (-5) returned 4294967291
#define SQL_TINYINT (-6) returned 4294967290
#define SQL_BIT (-7) returned 4294967289
They were returned as 32-bit unsigned integer values. This only happened on 64-bit Linux. (Bug #55024)
• The SQLColumns function returned the incorrect transfer octet length into the column BUFFER_LENGTH
for DECIMAL type. (Bug #53235)
• SQLForeignKeys() did not return the correct information. The list of foreign keys in other tables should
not have included foreign keys that point to unique constraints in the specified table. (Bug #51422)
• When executing the SQLProcedureColumns() ODBC function, the driver reported the following error:
MySQL server does not provide the requested information
(Bug #50400)
• In contrast to all other ODBC catalog functions SQLTablePrivileges required the user to have
SELECT privilege on MySQL schemata, otherwise the function returned with an error:
32
MySQL Connector/ODBC Release Notes
(Bug #50195)
• Connector/ODBC manually added a LIMIT clause to the end of certain SQL statements, causing errors
for statements that contained code that should be positioned after the LIMIT clause. (Bug #49726)
• If NO_BACKSLASH_ESCAPES mode was used on a server, escaping binary data led to server query
parsing errors. (Bug #49029)
• Bulk upload operations did not work for queries that used parameters. (Bug #48310)
• Retrieval of the current catalog at the moment when a connection was not ready, such as when the
connection had been broken or when not all pending results had been processed, resulted in the
application crashing. (Bug #46910)
• Describing a view or table caused SQLPrepare to prefetch table data. For large tables this created an
intolerable performance hit. (Bug #46411)
• If an application was invoked by the root user, SQLDriverConnect() was not able to use the
username and password in the connection string to connect to the database. (Bug #45378)
• Conversions for many types were missing from the file driver/info.c. (Bug #43855)
• The SQLTables() function required approximately two to four minutes to return the list of 400 tables in
a database. The SHOW TABLE STATUS query used by SQLTables() was extremely slow for InnoDB
tables with a large number of rows because the query was calculating the approximate number of rows
in each table. Further, the results could not be cached due to non-deterministic nature of the result set
(the row count was re-calculated every time), impacting performance further. (Bug #43664)
• Executing SQLForeignKeys to get imported foreign keys for tables took an excessively long time. For
example, getting imported foreign keys for 252 tables to determine parent/child dependencies took about
3 minutes and 14 seconds for the 5.1.5 driver, whereas it took 3 seconds for the 3.5x.x driver. (Bug
#39562)
• SQLDescribeCol returned incorrect column definitions for SQLTables result. (Bug #37621)
• When opening ADO.Recordset from Microsoft Access 2003, a run-time error occurred:
ErrNo: -2147467259 ErrMessage: Data provider or other service returned an E_FAIL status.
(Bug #36996)
• SQLPrimaryKeysW returned mangled strings for table name, column name and primary key name.
(Bug #36441)
• On Windows, the SOCKET parameter to the DSN was used as the named pipe name to connect to. This
was not exposed in the Windows setup GUI. (Bug #34477)
• Connector/ODBC returned a value of zero for a column with a nonzero value. This happened when the
column had a data type of BIT, and any numeric type was used in SQLBindCol. (Bug #32821)
33
MySQL Connector/ODBC Release Notes
• Option for handling bad dates was not available in the GUI. (Bug #30539)
• Bugs Fixed
Bugs Fixed
• An error randomly occurred on Windows 2003 Servers (German language Version) serving classic ASP
scripts on IIS6 MDAC version 2.8 SP2 on Windows 2003 SP2. The application connected to MySQL
Server 5.0.44-log with a charset of UTF-8 Unicode (utf8). The MySQL server was running on Gentoo
Linux.
The error occurred on connections established using either a DNS or a connection string.
When IISState and Debug Diagnostic Tool 1.0.0.152 was used to analyse the code, the following crash
analysis was generated:
MYODBC5!UTF16TOUTF32+6In 4640-1242788336.dmp the assembly instruction at
myodbc5!utf16toutf32+6 in C:\Programme\MySQL\Connector ODBC 5.1\myodbc5.dll from MySQL AB
has caused an access violation exception (0xC0000005) when trying to read from memory
location 0x194dd000 on thread 33
(Bug #44971)
• Connector/ODBC overwrote the query log. Connector/ODBC was changed to append the log, rather
than overwrite it. (Bug #44965)
• Connector/ODBC failed to build with MySQL 5.1.30 due to incorrect use of the data type bool. (Bug
#42120)
• Inserting a new record using SQLSetPos did not correspond to the database name specified in the
SELECT statement when querying tables from databases other than the current one.
SQLSetPos attempted to do the INSERT in the current database, but finished with a SQL_ERROR result
and “Table does not exist” message from MySQL Server. (Bug #41946)
• Calling SQLDescribeCol() with a NULL buffer and nonzero buffer length caused a crash. (Bug
#41942)
• Connector/ODBC updated some fields with random values, rather than with NULL. (Bug #41256)
34
MySQL Connector/ODBC Release Notes
• When a column of type DECIMAL containing NULL was accessed, Connector/ODBC returned a 0 rather
than a NULL. (Bug #41081)
• In Access 97, when linking a table containing a LONGTEXT or TEXT field to a Connector/ODBC DSN, the
fields were shown as TEXT(255) in the table structure. Data was therefore truncated to 255 characters.
(Bug #40932)
• Calling SQLDriverConnect() with a NULL pointer for the output buffer caused a crash if
SQL_DRIVER_NOPROMPT was also specified:
SQLDriverConnect(dbc, NULL, "DSN=myodbc5", SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT)
(Bug #40316)
• Setting the ADO Recordset decimal field value to 44.56 resulted in an incorrect value of 445600.0000
being stored when the record set was updated with the Update method. (Bug #39961)
• The SQLTablesW API gave incorrect results. For example, table name and table type were returned as
NULL rather than as the correct values. (Bug #39957)
• Connector/ODBC would crash when a character set was being used on the server that was not
supported in the client, for example cp1251:
[MySQL][ODBC 5.1 Driver][mysqld-5.0.27-community-nt]Restricted data type attribute violation
The fix causes Connector/ODBC to return an error message instead of crashing. (Bug #39831)
The sql_get_data() function only worked correctly for BOOLEAN columns that corresponded to
SQL_C_BIT buffers. (Bug #39644)
• When the SQLTables method was called with NULL passed as the tablename parameter, only
one row in the resultset, with table name of NULL was returned, instead of all tables for the given
database. (Bug #39561)
• Connector/ODBC 5.1.5 was not able to connect if the connection string parameters contained spaces or
tab symbols. For example, if the SERVER parameter was specified as “SERVER= localhost” instead of
“SERVER=localhost” the following error message will be displayed:
[MySQL][ODBC 5.1 Driver] Unknown MySQL server host ' localhost' (11001).
(Bug #39085)
• The pointer passed to the SQLDriverConnect method to retrieve the output connection string length
was one greater than it should have been due to the inclusion of the NULL terminator. (Bug #38949)
• Data-at-execution parameters were not supported during positioned update. This meant updating a
long text field with a cursor update would erroneously set the value to null. This would lead to the error
Column 'column_name' cannot be null while updating the database, even when column_name
had been assigned a valid nonnull string. (Bug #37649)
• The connection string option Enable Auto-reconnect did not work. When the connection failed, it
could not be restored, and the errors generated were the same as if the option had not been selected.
(Bug #37179)
35
MySQL Connector/ODBC Release Notes
• Insertion of data into a LONGTEXT table field did not work. If such an attempt was made the
corresponding field would be found to be empty on examination, or contain random characters. (Bug
#36071)
• No result record was returned for SQLGetTypeInfo for the TIMESTAMP data type. An application would
receive the result return code 100 (SQL_NO_DATA_FOUND). (Bug #30626)
• It was not possible to use Connector/ODBC to connect to a server using SSL. The following error was
generated:
Runtime error '-2147467259 (80004005)':
(Bug #29955)
• When the recordSet.Update function was called to update an adLongVarChar field, the field was
updated but the recordset was immediately lost. This happened with driver cursors, whether the cursor
was opened in optimistic or pessimistic mode.
When the next update was called the test code would exit with the following error:
-2147467259 : Query-based update failed because the row to update could not be found.
(Bug #26950)
• Microsoft Access was not able to read BIGINT values properly from a table with just two columns of type
BIGINT and VARCHAR. #DELETE appeared instead of the correct values. (Bug #17679)
• The connector failed to prompt for additional information required to create a DSN-less connection from
an application such as Microsoft Excel. (Bug #37254)
• SQLDriverConnect does not return SQL_NO_DATA on cancel. The ODBC documentation specifies
that this method should return SQL_NO_DATA when the user cancels the dialog to connect. The
connector, however, returns SQL_ERROR. (Bug #36293)
• Assigning a string longer than 67 characters to the TableType parameter resulted in a buffer overrun
when the SQLTables() function was called. (Bug #36275)
• The ODBC connector randomly uses logon information stored in odbc-profile, or prompts the user
for connection information and ignores any settings stored in odbc-profile. (Bug #36203)
• After having successfully established a connection, a crash occurs when calling SQLProcedures()
followed by SQLFreeStmt(), using the ODBC C API. (Bug #36069)
36
MySQL Connector/ODBC Release Notes
• The driver installer could not create a new DSN if many other drivers were already installed. (Bug
#35776)
• The driver crashes ODBC Administrator on attempting to add a new DSN. (Bug #32057)
• Bugs Fixed
Platform-Specific Notes
• Important Change: You must uninstall previous 5.1.x editions of Connector/ODBC before installing the
new version.
• The HP-UX 11.23 IA64 binary package does not include the GUI bits because of problems building Qt
on that platform.
• There is no binary package for OS X on 64-bit PowerPC because Apple does not currently provide a 64-
bit PowerPC version of iODBC.
• The installer for 64-bit Windows installs both the 32-bit and 64-bit driver. Please note that Microsoft does
not yet supply a 64-bit bridge from ADO to ODBC.
Bugs Fixed
• Important Change: In previous versions, the SSL certificate would automatically be verified when
used as part of the Connector/ODBC connection. The default mode is now to ignore the verificate of
certificates. To enforce verification of the SSL certificate during connection, use the SSLVERIFY DSN
parameter, setting the value to 1. (Bug #29955, Bug #34648)
• Inserting characters to a UTF8 table using surrogate pairs would fail and insert invalid data. (Bug
#34672)
• Installation of Connector/ODBC failed because it was unable to uninstall a previous installed version.
The file being requested would match an older release version than any installed version of the
connector. (Bug #34522)
• Using SqlGetData in combination with SQL_C_WCHAR would return overlapping data. (Bug #34429)
• Descriptor records were not cleared correctly when calling SQLFreeStmt(SQL_UNBIND). (Bug #34271)
• The dropdown selection for databases on a server when creating a DSN was too small. The list size now
automatically adjusts up to a maximum size of 20 potential databases. (Bug #33918)
• Microsoft Access would be unable to use DBEngine.RegisterDatabase to create a DSN using the
Connector/ODBC driver. (Bug #33825)
• Connector/ODBC erroneously reported that it supported the CAST() and CONVERT() ODBC functions
for parsing values in SQL statements, which could lead to bad SQL generation during a query. (Bug
#33808)
37
MySQL Connector/ODBC Release Notes
• Using a linked table in Access 2003 where the table has a BIGINT column as the first column in the
table, and is configured as the primary key, shows #DELETED for all rows of the table. (Bug #24535)
• Updating a RecordSet when the query involves a BLOB field failed. (Bug #19065)
Keep in mind that this is a beta release, and as with any other pre-production release, caution should be
taken when installing on production level systems or systems with critical data.
• Platform-Specific Notes
• Bugs Fixed
Platform-Specific Notes
• The HP-UX 11.23 IA64 binary package does not include the GUI bits because of problems building Qt
on that platform.
• There is no binary package for OS X on 64-bit PowerPC because Apple does not currently provide a 64-
bit PowerPC version of iODBC.
• The installer for 64-bit Windows installs both the 32-bit and 64-bit driver. Please note that Microsoft does
not yet supply a 64-bit bridge from ADO to ODBC.
• Due to differences with the installation process used on Windows and potential registry corruption, it is
recommended that you uninstall any existing versions of Connector/ODBC 5.1.x before upgrading.
• SQLForeignKeys uses INFORMATION_SCHEMA when it is available on the server, which enables more
complete information to be returned.
Bugs Fixed
• The SSLCIPHER option would be incorrectly recorded within the SSL configuration on Windows. (Bug
#33897)
• Within the GUI interface, when connecting to a MySQL server on a nonstandard port, the connection test
within the GUI failed. The issue was related to incorrect parsing of numeric values within the DSN when
the option was not configured as the last parameter within the DSN. (Bug #33822)
38
MySQL Connector/ODBC Release Notes
• Specifying a nonexistent database name within the GUI dialog would result in an empty list, not an error.
(Bug #33615)
• When deleting rows from a static cursor, the cursor position would be incorrectly reported. (Bug #33388)
• SQLGetInfo() reported characters for SQL_SPECIAL_CHARACTERS that were not encoded correctly.
(Bug #33130)
• Retrieving data from a BLOB column failed within SQLGetDatawhen the target data type was
SQL_C_WCHAR due to incorrect handling of the character buffer. (Bug #32684)
• Renaming an existing DSN entry would create a new entry with the new name without deleting the old
entry. (Bug #31165)
• Reading a TEXT column that had been used to store UTF8 data would result in the wrong information
being returned during a query. (Bug #28617)
• SQLForeignKeys would return an empty string for the schema columns instead of NULL. (Bug #19923)
• When accessing column data, FLAG_COLUMN_SIZE_S32 did not limit the octet length or display size
reported for fields, causing problems with Microsoft Visual FoxPro.
The list of ODBC functions that could have caused failures in Microsoft software when retrieving the
length of LONGBLOB or LONGTEXT columns includes:
• SQLColumns
• SQLColAttribute
• SQLColAttributes
• SQLDescribeCol
• Dynamic cursors on statements with parameters were not supported. (Bug #11846)
• Evaluating a simple numeric expression when using the OLEDB for ODBC provider and ADO would
return an error, instead of the result. (Bug #10128)
• Adding or updating a row using SQLSetPos() on a result set with aliased columns failed. (Bug #6157)
Keep in mind that this is a beta release, and as with any other pre-production release, caution should be
taken when installing on production level systems or systems with critical data.
• Platform-Specific Notes
39
MySQL Connector/ODBC Release Notes
• Bugs Fixed
Platform-Specific Notes
• The HP-UX 11.23 IA64 binary package does not include the GUI bits because of problems building Qt
on that platform.
• There is no binary package for OS X on 64-bit PowerPC because Apple does not currently provide a 64-
bit PowerPC version of iODBC.
• The installer for 64-bit Windows installs both the 32-bit and 64-bit driver. Please note that Microsoft does
not yet supply a 64-bit bridge from ADO to ODBC.
• Due to differences with the installation process used on Windows and potential registry corruption, it is
recommended that you uninstall any existing versions of Connector/ODBC 5.1.x before upgrading.
• Incompatible Change: Do not permit SET NAMES in initial statement and in executed statements.
• Removed nonthreadsafe configuration of the driver. The driver is now always built against the threadsafe
version of libmysql.
• Replaced the internal library which handles creation and loading of DSN information. The new library,
which was originally a part of Connector/ODBC 5.0, supports Unicode option values.
• The Windows installer now places files in a subdirectory of the Program Files directory instead of the
Windows system directory.
Bugs Fixed
• The SET NAMES statement has been disabled because it causes problems in the ODBC driver when
determining the current client character set. (Bug #32596)
• ADO was unable to open record set using dynamic cursor. (Bug #32014)
• ADO applications would not open a RecordSet that contained a DECIMAL field. (Bug #31720)
40
MySQL Connector/ODBC Release Notes
• Using an ODBC prepared statement with bound columns would produce an empty result set when called
immediately after inserting a row into a table. (Bug #29239)
• Connector/ODBC failed to connect to the server if the password contained certain characters, including
the semicolon and other punctuation marks. (Bug #16178)
• Fixed SQL_ATTR_PARAM_BIND_OFFSET, and fixed row offsets to work with updatable cursors.
• SQLError() incorrectly cleared the error information, making it unavailable from subsequent calls to
SQLGetDiagRec().
Keep in mind that this is a alpha release, and as with any other pre-production release, caution should
be taken when installing on production level systems or systems with critical data. Not all of the features
planned for the final Connector/ODBC 5.1 release are implemented.
• Platform-Specific Notes
Platform-Specific Notes
• The HP-UX 11.23 IA64 binary package does not include the GUI bits because of problems building Qt
on that platform.
• There is no binary package for OS X on 64-bit PowerPC because Apple does not currently provide a 64-
bit PowerPC version of iODBC.
• Due to differences with the installation process used on Windows and potential registry corruption, it is
recommended that you uninstall any existing versions of Connector/ODBC 5.1.x before upgrading.
41
MySQL Connector/ODBC Release Notes
Bugs Fixed
• Inserting NULL values into a DATETIME column from Access reports an error. (Bug #27896)
• Tables with TEXT columns would be incorrectly identified, returning an Unknown SQL type - 65535
error. (Bug #20127)
• Bugs Fixed
• Driver now builds and is partially tested under Linux with the iODBC driver manager.
Bugs Fixed
• Connection string parsing for DSN-less connections could fail to identify some parameters. (Bug #25316)
• Updates of MEMO or TEXT columns from within Microsoft Access failed. (Bug #25263)
• Bugs Fixed
42
MySQL Connector/ODBC Release Notes
• Added initial support for removing braces when calling stored procedures and retrieving result sets from
procedure calls. (Bug #24485)
Bugs Fixed
• Editing DSN no longer crashes ODBC data source administrator. (Bug #24675)
This is an implementation and testing release, and is not designed for use within a production environment.
• Bugs Fixed
Bugs Fixed
• Fixed wildcard handling of and listing of catalogs and tables in SQLTables.
• ODBC v2 behavior in driver now supports ODBC v3 date/time types (since DriverManager maps them).
• Fixed SQLGetData to clear the NULL indicator correctly during multiple calls.
43
MySQL Connector/ODBC Release Notes
This is an implementation and testing release, and is not designed for use within a production environment.
• Bugs Fixed
• Wildcards now support escaped chars and underscore matching (needed to link tables with underscores
in access).
Bugs Fixed
• Fixed binding using SQL_C_LONG.
• Allow SQLDescribeCol to be called to retrieve the length of the column name, but not the name itself.
• Length now used when handling bind parameter (needed in particular for SQL_WCHAR) - this enables
updating char data in MS Access.
This is an implementation and testing release, and is not designed for use within a production environment.
• Bugs Fixed
• Improved trace/log.
44
MySQL Connector/ODBC Release Notes
Bugs Fixed
• SQLBindParameter now handles SQL_C_DEFAULT.
• Corrected incorrect column index within SQLStatistics. Many more tables can now be linked into MS
Access.
• Fixed SQLDescribeCol returning column name length in bytes rather than chars.
This is an implementation and testing release, and is not designed for use within a production environment.
• Bugs Fixed
• You no longer have to have Connector/ODBC 3.51 installed before installing this version.
Bugs Fixed
• You no longer have to have Connector/ODBC 3.51 installed before installing this version.
This is an implementation and testing release, and is not designed for use within a production environment.
You no longer have to have Connector/ODBC 3.51 installed before installing this version.
Bugs Fixed
• You no longer have to have Connector/ODBC 3.51 installed before installing this version.
• SQLBindParameter
• SQLBindCol
• SQLBindCol
45
MySQL Connector/ODBC Release Notes
• SQLBindParameter
• SQLCloseCursor
• SQLGetTypeInfo
• SQLExecDirect
• SQLGetConnectAttr
• SQLDisconnect
• SQLColAttribute
• SQLGetStmtAttr
• SQLSetEnvAttr
• SQLExecute
• Connector/ODBC is currently limited to basic applications. ADO applications and Microsoft Office are not
supported.
• SQLFreeHandle
• SQLTables
• SQLGetFunctions
• SQLRowcount
• SQLGetDiagField
• SQLConnect
• SQLGetDescRec
• SQLFreeStmt
• SQLSetConnectAttr
• SQLCopyDesc
• SQLGetEnvAttr
• SQLNumResultCols
• SQLFetch
46
MySQL Connector/ODBC Release Notes
• SQLGetData
• SQLGetDiagRec
• SQLAllocHandle
• SQLSetStmtAttr
• SQLGetDescField
• SQLPrepare
• SQLAllocHandle
• SQLCloseCursor
• SQLColAttribute
• SQLColumns
• SQLConnect
• SQLCopyDesc
• SQLDisconnect
• SQLExecDirect
• SQLExecute
• SQLFetch
• SQLFreeHandle
• SQLFreeStmt
• SQLGetConnectAttr
• SQLGetData
• SQLGetDescField
• SQLGetDescRec
• SQLGetDiagField
• SQLGetDiagRec
• SQLGetEnvAttr
• SQLGetFunctions
• SQLGetStmtAttr
• SQLGetTypeInfo
47
MySQL Connector/ODBC Release Notes
• SQLNumResultCols
• SQLPrepare
• SQLRowcount
• SQLTables
The following ODBC API function are implemented, but not yet support all the available attributes/
options:
• SQLSetConnectAttr
• SQLSetDescField
• SQLSetDescRec
• SQLSetEnvAttr
• SQLSetStmtAttr
• SQLColumns
• SQLSetDescRec
• SQLFetch has to return error if indicator pointer is NULL for NULL value. (Bug #13542600)
• A failure on one statement causes another statement to fail. (Bug #13097201, Bug #62657)
• Connector/ODBC manually added a LIMIT clause to the end of certain SQL statements, causing errors
for statements that contained code that should be positioned after the LIMIT clause. (Bug #49726)
• Describing a view or table caused SQLPrepare to prefetch table data. For large tables this created an
intolerable performance hit. (Bug #46411)
• Bugs Fixed
48
MySQL Connector/ODBC Release Notes
Authentication, and Windows Pluggable Authentication. These capabilities result from linking the
Connector/ODBC binaries against the MySQL 5.5.16 libmysqlclient rather than the MySQL 5.1
libmysqlclient used previously. The newer libmysqlclient includes the client-side support
needed for the server-side PAM and Windows authentication plugins.
Bugs Fixed
• Some catalog functions (such as SQLColumns(), SQLStatistics(), and SQLPrimaryKeys())
would only return one row, when called after pre-execution failed. (Bug #12824839)
• An off-by-one error, where sqlwcharchr might read one SQLWCHAR after the end of a string. (Bug
#61586)
• The Connector/ODBC driver did not call mysql_thread_end() when a thread ended, which caused
error messages like: Error in my_thread_global_end(): 1 threads didn't exit. (Bug
#57727)
• MS Access fields with VARCHAR NOT NULL columns could not be altered. (Bug #31067)
• If NO_BACKSLASH_ESCAPES mode was used on a server, escaping binary data led to server query
parsing errors. (Bug #49029)
• Inserting a new record using SQLSetPos did not correspond to the database name specified in the
SELECT statement when querying tables from databases other than the current one.
SQLSetPos attempted to do the INSERT in the current database, but finished with a SQL_ERROR result
and “Table does not exist” message from MySQL Server. (Bug #41946)
• When using Connector/ODBC to fetch data, if a net_write_timeout condition occurred, the operation
returned the standard "end of data" status, rather than an error. (Bug #39878)
• No result record was returned for SQLGetTypeInfo for the TIMESTAMP data type. An application would
receive the result return code 100 (SQL_NO_DATA_FOUND). (Bug #30626)
• Microsoft Access was not able to read BIGINT values properly from a table with just two columns of type
BIGINT and VARCHAR. #DELETE appeared instead of the correct values. (Bug #17679)
49
MySQL Connector/ODBC Release Notes
• The connection string option Enable Auto-reconnect did not work. When the connection failed, it
could not be restored, and the errors generated were the same as if the option had not been selected.
(Bug #37179)
• It was not possible to use Connector/ODBC to connect to a server using SSL. The following error was
generated:
Runtime error '-2147467259 (80004005)':
(Bug #29955)
• Bugs Fixed
Bugs Fixed
• When an ADOConnection is created and attempts to open a schema with
ADOConnection.OpenSchema an access violation occurs in myodbc3.dll. (Bug #30770)
• When SHOW CREATE TABLE was invoked and then the field values read, the result was truncated and
unusable if the table had many rows and indexes. (Bug #24131)
• The driver crashes ODBC Administrator on attempting to add a new DSN. (Bug #32057)
• When accessing column data, FLAG_COLUMN_SIZE_S32 did not limit the octet length or display size
reported for fields, causing problems with Microsoft Visual FoxPro.
The list of ODBC functions that could have caused failures in Microsoft software when retrieving the
length of LONGBLOB or LONGTEXT columns includes:
• SQLColumns
• SQLColAttribute
• SQLColAttributes
• SQLDescribeCol
50
MySQL Connector/ODBC Release Notes
• Important Change: In previous versions, the SSL certificate would automatically be verified when
used as part of the Connector/ODBC connection. The default mode is now to ignore the verificate of
certificates. To enforce verification of the SSL certificate during connection, use the SSLVERIFY DSN
parameter, setting the value to 1. (Bug #29955, Bug #34648)
• When using ADO, the count of parameters in a query would always return zero. (Bug #33298)
• Using tables with a single quote or other nonstandard characters in the table or column names through
ODBC failed. (Bug #32989)
• When using Crystal Reports, table and column names would be truncated to 21 characters, and
truncated columns in tables where the truncated name was the duplicated would lead to only a single
column being displayed. (Bug #32864)
• SQLExtendedFetch() and SQLFetchScroll() ignored the rowset size if the Don't cache
result DSN option was set. (Bug #32420)
• When using the ODBC SQL_TXN_READ_COMMITTED option, 'dirty' records would be read from tables as
if the option had not been applied. (Bug #31959)
• When creating a System DSN using the ODBC Administrator on Mac OS X, a User DSN would be
created instead. The root cause is a problem with the iODBC driver manager used on OS X. The fix
works around this issue.
Note
ODBC Administrator may still be unable to register a System DSN unless the /
Library/ODBC/odbc.ini file has the correct permissions. You should ensure
that the file is writable by the admin group.
(Bug #31495)
• Calling SQLFetch or SQLFetchScroll would return negative data lengths when using SQL_C_WCHAR.
(Bug #31220)
• SQLSetParam() caused memory allocation errors due to driver manager's mapping of deprecated
functions (buffer length -1). (Bug #29871)
• Static cursor was unable to be used through ADO when dynamic cursors were enabled. (Bug #27351)
• Using connection.Execute to create a record set based on a table without declaring the cmd option
as adCmdTable will fail when communicating with versions of MySQL 5.0.37 and higher. The issue
is related to the way that SQLSTATE is returned when ADO tries to confirm the existence of the target
object. (Bug #27158)
• Updating a RecordSet when the query involves a BLOB field failed. (Bug #19065)
• With some connections to MySQL databases using Connector/ODBC, the connection would mistakenly
report 'user cancelled' for accesses to the database information. (Bug #16653)
51
MySQL Connector/ODBC Release Notes
• Bugs Fixed
Platform-Specific Notes
• The HP-UX 11.23 IA64 binary package does not include the GUI bits because of problems building Qt
on that platform.
• There is no binary package for OS X on 64-bit PowerPC because Apple does not currently provide a 64-
bit PowerPC version of iODBC.
Bugs Fixed
• Connector/ODBC would incorrectly return SQL_SUCCESS when checking for distributed transaction
support. (Bug #32727)
• When using unixODBC or directly linked applications where the thread level is set to less than 3 (within
odbcinst.ini), a thread synchronization issue would lead to an application crash. This was because
SQLAllocStmt() and SQLFreeStmt() did not synchronize access to the list of statements associated
with a connection. (Bug #32587)
• Cleaning up environment handles in multithread environments could result in a five (or more) second
delay. (Bug #32366)
• Renaming an existing DSN entry would create a new entry with the new name without deleting the old
entry. (Bug #31165)
• Setting the default database using the DefaultDatabase property of an ADO Connection object
failed with the error Provider does not support this property. The SQLGetInfo() returned
the wrong value for SQL_DATABASE_NAME when no database was selected. (Bug #3780)
• Bugs Fixed
Bugs Fixed
• The English locale would be used when formatting floating point values. The C locale is now used for
these values. (Bug #32294)
• When accessing information about supported operations, the driver would return incorrect information
about the support for UNION. (Bug #32253)
• Unsigned integer values greater than the maximum value of a signed integer would be handled
incorrectly. (Bug #32171)
52
MySQL Connector/ODBC Release Notes
• The wrong result was returned by SQLGetData() when the data was an empty string and a zero-sized
buffer was specified. (Bug #30958)
• Added the FLAG_COLUMN_SIZE_S32 option to limit the reported column size to a signed 32-bit integer.
This option is automatically enabled for ADO applications to provide a work around for a bug in ADO.
(Bug #13776)
• Uninitiated memory could be used when C/ODBC internally calls SQLGetFunctions(). (Bug #31055)
• The wrong SQL_DESC_LITERAL_PREFIX would be returned for date/time types. (Bug #31009)
• The wrong COLUMN_SIZE would be returned by SQLGetTypeInfo for the TIME columns
(SQL_TYPE_TIME). (Bug #30939)
• Clicking outside the character set selection box when configuring a new DSN could cause the wrong
character set to be selected. (Bug #30568)
• Not specifying a user in the DSN dialog would raise a warning even though the parameter is optional.
(Bug #30499)
• SQLSetParam() caused memory allocation errors due to driver manager's mapping of deprecated
functions (buffer length -1). (Bug #29871)
• When using ADO, a column marked as AUTO_INCREMENT could incorrectly report that the column
permitted NULL values. This was dur to an issue with NULLABLE and IS_NULLABLE return values from
the call to SQLColumns(). (Bug #26108)
• Connector/ODBC would return the wrong the error code when the server disconnects the active
connection because the configured wait_timeout has expired. Previously it would return HY000.
Connector/ODBC now correctly returns an SQLSTATE of 08S01. (Bug #3456)
• The specified length of the user name and authentication parameters to SQLConnect() were not being
honored. (Bug #30774)
• The wrong column size was returned for binary data. (Bug #30547)
• SQLGetData() will now always return SQL_NO_DATA_FOUND on second call when no data left, even if
requested size is 0. (Bug #30520)
• SQLGetConnectAttr() did not reflect the connection state correctly. (Bug #14639)
• Removed check box in setup dialog for FLAG_FIELD_LENGTH (identified as Don't Optimize
Column Width within the GUI dialog), which was removed from the driver in 3.51.18.
53
MySQL Connector/ODBC Release Notes
• Bugs Fixed
Platform-Specific Notes
• The HP-UX 11.23 IA64 binary package does not include the GUI bits because of problems building Qt
on that platform.
• There is no binary package for OS X on 64-bit PowerPC because Apple does not currently provide a 64-
bit PowerPC version of iODBC.
• Binary packages for Sun Solaris are now available as PKG packages.
• Binary packages as disk images with installers are now available for OS X.
• A binary package without an installer is available for Microsoft Windows x64 Edition. There are no
installer packages for Microsoft Windows x64 Edition.
• When connecting to a specific database when using a DSN, the system tables from the mysql database
are no longer also available. Previously, tables from the mysql database (catalog) were listed as SYSTEM
TABLES by SQLTables() even when a different catalog was being queried. (Bug #28662)
• Installed for OS X has been reinstated. The installer registers the driver at a system (not user) level and
makes it possible to create both user and system DSNs using the Connector/ODBC driver. The installer
also fixes the situation where the necessary drivers would bge installed local to the user, not globally.
(Bug #15326, Bug #10444)
• Connector/ODBC now supports batched statements. To enable cached statement support, you must
switch enable the batched statement option (FLAG_MULTI_STATEMENTS, 67108864, or Allow multiple
statements within a GUI configuration). Be aware that batched statements create an increased chance
of SQL injection attacks and you must ensure that your application protects against this scenario. (Bug
#7445)
• The SQL_ATTR_ROW_BIND_OFFSET_PTR is now supported for row bind offsets. (Bug #6741)
54
MySQL Connector/ODBC Release Notes
• The TRACE and TRACEFILE DSN options have been removed. Use the ODBC driver manager trace
options instead.
Bugs Fixed
• When using a table with multiple TIMESTAMP columns, the final TIMESTAMP column within the table
definition would not be updatable. Note that there is still a limitation in MySQL server regarding multiple
TIMESTAMP columns. (Bug #30081)
• Fixed an issue where the myodbc3i would update the user ODBC configuration file (~/Library/
ODBC/odbcinst.ini) instead of the system /Library/ODBC/odbcinst.ini. This was caused
because myodbc3i was not honoring the s and u modifiers for the -d command-line option. (Bug
#29964)
• Getting table metadata (through the SQLColumns() failed, returning a bad table definition to calling
applications. (Bug #29888)
• DATETIME column types would return FALSE in place of SQL_SUCCESS when requesting the column
type information. (Bug #28657)
• Obtaining the length of a column when using a character set for the connection of utf8 would result in
the length being returned incorrectly. (Bug #19345)
• The SQLColumns() function could return incorrect information about TIMESTAMP columns, indicating
that the field was not nullable. (Bug #14414)
• The SQLColumns() function could return incorrect information about AUTO_INCREMENT columns,
indicating that the field was not nullable. (Bug #14407)
• A binary package without an installer is available for Microsoft Windows x64 Edition. There are no
installer packages for Microsoft Windows x64 Edition.
• There is no binary package for OS X on 64-bit PowerPC because Apple does not currently provide a 64-
bit PowerPC version of iODBC.
• BIT(n) columns are now treated as SQL_BIT data where n = 1 and binary data where n > 1.
• The wrong value from SQL_DESC_LITERAL_SUFFIX was returned for binary fields.
• The SQL_DATETIME_SUB column in SQLColumns() was not correctly set for date and time types.
• The value for SQL_DESC_FIXED_PREC_SCALE was not returned correctly for values in MySQL 5.0 and
later.
• The wrong value for SQL_DESC_TYPE was returned for date and time types.
• SQLConnect() and SQLDriverConnect() were rewritten to eliminate duplicate code and ensure all
options were supported using both connection methods. SQLDriverConnect() now only requires the
setup library to be present when the call requires it.
55
MySQL Connector/ODBC Release Notes
• The HP-UX 11.23 IA64 binary package does not include the GUI bits because of problems building Qt
on that platform.
• Binary packages as disk images with installers are now available for OS X.
• Binary packages for Sun Solaris are now available as PKG packages.
• The wrong value for DECIMAL_DIGITS in SQLColumns() was reported for FLOAT and DOUBLE fields,
as well as the wrong value for the scale parameter to SQLDescribeCol(), and the SQL_DESC_SCALE
attribute from SQLColAttribute().
• The SQL_DATA_TYPE column in SQLColumns() results did not report the correct value for date and
time types.
• Bugs Fixed
Platform-Specific Notes
• The HP-UX 11.23 IA64 binary package does not include the GUI bits because of problems building Qt
on that platform.
• There is no binary package for OS X on 64-bit PowerPC because Apple does not currently provide a 64-
bit PowerPC version of iODBC.
• Binary packages for Sun Solaris are now available as PKG packages.
• Binary packages as disk images with installers are now available for OS X.
• A binary package without an installer is available for Microsoft Windows x64 Edition. There are no
installer packages for Microsoft Windows x64 Edition.
• Fixed calling convention ptr and wrong free in myodbc3i, and fixed the null terminating (was only one,
not two) when writing DSN to string.
• Dis-allow NULL ptr for null indicator when calling SQLGetData() if value is null. Now returns
SQL_ERROR w/state 22002.
• The setup library has been split into its own RPM package, to enable installing the driver itself with no
GUI dependencies.
Bugs Fixed
• myodbc3i did not correctly format driver info, which could cause the installation to fail. (Bug #29709)
• Connector/ODBC crashed with Crystal Reports due to a problem with SQLProcedures(). (Bug
#28316)
56
MySQL Connector/ODBC Release Notes
• Fixed a problem where the GUI would crash when configuring or removing a System or User DSN. (Bug
#27315)
• Fixed error handling of out-of-memory and bad connections in catalog functions. This might raise errors
in code paths that had ignored them in the past. (Bug #26934)
• For a stored procedure that returns multiple result sets, Connector/ODBC returned only the first result
set. (Bug #16817)
• Added a new DSN option (FLAG_ZERO_DATE_TO_MIN) to retrieve XXXX-00-00 dates as the minimum
permitted ODBC date (XXXX-01-01). Added another option (FLAG_MIN_DATE_TO_ZERO) to mirror this
but for bound parameters. FLAG_MIN_DATE_TO_ZERO only changes 0000-01-01 to 0000-00-00.
(Bug #13766)
• If there was more than one unique key on a table, the correct fields were not used in handling
SQLSetPos(). (Bug #10563)
• When inserting a large BLOB field, Connector/ODBC would crash due to a memory allocation error. (Bug
#10562)
• The driver was using mysql_odbc_escape_string(), which does not handle the
NO_BACKSLASH_ESCAPES SQL mode. Now it uses mysql_real_escape_string(), which does.
(Bug #9498)
• SQLColumns() did not handle many of its parameters correctly, which could lead to incorrect results.
The table name argument was not handled as a pattern value, and most arguments were not escaped
correctly when they contained nonalphanumeric characters. (Bug #8860)
• There is no binary package for OS X on 64-bit PowerPC because Apple does not currently provide a 64-
bit PowerPC version of iODBC.
• The binary packages for Sun Solaris are only provided as tarballs, not the PKG format.
• The HP-UX 11.23 IA64 binary package does not include the GUI bits because of problems building Qt
on that platform.
• Bugs Fixed
57
MySQL Connector/ODBC Release Notes
Bugs Fixed
• Calls to SQLNativeSql() could cause stack corruption due to an incorrect pointer cast. (Bug #28758)
• Using cursors on results sets with multi-column keys could select the wrong value. (Bug #28255)
• SQLForeignKeys does not escape _ and % in the table name arguments. (Bug #27723)
• When using stored procedures, making a SELECT or second stored procedure call after an initial stored
procedure call, the second statement will fail. (Bug #27544)
• Specifying strings as parameters using the adBSTR or adVarWChar types, (SQL_WVARCHAR and
SQL_WLONGVARCHAR) would be incorrectly quoted. (Bug #16235)
• SQL_WVARCHAR and SQL_WLONGVARCHAR parameters were not properly quoted and escaped.
(Bug #16235)
• Using BETWEEN with date values, the wrong results could be returned. (Bug #15773)
• When using the Don't Cache Results (option value 1048576) with Microsoft Access, the connection
will fail using DAO/VisualBasic. (Bug #4657)
• An incorrect transaction isolation level may not be returned when accessing the connection attributes.
(Bug #27589)
• Adding a new DSN with the myodbc3i utility under AIX failed. (Bug #27220)
• When inserting data using bulk statements (through SQLBulkOperations), the indicators for all rows
within the insert would not updated correctly. (Bug #24306)
• Using SQLProcedures does not return the database name within the returned resultset. (Bug #23033)
• The SQLTransact() function did not support an empty connection handle. (Bug #21588)
• Using SQLDriverConnect instead of SQLConnect could cause later operations to fail. (Bug #7912)
• When using blobs and parameter replacement in a statement with WHERE CURSOR OF, the SQL is
truncated. (Bug #5853)
• Connector/ODBC would return too many foreign key results when accessing tables with similar names.
(Bug #4518)
58
MySQL Connector/ODBC Release Notes
• Bugs Fixed
Bugs Fixed
• On 64-bit systems, some types would be incorrectly returned. (Bug #26024)
• When retrieving TIME columns, C/ODBC would incorrectly interpret the type of the string and could
interpret it as a DATE type instead. (Bug #25846)
• Connector/ODBC may insert the wrong parameter values when using prepared statements under 64-bit
Linux. (Bug #22446)
• Using Connector/ODBC, with SQLBindCol and binding the length to the return value from
SQL_LEN_DATA_AT_EXEC fails with a memory allocation error. (Bug #20547)
• Using DataAdapter, Connector/ODBC may continually consume memory when reading the same
records within a loop (Windows Server 2003 SP1/SP2 only). (Bug #20459)
• When retrieving data from columns that have been compressed using COMPRESS(), the retrieved data
would be truncated to 8KB. (Bug #20208)
• The ODBC driver name and version number were incorrectly reported by the driver. (Bug #19740)
• A string format exception would be raised when using iODBC, Connector/ODBC and the embedded
MySQL server. (Bug #16535)
• The SQLDriverConnect() ODBC method did not work with recent Connector/ODBC releases. (Bug
#12393)
• Bugs Fixed
Bugs Fixed
• Using stored procedures with ADO, where the CommandType has been set correctly to
adCmdStoredProc, calls to stored procedures failed. (Bug #15635)
59
MySQL Connector/ODBC Release Notes
• SQLColumns() returned no information for tables that had a column named using a reserved word.
(Bug #9539)
Index
C
compile on Windows, 11
E
encryption, 4
error 2006, 12
F
FREAK, 14, 20
H
Heartbleed, 15, 20
I
Important Change, 37, 51
Incompatible Change, 39, 54
O
OpenSSL, 4, 11, 12, 12, 13, 14, 14, 15, 20, 20
P
PREFETCH, 12
S
Security Enhancement, 51
SQLFetch(), 11
SQLForeignKeys(), 11
SQLGetData, 12
SQL_ATTR_CURSOR_TYPE, 11
SQL_ATTR_QUERY_TIMEOUT, 13
SSL, 4
STATIC_MSVCRT, 11
60