MySQL 连接器/ODBC 发行说明  / MySQL 连接器/ODBC 版本 5.3 中的更改  /  MySQL 连接器/ODBC 5.3.0 的变化(2013-10-24,Alpha)

MySQL 连接器/ODBC 5.3.0 的变化(2013-10-24,Alpha)

这是 Connector/ODBC 5.3.x 系列的 alpha 版本。可用的下载包括同一包中的 Unicode 驱动程序和 ANSI 驱动程序(这两个驱动程序不再单独提供)。默认情况下启用服务器端准备好的语句。它适用于 4.1 以后的任何 MySQL 版本(不适用于 4.0 或更早版本)。

这是第一个符合ODBC 3.8规范的MySQL ODBC驱动系列。它包含具有关键 3.8 功能的标准的最低要求实现,其中包括此 alpha 版本中的驱动程序自我识别和输出参数流(仅支持二进制类型)。

Connector/ODBC 5.3 还引入了一个基于 GTK+ 的设置库,在一些基于 Unix 的系统上提供了 GUI DSN 设置对话框。该库目前包含在 Oracle Linux 6 和 Debian 6 二进制包中。5.3 系列中的其他新功能包括文件 DSN 和书签支持。

该版本是针对 MySQL 服务器 5.6.14 客户端库构建的。

请记住,这是一个 alpha 版本,与任何其他预生产版本一样,在生产级系统或具有关键数据的系统上安装时应格外小心。并非为最终的 Connector/ODBC 5.3 版本计划的所有功能都已实现。

添加或更改的功能

  • 在结构中添加了一个锁,以ENV防止同时访问环境句柄的连接列表,以避免多个线程共享同一环境句柄时可能发生的内存访问问题。(漏洞 #17240611,漏洞 #69864)

  • 支持文件数据源名称。(漏洞 #11746219,漏洞 #24581)

  • 支持ODBC 3.8标准:驱动自识别和输入/输出流参数

  • 通过实施基于 GTK+ 的设置库,为某些基于 Unix 的系统添加了 GUI DSN 设置对话框。

  • 添加了一个新的崩溃错误测试模块 ( my_crash.c)。

  • 在 CMake 配置文件中添加新 ODBCCP32_LIBodbccpp32.lib路径变量,并 MYSQLCLIENT_LIB_NAME通过指定要使用的 MySQL 客户端库(libmysql.*, mysqlclient.*, libmysqlclient_r.*, libmysqlclient.*)添加用于静态或动态链接 MySQL 客户端库。与 MySQL 5.6.4 及更高版本的链接现在由 C++ 完成,因为 libmysqlclient_r此后已成为 C++ 库。

  • 连接器/ODBC 中添加了书签支持。

修正错误

  • 调用时发生内存泄漏 ,因为释放 缓冲区需要 fetch_varlength_columns()在调用 时 设置为 0。此修复程序在调用之前释放缓冲区 。(漏洞#17441296)SQLExecDirect()result_bindfield_countmysql_stmt_free_result()result_bindmysql_stmt_free_result()

  • 使用参数标记的程序可能会因分段错误而崩溃。为避免此问题,此修复程序将函数length中 的参数更改convert_c_type2str()为指向长整型的指针。(漏洞 #17421620,漏洞 #69733)

  • 内存泄漏发生在SQL 语句上SQLPrepare()以及 SQLExecDirect()何时 使用。SQLBindParamater此修复程序释放以前的结果 mysql_stmt_result_metadata()以防止内存泄漏。(错误#17400483,错误#70113)

  • for 更改循环 的退出条件stringutil.c以避免可能的越界错误和 Valgrind 的相关报告。(缺陷 #17397596,缺陷 #64105)

  • Microsoft Visual Studio 2010 在从服务器资源管理器中的任何表中读取行时崩溃,这些表连接到由连接器/ODBC 建立的 DSN。(漏洞 #17304031,漏洞 #69950)

  • 当 SQLTIME数据转换为 C 数据类型时TIMESTAMP,如果 hour字段的值大于 24,则日期字段未设置为当前日期, fraction秒字段未按照 ODBC 的要求设置为零规格。(漏洞 #17016839,漏洞 #69545)

  • 当尝试在 Micrsoft SQL Server 2008 中创建链接服务器到使用连接器/ODBC 作为 DSN 设置的 MySQL 服务器时,Microsoft SQL Server(如果它是 64 位版本)崩溃或链接服务器遭受灾难性故障(如果使用 32 位版本的 Microsoft SQL Server)。(错误#16604346,错误#63386)

  • TIME使用该方法将列数据 读SQLGetDataSQL_C_TYPE_TIME数据类型时,如果时间字符串包含超过 6 位数字(例如 120:53:44),则会发生错误。(错误#16176981,错误#67793)

  • 在 之后调用时SQLPrepare,函数 SQLMoreResults返回 SQL_ERROR,而不是 SQL_NO_DATAODBC 规范所要求的。(缺陷 #16101282,缺陷 #67920)

  • 连接器/ODBC 使用了; 字符而不是空字节(\0)来终止属性字符串中的关键字-值对。(漏洞 #15940689,漏洞 #66548)

  • 当使用支持 Unicode 的连接器/ODBC 驱动程序连接到任何 5.5.2 或更早版本的 MySQL 服务器时,所有语句都失败并显示错误消息服务器不支持 4 字节编码的 UTF8 字符。 (漏洞 #14838690,漏洞 #67428)

  • DSN 参数的配置值覆盖通过连接字符串提供的值,而不是相反。(缺陷 #11760574,缺陷 #52996)