Appendix C. MySQL Change History
Table of Contents
- C.1. Changes in Release 5.4.x (Development)
- C.2. MySQL Enterprise Monitor Change History
- C.2.1. Changes in MySQL Enterprise Monitor 2.1.0 (Not yet released)
- C.2.2. Changes in MySQL Enterprise Monitor 2.0.6 (Not yet released)
- C.2.3. Changes in MySQL Enterprise Monitor 2.0.5 (18th March 2009)
- C.2.4. Changes in MySQL Enterprise Monitor 2.0.4 (5th February 2009)
- C.2.5. Changes in MySQL Enterprise Monitor 2.0.3 (23rd January 2009)
- C.2.6. Changes in MySQL Enterprise Monitor 2.0.2 (14th January 2009)
- C.2.7. Changes in MySQL Enterprise Monitor 2.0.1 (15th December 2008)
- C.2.8. Changes in MySQL Enterprise Monitor 2.0.0 (11th December 2008)
- C.3. MySQL Connector/ODBC (MyODBC) Change History
- C.3.1. Changes in MySQL Connector/ODBC 5.1.6 (Not yet released)
- C.3.2. Changes in MySQL Connector/ODBC 5.1.5 (18 August 2008)
- C.3.3. Changes in MySQL Connector/ODBC 5.1.4 (15 April 2008)
- C.3.4. Changes in MySQL Connector/ODBC 5.1.3 (26 March 2008)
- C.3.5. Changes in MySQL Connector/ODBC 5.1.2 (13 February 2008)
- C.3.6. Changes in MySQL Connector/ODBC 5.1.1 (13 December 2007)
- C.3.7. Changes in MySQL Connector/ODBC 5.1.0 (10 September 2007)
- C.3.8. Changes in MySQL Connector/ODBC 5.0.12 (Never released)
- C.3.9. Changes in MySQL Connector/ODBC 5.0.11 (31 January 2007)
- C.3.10. Changes in MySQL Connector/ODBC 5.0.10 (14 December 2006)
- C.3.11. Changes in MySQL Connector/ODBC 5.0.9 (22 November 2006)
- C.3.12. Changes in MySQL Connector/ODBC 5.0.8 (17 November 2006)
- C.3.13. Changes in MySQL Connector/ODBC 5.0.7 (08 November 2006)
- C.3.14. Changes in MySQL Connector/ODBC 5.0.6 (03 November 2006)
- C.3.15. Changes in MySQL Connector/ODBC 5.0.5 (17 October 2006)
- C.3.16. Changes in Connector/ODBC 5.0.3 (Connector/ODBC 5.0 Alpha 3) (20 June 2006)
- C.3.17. Changes in Connector/ODBC 5.0.2 (Never released)
- C.3.18. Changes in Connector/ODBC 5.0.1 (Connector/ODBC 5.0 Alpha 2) (05 June 2006)
- C.3.19. Changes in MySQL Connector/ODBC 3.51.27 (20 November 2008)
- C.3.20. Changes in MySQL Connector/ODBC 3.51.26 (07 July 2008)
- C.3.21. Changes in MySQL Connector/ODBC 3.51.25 (11 April 2008)
- C.3.22. Changes in MySQL Connector/ODBC 3.51.24 (14 March 2008)
- C.3.23. Changes in MySQL Connector/ODBC 3.51.23 (09 January 2008)
- C.3.24. Changes in MySQL Connector/ODBC 3.51.22 (13 November 2007)
- C.3.25. Changes in MySQL Connector/ODBC 3.51.21 (08 October 2007)
- C.3.26. Changes in MySQL Connector/ODBC 3.51.20 (10 September 2007)
- C.3.27. Changes in MySQL Connector/ODBC 3.51.19 (10 August 2007)
- C.3.28. Changes in MySQL Connector/ODBC 3.51.18 (08 August 2007)
- C.3.29. Changes in MySQL Connector/ODBC 3.51.17 (14 July 2007)
- C.3.30. Changes in MySQL Connector/ODBC 3.51.16 (14 June 2007)
- C.3.31. Changes in MySQL Connector/ODBC 3.51.15 (07 May 2007)
- C.3.32. Changes in MySQL Connector/ODBC 3.51.14 (08 March 2007)
- C.3.33. Changes in MySQL Connector/ODBC 3.51.13 (Never released)
- C.3.34. Changes in MySQL Connector/ODBC 3.51.12 (11 February 2005)
- C.3.35. Changes in MySQL Connector/ODBC 3.51.11 (28 January 2005)
- C.4. MySQL Connector/NET Change History
- C.4.1. Changes in MySQL Connector/NET 6.0.4 (Not yet released beta)
- C.4.2. Changes in MySQL Connector/NET 6.0.3 (28 April 2009 beta)
- C.4.3. Changes in MySQL Connector/NET 6.0.2 (07 April 2009 beta)
- C.4.4. Changes in MySQL Connector/NET 6.0.1 (02 April 2009 beta)
- C.4.5. Changes in MySQL Connector/NET 6.0.0 (02 March 2009 alpha)
- C.4.6. Changes in MySQL Connector/NET 5.3.0 (Not yet released)
- C.4.7. Changes in MySQL Connector/NET 5.2.7 (Not yet released)
- C.4.8. Changes in MySQL Connector/NET 5.2.6 (28 April 2009)
- C.4.9. Changes in MySQL Connector/NET 5.2.5 (19 November 2008)
- C.4.10. Changes in MySQL Connector/NET 5.2.4 (13 November 2008)
- C.4.11. Changes in MySQL Connector/NET 5.2.3 (19 August 2008)
- C.4.12. Changes in MySQL Connector/NET 5.2.2 (12 May 2008)
- C.4.13. Changes in MySQL Connector/NET 5.2.1 (27 February 2008)
- C.4.14. Changes in MySQL Connector/NET 5.2.0 (11 February 2008)
- C.4.15. Changes in MySQL Connector/NET 5.1.8 (Not yet released)
- C.4.16. Changes in MySQL Connector/NET 5.1.7 (21 August 2008)
- C.4.17. Changes in MySQL Connector/NET 5.1.6 (12 May 2008)
- C.4.18. Changes in MySQL Connector/NET 5.1.5 (Not yet released)
- C.4.19. Changes in MySQL Connector/NET 5.1.4 (20 November 2007)
- C.4.20. Changes in MySQL Connector/NET 5.1.3 (21 September 2007 beta)
- C.4.21. Changes in MySQL Connector/NET 5.1.2 (18 June 2007)
- C.4.22. Changes in MySQL Connector/NET 5.1.1 (23 May 2007)
- C.4.23. Changes in MySQL Connector/NET 5.1.0 (01 May 2007)
- C.4.24. Changes in MySQL Connector/NET 5.0.10 (Not yet released)
- C.4.25. Changes in MySQL Connector/NET 5.0.9 (Not yet released)
- C.4.26. Changes in MySQL Connector/NET 5.0.8 (21 August 2007)
- C.4.27. Changes in MySQL Connector/NET 5.0.7 (18 May 2007)
- C.4.28. Changes in MySQL Connector/NET 5.0.6 (22 March 2007)
- C.4.29. Changes in MySQL Connector/NET 5.0.5 (07 March 2007)
- C.4.30. Changes in MySQL Connector/NET 5.0.4 (Not released)
- C.4.31. Changes in MySQL Connector/NET 5.0.3 (05 January 2007)
- C.4.32. Changes in MySQL Connector/NET 5.0.2 (06 November 2006)
- C.4.33. Changes in MySQL Connector/NET 5.0.1 (01 October 2006)
- C.4.34. Changes in MySQL Connector/NET 5.0.0 (08 August 2006)
- C.4.35. Changes in MySQL Connector/NET 1.0.11 (Not yet released)
- C.4.36. Changes in MySQL Connector/NET 1.0.10 (24 August 2007)
- C.4.37. Changes in MySQL Connector/NET 1.0.9 (02 February 2007)
- C.4.38. Changes in MySQL Connector/NET 1.0.8 (20 October 2006)
- C.4.39. Changes in MySQL Connector/NET 1.0.7 (21 November 2005)
- C.4.40. Changes in MySQL Connector/NET 1.0.6 (03 October 2005)
- C.4.41. Changes in MySQL Connector/NET 1.0.5 (29 August 2005)
- C.4.42. Changes in MySQL Connector/NET 1.0.4 (20 January 2005)
- C.4.43. Changes in MySQL Connector/NET 1.0.3 (12 October 2004 gamma)
- C.4.44. Changes in MySQL Connector/NET 1.0.2 (15 November 2004 gamma)
- C.4.45. Changes in MySQL Connector/NET 1.0.1 (27 October 2004 beta)
- C.4.46. Changes in MySQL Connector/NET 1.0.0 (01 September 2004)
- C.4.47. Changes in MySQL Connector/NET Version 0.9.0 (30 August 2004)
- C.4.48. Changes in MySQL Connector/NET Version 0.76
- C.4.49. Changes in MySQL Connector/NET Version 0.75
- C.4.50. Changes in MySQL Connector/NET Version 0.74
- C.4.51. Changes in MySQL Connector/NET Version 0.71
- C.4.52. Changes in MySQL Connector/NET Version 0.70
- C.4.53. Changes in MySQL Connector/NET Version 0.68
- C.4.54. Changes in MySQL Connector/NET Version 0.65
- C.4.55. Changes in MySQL Connector/NET Version 0.60
- C.4.56. Changes in MySQL Connector/NET Version 0.50
- C.5. MySQL Visual Studio Plugin Change History
- C.6. MySQL Connector/J Change History
- C.6.1. Changes in MySQL Connector/J 5.1.x
- C.6.2. Changes in MySQL Connector/J 5.0.x
- C.6.3. Changes in MySQL Connector/J 3.1.x
- C.6.4. Changes in MySQL Connector/J 3.0.x
- C.6.5. Changes in MySQL Connector/J 2.0.x
- C.6.6. Changes in MySQL Connector/J 1.2b (04 July 1999)
- C.6.7. Changes in MySQL Connector/J 1.2.x and lower
- C.7. MySQL Connector/MXJ Change History
- C.7.1. Changes in MySQL Connector/MXJ 5.0.6 (04 May 2007)
- C.7.2. Changes in MySQL Connector/MXJ 5.0.5 (14 March 2007)
- C.7.3. Changes in MySQL Connector/MXJ 5.0.4 (28 January 2007)
- C.7.4. Changes in MySQL Connector/MXJ 5.0.3 (24 June 2006)
- C.7.5. Changes in MySQL Connector/MXJ 5.0.2 (15 June 2006)
- C.7.6. Changes in MySQL Connector/MXJ 5.0.1 (Never released)
- C.7.7. Changes in MySQL Connector/MXJ 5.0.0 (09 December 2005)
- C.8. MySQL Connector/C++ Change History
- C.9. MySQL Proxy Change History
This appendix lists the changes from version to version in the MySQL source code through the latest version of MySQL 5.4, which is currently MySQL 5.4.0. Starting with MySQL 5.0, we began offering a new version of the Manual for each new series of MySQL releases (5.0, 5.1, and so on). For information about changes in previous release series of the MySQL database software, see the corresponding version of this Manual. For information about legacy versions of the MySQL software through the 4.1 series, see MySQL 3.23, 4.0, 4.1 Reference Manual.
We update this section as we add new features in the 5.4 series, so that everybody can follow the development process.
Note that we tend to update the manual at the same time we make changes to MySQL. If you find a recent version of MySQL listed here that you can't find on our download page (http://dev.mysql.com/downloads/), it means that the version has not yet been released.
The date mentioned with a release version is the date of the last Bazaar ChangeSet on which the release was based, not the date when the packages were made available. The binaries are usually made available a few days after the date of the tagged ChangeSet, because building and testing all packages takes some time.
The manual included in the source and binary distributions may not be fully accurate when it comes to the release changelog entries, because the integration of the manual happens at build time. For the most up-to-date release changelog, please refer to the online version instead.
An overview of which features were added in MySQL 5.4 can be found here: Section 1.4.1, “What Is New in MySQL 5.4”.
For a full list of changes, please refer to the changelog sections for each individual 5.4 release.
Currently, this release does not differ from 5.4.0 except that binary distributions are built on all MySQL-supported platforms.
Binary MySQL 5.4.0 distributions are available as 64-bit builds for Solaris 10-x86_64, Solaris10-SPARC, and Linux x86_64-glibc23.
If you use a source distribution, the
BUILD/build_mccge.sh script can be used to
configure and build MySQL 5.4.0. Run this script with the
--help option to see the available options.
Functionality added or changed:
Incompatible Change: The following
InnoDBsystem variable changes were made:innodb_file_io_threads: Removed (replaced byinnodb_read_io_threadsandinnodb_write_io_threads).If you upgrade to MySQL 5.4 from an existing MySQL 5.1 installation and explicitly set
innodb_file_io_threadsat server startup, you will need to change your configuration.innodb_read_io_threadsandinnodb_write_io_threadscan be used instead.innodb_read_io_threadsandinnodb_write_io_threads: Default changed from 1 to 8.innodb_buffer_pool_size: Default increased from 8 MB to 1GB. Minimum increased from 1MB to 64MB.innodb_additional_mem_pool_size: Default increased from 1MB to 8MB. Minimum increased from 512KB to 2MB.innodb_max_dirty_pages_pct: Default decreased from 90 to 75. Maximum decreased from 100 to 99 to never allow a completely dirty buffer pool.innodb_log_buffer_size: Default increased from 1MB to 16MB. Minimum increased from 256KB to 2MB.innodb_log_file_size: Default increased from 5MB to 128MB. Minimum increased from 1MB to 32MB.innodb_log_files_in_group: Default increased from 2 to 3.innodb_io_capacity: Default increased from 100 to 200.innodb_autoextend_increment: Default increased from 8MB to 64MB.
Incompatible Change: If you upgrade to MySQL 5.4 from an existing MySQL 5.1 installation, an issue may occur due to
InnoDBlog file configuration changes. MySQL 5.4 increases the default value ofinnodb_log_files_in_groupfrom 2 to 3. It also increases the default value ofinnodb_log_file_sizefrom 5MB to 128MB and the minimum value ofinnodb_log_file_sizefrom 1MB to 32MB.For an upgrade, it is necessary to account for these changes. There are two ways to do so:
Configure MySQL 5.4 to use your current configuration values. This can be done only if your current
InnoDBlog file size is at least as large as the new minimum size of 32MB. For example, if you use the previous default number of files (2), configured to a size of 64MB each, put these lines in your server'smy.cnffile before starting the 5.4 server:[mysqld] innodb_log_files_in_group=2 innodb_log_file_size=64M
Discard the old
InnoDBlog files and let MySQL 5.4 create new ones. This can be done regardless of your current configuration values, but it is necessary to shut down your current server cleanly so that no outstanding transaction information remains in the log. The procedure to use depends on the value ofinnodb_fast_shutdown:If
innodb_fast_shutdownis not set to 2: Stop your current MySQL server and make sure that it shuts down without errors (to ensure that there is no information for outstanding transactions in the log). Copy the old log files into a safe place in case something went wrong during the shutdown and you need them to recover the tablespace. Delete the old log files and editmy.cnfif necessary to specify the desired log file configuration. Then upgrade to MySQL 5.4 and start the new server. mysqld sees that noInnoDBlog files exist at startup and creates new ones.If
innodb_fast_shutdownis set to 2: Shut down your current server, setinnodb_fast_shutdownto 1, and restart the server. The server should be allowed to recover. Then you should shut down the server again and follow the procedure described in the preceding item to changeInnoDBlog file size. Setinnodb_fast_shutdownback to 2 and start the MySQL 5.4 server.
The Instance Manager (mysqlmanager) has been discontinued and is no longer provided in MySQL releases.
Bugs fixed:
The server unnecessarily acquired a query cache mutex even with the query cache disabled, resulting in a small performance decrement. (Bug#38551)
- C.2.1. Changes in MySQL Enterprise Monitor 2.1.0 (Not yet released)
- C.2.2. Changes in MySQL Enterprise Monitor 2.0.6 (Not yet released)
- C.2.3. Changes in MySQL Enterprise Monitor 2.0.5 (18th March 2009)
- C.2.4. Changes in MySQL Enterprise Monitor 2.0.4 (5th February 2009)
- C.2.5. Changes in MySQL Enterprise Monitor 2.0.3 (23rd January 2009)
- C.2.6. Changes in MySQL Enterprise Monitor 2.0.2 (14th January 2009)
- C.2.7. Changes in MySQL Enterprise Monitor 2.0.1 (15th December 2008)
- C.2.8. Changes in MySQL Enterprise Monitor 2.0.0 (11th December 2008)
This appendix lists the changes to the MySQL Enterprise Monitor, beginning with the most recent release. Each release section covers added or changed functionality, bug fixes, and known issues, if applicable. All bug fixes are referenced by bug number and include a link to the bug database. Bugs are listed in order of resolution. To find a bug quickly, search by bug number.
This section documents all changes and bug fixes that have been applied since the release of MySQL Enterprise Monitor, version 2.0.6.
Functionality added or changed:
The agent should be able to run as a non-
rootuser. However, the startup scripts always started it asroot.The agent chassis now has a new option
--userto drop privileges after being started asroot. Note, this does not work when not started as superuser, nor on Windows.A new dialog box has also been added to the agent installer. The dialog has the following text: “The agent does not need to run with
rootuser privileges. The agent will switch to the user account provided below when started by therootuser.”The dialog also has a text field to allow the entry of the user account.
A new parameter was also added to the
mysql-monitor-agent.inifile. The parameter has the formatuser=xxx, where xxx is the user account to be used. (Bug#33778)
Bugs fixed:
The recommendation for the rule
Table Cache Not Optimalsays:Recommended Action SET GLOBAL table_cache = (64 + 16);
But an error was generated on executing that query:
mysql> SET GLOBAL table_cache = (64 + 16); ERROR 1193 (HY000): Unknown system variable 'table_cache' mysql> select version(); +------------+ | version() | +------------+ | 5.1.31-log | +------------+ 1 row in set (0.01 sec)
The Mac OS X version of the Service Manager uses the system JRE. The system JRE loads the libraries located in
/Library/Java/Extensions. As libraries in the extensions directory take precedence over other libraries, this caused conflicts when user extension libraries were installed there, as these would be used by the JRE when running Service Manager, instead of the shipped libraries. This happened when Java-related products were installed such as Connector/J, Spring, and Hibernate.This fix stops user-installed extension libraries from being used when the JRE runs the Service Manager, thus giving a “pristine” environment with no library collisions. (Bug#44157)
Accessing the Query Analyzer tab caused a full table scan to take place on the MySQL Enterprise Monitor database. (Bug#43989)
The Replication Group was renamed back to its default name after a new topology was discovered. (Bug#43816)
A new topology was not discovered after the previous replication group was renamed. (Bug#43815)
On Unix systems, executing the command:
./mysqlmonitorctl.sh stop
did not make sure that
mysqldwas shutdown before finishing.This resulted in a situation such as the following:
# /opt/mysql/enterprise/monitor-2.0.0.7092/mysqlmonitorctl.sh stop Using CATALINA_BASE: /opt/mysql/enterprise/monitor/apache-tomcat Using CATALINA_HOME: /opt/mysql/enterprise/monitor/apache-tomcat Using CATALINA_TMPDIR: /opt/mysql/enterprise/monitor/apache-tomcat/temp Using JRE_HOME: /opt/mysql/enterprise/monitor-2.0.0.7092/java Stopping tomcat service ... [ OK ] /opt/mysql/enterprise/monitor-2.0.0.7092/mysqlmonitorctl.sh : mysql stopped
However, running the following command a few minutes later showed that the MySQL server was still running:
# /opt/mysql/enterprise/monitor-2.0.0.7092/mysqlmonitorctl.sh status MySQL Network MySQL is running MySQL Network Tomcat is not running
The MySQL Enterprise Monitor upgrade installer incorrectly replaced the
AdvisorScript.jarin<instDir>/apache-tomcat/webapps/ROOT/WEB-INF/lib/with the default Advisor JAR. (Bug#43773)The SNMP trap source IP was always set to 127.0.0.1. (Bug#43738)
The installer exited with a return code
0, even if an error was detected and reported to the user during the installation..../mysqlmonitor-2.1.0.1015-linux-x86-64bit-installer.bin --mode unattended --installdir /data0/merlin/monitoring/2.1.0.1015/host/38080 --tomcatport 38080 --tomcatshutdownport 38503 --tomcatsslport 38443 --dbport 33300 --usessl 1 --adminuser **user** --adminpassword **pwd** Error running /data0/merlin/monitoring/2.1.0.1015/host/38080/mysql/bin/mysql --defaults-file=/data0/merlin/monitoring/2.1.0.1015/host/38080/mysql/my.cnf -S /data0/merlin/monitoring/2.1.0.1015/qa-merlin/38080/mysql/tmp/mysql.sock -u root -D mysql -e "update user set Password = PASSWORD('**pwd**') where User = 'root'; update user set User = '**user**' where User = 'root';delete from user where User = '';flush privileges;" : ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data0/merlin/monitoring/2.1.0.1015/host/38080/mysql/tmp/mysql.sock' (2)The agent created the
mysql.inventorytable with an engine type of InnoDB, instead of MyISAM, when InnoDB was specified as the default engine type inmy.cnf. This happened because the agent did not explicitly specify the table engine type to be of MyISAM. (Bug#43551)When a trailing space, or tab character, was added at the end of a parameter in the
config.propertiesfile, MySQL Enterprise Monitor failed to start and generated the following errors in log:ERROR [Thread-1:org.springframework.web.context.ContextLoader] Context initialization failed ... Caused by: java.sql.SQLException: Illegal connection port value '13306' ...
Resolving the problem required detailed log analysis because the configuration file did not show any apparent problems. (Bug#43540)
If a host was not a slave during the initial discovery phase, then it would not be displayed in the Replication tab if it subsequently became a slave.
This was because after the initial discovery phase, if a host did not have
slavestatuspresent, no subsequent checks were made to check for the host being a slave. It was therefore missed for the purposes of replication discovery and never showed in the Replication tab. (Bug#42997)Heat Chart rules could not be disabled or unscheduled. (Bug#42932)
There were four columns added to the
SHOW SLAVE STATUSquery in MySQL Server 5.1:Last_IO_Errno,Last_IO_Error,Last_SQL_Errno, andLast_SQL_Error.However, these were not displayed within the Replication tab. (Bug#42811)
The installer used to upgrade from version 1.3 corrupted passwords containing the “?” character. (Bug#42452)
Sun multi-core processors caused all cores to be reported on the meta information page.
The larger T-series SPARC processors have 32+ cores. This caused the meta information page in the Dashboard to scroll as it reported each one. (Bug#42355)
The username field for new users was populated by the last username used.
When creating a new user for the second time in Dashboard, the previously created username appeared in the dialog. (Bug#42314)
The
my.cnffile for the Enterprise Monitor internal database had the following configuration item:innodb_autoextend_increment = 50M
This generated the error:
16:36:23 [Warning] option 'innodb_autoextend_increment': unsigned value 52428800 adjusted to 1000
This variable is interpreted as being specified in MB, so 50M would be 50 TB. Such a high value results in the variable being adjusted to 1000 MB.
The value in the configuration file should be:
innodb_autoextend_increment = 50
A number of Advisor rules had advice text that had not been translated into Japanese. The Advisors that contained untranslated rules included Performance, Schema and Security. (Bug#42067)
OM_REFRESHwas not supported by MySQL Proxy, it caused anabort().shell> ./mysql-proxy --proxy-backend-addresses=192.168.250.3:3306 network-mysqld-proxy.c.3524: COM_(0x07) is not handled Aborted (core dumped) (gdb) bt 0x00b1b402 in ?? () 0x00cbaf30 in raise () from /lib/i686/nosegneg/libc.so.6 0x00cbc811 in abort () from /lib/i686/nosegneg/libc.so.6 0x08061efc in IA__g_logv at gmessages.c:497 0x08061f66 in IA__g_log at gmessages.c:517 0x08054645 in proxy_read_query_result at network-mysqld-proxy.c:3522 0x0804c5f4 in plugin_call at network-mysqld.c:977 0x0804d45a in network_mysqld_con_handle at network-mysqld.c:1520 0x08057cb9 in event_process_active (base=0x978b260) at event.c:331 0x08057e64 in event_base_loop (base=0x978b260, flags=0) at event.c:449 0x08057d1c in event_base_dispatch (event_base=0x978b260) at event.c:351 0x0804d9d0 in network_mysqld_thread (_srv=0x9789008) at network-mysqld.c:1768 0x0804b84a in main (argc=1, argv=0xbfc4fe84) at mysql-proxy.c:615
The MySQL Enterprise Monitor file
my.cnfspecified an initial size of 500M for the central tablespace. However,innodb_file_per_tablewas used as well, resulting in approximately 500M of space being potentially wasted. (Bug#41967)After an error was generated due to an incorrect password while trying to create a new user, the following error was obtained when subsequently attempting to create a valid new user:
U0002 You must log in to access the requested resource
SNMP trap messages were sending 127.0.0.1 as the IP address, and there was no feature to allow the user to configure the IP address contained in the SNMP message, which would have been useful for troubleshooting. (Bug#41361)
Allowing the heat chart rules to be set to unscheduled caused the user interface to appear broken. (Bug#41312)
Graphs were incorrect for data that did not change. The graphs appeared as if no data had been gathered.
The Hit Ratios graph had gaps in it where there had not been any activity on the parameters being monitored. For instance, if MyISAM tables were not used, then no Key Cache hit ratio series was plotted, even though the variables were still being collected. (Bug#41232)
When creating a new Database Administrator user in FireFox 2 the following error message was generated:
U0002 You must log in to access the requested resource.
This occurred in a new installation using the default administrator account. No Query Analysis permissions were given. However, the operation worked correctly using the Safari web browser. (Bug#41032)
The Manage Servers page did not refresh in a manner consistent with other pages. This meant that changes to configuration made by others would not be reflected on the page. Also, changes in the status of the servers were not displayed automatically. (Bug#40792)
The agent installer for Solaris 8 x86 32-bit was missing. (Bug#40248)
Even though Query Analysis was disabled through the user interface, the queries that go through the agent were still being collected.
When Query Analysis was turned back on in the user interface, those queries were then displayed. (Bug#40032)
Alerts sent from MySQL Enterprise Monitor used the GMT timezone, for example:
Time: 2008-09-17 19:41:08 GMT
That was not convenient for users, as their timezones may not have been GMT. (Bug#39504)
The MySQL Enterprise Monitor upgrade installer replaced the
my.cnffile. This resulted in the loss of any changes that had been made to the configuration file. (Bug#36528)If the “On Save send test trap” checkbox was checked when the button was clicked and the locale was set to Japanese, an error occurred. The orange error banner was displayed at the top of the page with the error message in Japanese. (Bug#32069)
This section documents all changes and bug fixes that have been applied since the release of MySQL Enterprise Monitor, version 2.0.5.
Bugs fixed:
An error was generated when an attempt was made to rename a Replication Group to one that had previously been deleted. (Bug#43846)
A new topology was not discovered after the previous replication group was renamed. (Bug#43815)
On Unix systems, executing the command:
./mysqlmonitorctl.sh stop
did not make sure that
mysqldwas shutdown before finishing.This resulted in a situation such as the following:
# /opt/mysql/enterprise/monitor-2.0.0.7092/mysqlmonitorctl.sh stop Using CATALINA_BASE: /opt/mysql/enterprise/monitor/apache-tomcat Using CATALINA_HOME: /opt/mysql/enterprise/monitor/apache-tomcat Using CATALINA_TMPDIR: /opt/mysql/enterprise/monitor/apache-tomcat/temp Using JRE_HOME: /opt/mysql/enterprise/monitor-2.0.0.7092/java Stopping tomcat service ... [ OK ] /opt/mysql/enterprise/monitor-2.0.0.7092/mysqlmonitorctl.sh : mysql stopped
However, running the following command a few minutes later showed that the MySQL server was still running:
# /opt/mysql/enterprise/monitor-2.0.0.7092/mysqlmonitorctl.sh status MySQL Network MySQL is running MySQL Network Tomcat is not running
The MySQL Enterprise Monitor upgrade installer incorrectly replaced the
AdvisorScript.jarin<instDir>/apache-tomcat/webapps/ROOT/WEB-INF/lib/with the default Advisor JAR. (Bug#43773)The agent created the
mysql.inventorytable with an engine type of InnoDB, instead of MyISAM, when InnoDB was specified as the default engine type inmy.cnf. This happened because the agent did not explicitly specify the table engine type to be of MyISAM. (Bug#43551)If a host was not a slave during the initial discovery phase, then it would not be displayed in the Replication tab if it subsequently became a slave.
This was because after the initial discovery phase, if a host did not have
slavestatuspresent, no subsequent checks were made to check for the host being a slave. It was therefore missed for the purposes of replication discovery and never showed in the Replication tab. (Bug#42997)
This section documents all changes and bug fixes that have been applied since the release of MySQL Enterprise Monitor, version 2.0.4.
Bugs fixed:
The FreeBSD 7 Agent was inadvertently a Linux binary.
shell> file mysqlmonitoragent-2.0.5.7153-freebsd7-x86-32bit-installer.bin mysqlmonitoragent-2.0.5.7153-freebsd7-x86-32bit-installer.bin: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped
Calling the Agent with the option
--agent-run-os-testsresulted in a crash. This happened on Linux x86-64 systems. The resultant stack trace was:(qa-merlin) 2009-03-04 16:39:42: (critical) chassis.c:1097: could not raise RLIMIT_NOFILE to 8192, Invalid argument (22). Current limit still 1024. sigar-test-all.c.124 (test_sigar_pid_get): pid = 5188 sigar-test-all.c.106 (test_sigar_mem_get): ...cut... sigar-test-all.c.427 (test_sigar_file_system_list_get): (items = 13) [0] fs.dirname = / fs.devname = /dev/mapper/vg00-root fs.typename = local fs.sys-type-name = ext3 fs.type = 2 fsusage.total = 15481840 fsusage.free = 14116140 fsusage.used = 1365700 fsusage.avail = 13329708 fsusage.files = 1966080 fsusage.use_percent = 0.100000 [0] diskusage.reads = 315302 diskusage.writes = 6318240 diskusage.write_bytes = 25879511040 diskusage.read_bytes = 6561092608 diskusage.queue = 47457530080206 Segmentation fault
On some systems no output was shown, other than the message “Segmentation fault”. (Bug#43381)
Following a change in the replication configuration, MySQL Enterprise Monitor did not display the new topology correctly. (Bug#43240)
When a data collection became invalid, the agent sent NULLs for those collection values. However, the timestamps that it sent with the values were the timestamps from the last valid value that was collected.
Due to key constraints on the Service Manager side, MySQL Enterprise Monitor disregarded anything sent with duplicate timestamps, thus the NULLs received from the agent were never processed. Some mechanisms, such as replication discovery, depend on the NULLs to identify a situation where data has become invalid. (Bug#43239)
MySQL Enterprise Monitor did not add a log entry each time data was purged. The log entry should have noted how many rows of each type of data were purged (historical data, logs, quan data). (Bug#43159)
MySQL Enterprise Monitor generated a stack overflow. This was as a result of a bug in Hibernate, which caused Hibernate to enter infinite recursion while trying to load a relationship. (Bug#43107)
The “Table Cache Set Too Low For Startup” and “Table Cache Not Optimal” rules were not supported on MySQL 5.1 because the
table_cachesystem variable was deprecated and replaced withtable_open_cache. (Bug#42663)Migrated server was not completely deleted.
In a Monitor that had been updated from 1.3.2 to 2.0.4, with 2 database servers queued for migration, if a server being migrated was deleted, or a migrated server was deleted, this would not be reflected in the user interface or in the license count, until Tomcat was restarted. (Bug#42604)
The installer used to upgrade from version 1.3 corrupted passwords containing the “?” character. (Bug#42452)
Sun multi-core processors caused all cores to be reported on the meta information page.
The larger T-series SPARC processors have 32+ cores. This caused the meta information page in the Dashboard to scroll as it reported each one. (Bug#42355)
If an attempt was made to disable a rule using the link next to the rule, the following error message was generated:
U0002 You must log in to access the requested resource. Go to login page.
However, clicking on the link did not prompt the user to login again. (Bug#42313)
Changing
ssh-agentfrom OpenSSH or specifying a malevolent value ofagent-host-id, could inject data into the monitored MySQL Server.For example, setting
agent-host-idto the value “I'm a test” would result in the following message in the error log:2009-01-23 15:45:11: ((error)) agent_mysqld.c:281: mysql_real_query('INSERT INTO mysql.inventory (name, value) VALUES ( 'hostid', 'I'm a test' )') on 'mysql' failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'm a test' )' at line 1 (mysql-errno = 1064)When
SHOW GLOBAL STATUSreturned a value greater than 214748364, it was sent to the Service Manager as 214748364. (Bug#42245)The Agent failed to identify local sockets as local on Mac OS X 10.4.
If the Agent was configured to use a Unix domain socket on Mac OS X 10.4, it did not treat the connection as local and failed to provide CPU and memory information to MySQL Enterprise Monitor. This is shown in the log file:
2009-01-20 18:15:02: (message) network-socket.c:752: is-local family 0 != 1 2009-01-20 18:15:02: (message) agent_mysqld.c:322: [mysql] mysqld is not local or not directly connected
However, this problem did not happen on Mac OS X 10.5. (Bug#42220)
Some graphs on the Graph tab were not updated after the page was refreshed, or was clicked.
The only way to get an updated graph was to change the graph size (in pixels) and then click . (Bug#42162)
The
my.cnffile for the Enterprise Monitor internal database had the following configuration item:innodb_autoextend_increment = 50M
This generated the error:
16:36:23 [Warning] option 'innodb_autoextend_increment': unsigned value 52428800 adjusted to 1000
This variable is interpreted as being specified in MB, so 50M would be 50 TB. Such a high value results in the variable being adjusted to 1000 MB.
The value in the configuration file should be:
innodb_autoextend_increment = 50
A number of Advisor rules had advice text that had not been translated into Japanese. The Advisors that contained untranslated rules included Performance, Schema and Security. (Bug#42067)
The Service Manager did not handle the case where the agent failed to supply a valid
master_ip. The Service Manager would then not restart. The logs contained the following:2009-01-09 14:39:50,472 ERROR [main:org.springframework.web.context.ContextLoader] Context initialization failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'serverConnectionMonitor' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Unsatisfied dependency expressed through constructor argument with index 2 of type [com.mysql.etools.monitor.bo.Manager]: Error creating bean with name 'manager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is com.mysql.etools.monitor.pom.UnsupportedAttributeException: 101c6b5b-15eb-49aa-916c-843c51b28d38: mysql.slavestatus.Master_ip
Having too many users with strong privileges generated Service Manager errors and events failed to be triggered.
If there were approximately 1000 users with full privileges and the value of
group_concat_max_lenwas set to 100001, the size of the data that the agent sent to the Service Manager was too large and caused Service Manager errors. Also, the Security event “Account has Strong MySQL privileges” did not trigger. (Bug#41987)Query Analyzer's Query Type filter for
SELECTignored statements starting with parenthesis.If you sent a statement through Query Analyzer starting with parenthesis, such as:
(SELECT 1 FROM dual);
and then attempted to filter for
SELECTqueries only, queries starting with parenthesis were not displayed. (Bug#41968)The agent angel process was spawning too soon, which caused a duplicate UUID error.
g_error()logged a fatal error, and calledabort(). This terminated the program. Then the angel respawned with the same UUID, but with a -1 session resync request, which the MEM server denied because the old session was still active. This resulted in a permissions denied error (1142) on themysql.inventory table.2008-12-17 18:58:58: (message) agent_mysqld.c:313: [mysql] mysqld is local and directly connected 2008-12-17 18:58:58: ((error)) agent_mysqld.c:444: [mysql] mysql_real_query("SELECT value FROM mysql.inventory WHERE name = 'uuid'") failed: SELECT command denied to user 'ent_agent'@'127.0.0.1' for table 'inventory' (errno=1142) 2008-12-17 18:58:58: (debug) chassis.c:282: 15134 returned: 15134 2008-12-17 18:58:58: (message) chassis.c:304: [angel] PID=15134 died on signal=6 (it used 0 kBytes max) ... waiting 3min before restart 2008-12-17 18:59:00: (debug) chassis.c:244: we are the child: 15149 2008-12-17 18:59:00: (message) chassis.c:259: [angel] we try to keep PID=15149 alive 2008-12-17 18:59:00: (debug) chassis.c:277: waiting for 15149 2008-12-17 18:59:00: (message) mysql-proxy 0.7.0 started 2008-12-17 18:59:00: (message) MySQL Monitor Agent 2.0.0.7111 started.master_uuiddiscovery did not work with MySQL Server versions prior to 5.1.master_uuiddid not show in any Agent to Monitor communications, and no log or error messages were generated.However, now the bug has been fixed, an Agent monitoring a 5.0 MySQL Server would register the following in its logs:
... <classname>slavestatus</classname> <instance>12515cdc-8c00-4223-9d2a-2666a403512c</instance> <attribute>Master_uuid</attribute> </target> <utc>2009-03-03T19:58:05.700Z</utc> <value>b2fd9f86-6e42-49f2-b930-e8fb3e728179</value>
Note the presence of
master_uuid. (Bug#41525)The
master_uuidwas not used for replication topology discovery.The agent collected
master_uuidby reading themaster.infofile, and then running aSELECTdirectly against its master. This was to try and read themysql.inventorytable on the master to obtain the instancemaster_uuid.However, this was not being used correctly by the replication topology discovery within the server. (Bug#41519)
Queries such as
SELECTagainst the mastermysql.inventorywas not logged on slave-based agents. This made diagnosing topology discovery issues difficult. (Bug#41518)After an error was generated due to an incorrect password while trying to create a new user, the following error was obtained when subsequently attempting to create a valid new user:
U0002 You must log in to access the requested resource
Agent startup failed on Solaris 10. The error generated was:
# ./mysql-monitor-agent start Bad string ERROR! /opt/mysql/enterprise/agent/etc/mysql-monitor-agent.ini has to have a [mysql-proxy].pid-file setting
This was caused by unexpected behavior of the tr command. (Bug#41260)
On the Query Analysis page, if a query was clicked the minimum displayed was greater than the average. (Bug#41259)
In some circumstances the agent/proxy ran out of file descriptors, causing secondary failures. It could not recover from that state. The relevant part of the log file is shown here:
2008-11-27 11:11:00: (critical) last message repeated 2 times 2008-11-27 11:11:00: (critical) job_collect_os.c:411: sigar_cpu_info_list_get() failed 2008-11-27 11:11:00: (critical) job_collect_os.c:445: sigar_cpu_list_get() failed 2008-11-27 11:11:00: (critical) job_collect_os.c:411: sigar_cpu_info_list_get() failed 2008-11-27 11:11:00: (critical) job_collect_os.c:445: sigar_cpu_list_get() failed 2008-11-27 11:11:00: (critical) job_collect_os.c:411: sigar_cpu_info_list_get() failed 2008-11-27 11:11:00: (critical) job_collect_os.c:445: sigar_cpu_list_get() failed 2008-11-27 11:11:00: (critical) job_collect_os.c:411: sigar_cpu_info_list_get() failed 2008-11-27 11:11:00: (critical) job_collect_os.c:445: sigar_cpu_list_get() failed 2008-11-27 11:11:30: (critical) network-socket.c.292: socket(127.0.0.1:3306) failed: Too many open files (24) 2008-11-27 11:11:30: (critical) proxy-plugin.c.1532: Cannot connect, all backends are down. 2008-11-27 11:20:22: (critical) last message repeated 4 times 2008-11-27 11:20:22: (critical) network-io.c:215: curl_easy_perform('https://user:password@merlin-dashboard:443/heartbeat') failed: SSL connection timeout (curl-error = 'Timeout was reached' (28), os-error = 'Connection refused' (111))If an installation of Service Manager 2.0.0.7102 included a
backupdirectory, due to a previous upgrade, and was upgraded using at least Service Manager 2.0.0.7103, then the installer displayed an error message and exited.The error message displayed was:
There has been an error. Error renaming /Applications/mysql/enterprise/monitor/apache-tomcat to /Applications/mysql/enterprise/monitor/backup/apache-tomcat The application will exit now
The Agent started without problems and connected to the master. But it was unable to perform a
SELECTfrom the tablemysql.inventoryin order to obtain server information. (Bug#40933)Canonical Query Text for
Select -1was displayed asSELECT -?instead ofSELECT ?on the Query Analyzer tab. (Bug#40435)The agent installer for Solaris 8 x86 32-bit was missing. (Bug#40248)
The startup scripts supplied with MySQL Network Monitoring and Advisory tool did not supply all of the LSB
init.dscript options required. A list of the required options can be found at the following website http://refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.htmlThe required options missing include
statusandforce-reload. The optionstatusis used by monitoring tools and cluster software such as Red Hat Cluster, to ensure that the service is still running. Theforce-reloadoption is an alias for restart. (Bug#29848)Multiple errors showed in the agent log after issuing a
SHOW INNODB STATUSstatement. TheInnoDB Buffer Poolgraph also went blank. (Bug#27372)
This section documents all changes and bug fixes that have been applied since the release of MySQL Enterprise Monitor, version 2.0.3.
Bugs fixed:
The Service Agent did not log connections to, and disconnects from, the monitored database.
This meant it was not possible to check if the Agent was connected to the database by simply looking at the log file. (Bug#42403)
The Service Agent failed to create the
mysql.inventorytable. The logs displayed the following error message:(critical) (share/mysql-proxy/quan.lua:711) [proxy] please add SELECT permissions for this user on mysql.inventory to enable the QUAN feature, got Table 'mysql.inventory' doesn't exist
This happened even though the Service Agent used the
rootaccount. (Bug#42389)After installing Service Agent 2.0.4.7138 and then starting it with
--version, the incorrect version was displayed. Although 2.0.4.7138 was installed, the Service Agent displayed the version number as 2.0.2.7138. (Bug#42263)An invalid path was shown in the error message if the upgrade installer failed to find the previous install location.
The error message is shown below, note that the error message displays a different path to that provided by the user:
Please specify the directory that contains the previous installation of the MySQL Enterprise Monitor Agent Installation directory [/home/mysql/mysql/enterprise/agent]: /var/lib/mysql/agent Warning: The directory /home/mysql/mysql/enterprise/agent does not contain a a previous installation. Please select the right installation directory. Press [Enter] to continue : ---------------------------------------------------------------------------- Please specify the directory that contains the previous installation of the MySQL Enterprise Monitor Agent
The agent password error in the Service Manager did not log the originating host, making it impossible to determine the agent that failed to log in:
ErrorJan 5, 2009 4:56:08 PM<?xml version='1.0'?><exceptions><error><![CDATA[E1702: IncorrectPasswordException: [agent]]]></error></exceptions>
The Service Manager's JDBC connections did not have
sql_modeset to includeNO_ENGINE_SUBSTITUTION. This resulted in the failure of Data Definition Language (DDL) if the Service Manager was inadvertently pointed to an incorrectmysqldinstance. (Bug#42137)A number of Advisor rules had advice text that had not been translated into Japanese. The Advisors that contained untranslated rules included Performance, Schema and Security. (Bug#42067)
Service Agent configuration files had global read privileges on the filesystem. (Bug#41794)
When the log files rotated to the maximum allowed by the
log4jconfiguration, the metadata contained in theFileAppenderbecame out of synchronization due to a logic bug. This caused an assertion error on any subsequent request for the logs tab or data. (Bug#41593)SNMP trap messages were sending 127.0.0.1 as the IP address, and there was no feature to allow the user to configure the IP address contained in the SNMP message, which would have been useful for troubleshooting. (Bug#41361)
On all available test systems, including SUSE Linux Enterprise Server (SLES) 9 and 10 x86-32, x86-64, IA64, and Ubuntu 6.10 x86-64, the agent memory grew incrementally within ~3 hours to ~25M.
The agents then switched to the 'red' condition on the dashboard and no more data was reported. The agent processes were still alive.
This was also present in MySQL Enterprise Monitor version 2.0.0.7111 on Suse 7.3, with the glibc2.2 x86 agent.
There was no load on the monitored servers, and the problem also occurred when the “self-quan” was not configured. (Bug#41244)
Although the Monitor tab loaded initially, after a 64-bit MySQL server running a 32-bit MySQL Monitor Agent was clicked, a Null Pointer Exception was generated. (Bug#41164)
The Service Agent startup configuration did not seem to work and did not generate a log file. (Bug#40583)
An error generated by a rule failed to clear.
When a rule was created with the
os:disk:fs_useddata item, if the instance was not a valid mount point then the Service Agent reported the error:2008-08-11 17:57:00: (critical) disk-get failed for all: 2
Note the above instance was for “all”, and similar results occurred for instance “disk”.
The issue was that upon editing the rule, or even deleting the rule, the agent still showed the above error type. Restarting the agent and the monitoring service failed to remove the error. (Bug#38709)
If the “On Save send test trap” checkbox was checked when the button was clicked and the locale was set to Japanese, an error occurred. The orange error banner was displayed at the top of the page with the error message in Japanese. (Bug#32069)
This section documents all changes and bug fixes that have been applied since the release of MySQL Enterprise Monitor, version 2.0.2.
Bugs fixed:
The Service Agent failed to connect to the server, and no error message was displayed in the log file.
However, when the log verbosity level was set to
message, the following message was recorded:2009-01-12 13:34:43: (warning) agent_mysqld.c:600: agent connecting to mysql-server failed: mysql_real_connect(host = '127.0.0.1', port = 3306, socket = ''): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 (mysql-errno = 2013)
There was a mismatch between the contents of an SNMP Trap from MySQL Enterprise Monitor and the definition given in the file
MONITOR.MIB. (Bug#41912)If a copy was made of a standard rule, the resulting Wiki markup was incorrect, resulting in the display of user-interface text containing HTML markup. (Bug#41375)
Allowing the heat chart rules to be set to unscheduled caused the user interface to appear broken. (Bug#41312)
When a custom rule requiring disk information was created, for example:
[Expression] %disk_reads% > THRESHOLD [Thresholds] Critical Alert: 9000 Warning Alert: 3000 Info Alert: 1000 [Variable Assignment] variables: %disk_reads% Data Item: os:disk:disk_reads Instance: /
The following error was written to the file
mysql-service-agent.log:2007-09-05 17:11:00: (critical) disk-get failed for c0d0p1: 2
It therefore appeared that the Service Agent was not able to obtain the required information. (Bug#30820)
This section documents all changes and bug fixes that have been applied since the release of MySQL Enterprise Monitor, version 2.0.1.
Bugs fixed:
The button was missing from the Setup page you were taken to after the current subscription expired. (Bug#41685)
If the
host-idof the monitored instance and thehost-idof the current agent did not match, the agent generated the following error message:Please TRUNCATE TABLE mysql.inventory on this mysql-instance and restart the agent.
However, it did not suggest using
sql_log_bin = 0. This is used for all other actions against this table so that they are not replicated to slaves, each of which has their own copy of this table. (Bug#41673)The Agent did not start up when the monitored server had many databases and tables, and was under heavy load. This was because the
trigger_schemaquery was taking too long on agent start up. (Bug#41555)The Service Agent failed to install on Solaris 10 x86. The following error was generated:
Installing 0% ______________ 50% ______________ 100% ######################################## Warning: Problem running post-install step. Installation may not complete correctly Error running /usr/local/mysqlagent/bin/mysql-monitor-agent --defaults-file=/usr/local/mysqlagent/etc/mysql-monitor-agent.ini --plugins=agent --agent-generate-uuid=true : 2008-12-12 13:06:02: (critical) Conversion from character set '646' to 'UTF-8' is not supported 2008-12-12 13:06:02: (message) shutting down normally
The console/stdout appender remained in the log4j configuration, which meant that all the MySQL Enterprise Monitor server logs were duplicated to Catalina's stdout, and thus
catalina.out, which was wasteful, especially as that file was not rotated or managed. (Bug#41439)When creating new multiple user accounts, the first attempt worked fine. However, following attempts to create new users did not show the Query Analyzer Options in the Create User popup until the role field was changed. (Bug#41430)
When login privileges were required the Service Manager did not redirect the user to the login page. This resulted in error messages being displayed rather than simply redirecting the user to the login page. This problem typically occurred if it was necessary to restart Tomcat. (Bug#41320)
The monitor 2.0.0.7105 and 2.0.0.7122 Solaris Intel update installer quits unexpectedly. The installer exits from the GUI in the Backup of Previous Installation screen, when OpenSolaris is running on top of Sun xVM.
The console output for both installer versions is given below:
shell> ./mysqlmonitor-2.0.0.7105-solaris-intel-update-installer.bin X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 73 (X_GetImage) Serial number of failed request: 21161 Current serial number in output stream: 21161
shell> ./mysqlmonitor-2.0.0.7122-solaris-intel-update-installer.bin X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 73 (X_GetImage) Serial number of failed request: 21148 Current serial number in output stream: 21148
The Rename Group function failed if the new group name was different to the current one only in the case used; for example, if “Merlin” was changed to “MERLIN”.
The error generated was:
U0105 This group name is already in use. Enter a different name.
The Agent returned an inventory list of all databases and tables. This information was not used by MySQL Enterprise Monitor, other than to populate the
inv_databasesandinv_tablestables. For large-scale deployments, where there were many databases and tables, this resulted in redundant XML messages being sent from the Agent to the Service Manager. (Bug#33150)
This section documents all changes and bug fixes that have been applied since the release of MySQL Enterprise Monitor, version 2.0.0.
Bugs fixed:
This section documents all changes and bug fixes that have been applied since the release of MySQL Enterprise Monitor, version 1.3.3.
Functionality added or changed:
Important Change: The
server-nameconfiguration parameter is deprecated. For compatibility, during an upgrade, the information will be migrated to adisplaynameconfiguration parameter within the individual instance configuration files. This configuration parameter is provided only for compatibility, as display name information is now stored within the main repository. Support fordisplaynameis also deprecated and will be removed in a future release.Important Note: The rules “32-Bit Binary Running on 64-Bit AMD Or Intel System” and “Key Buffer Size Greater Than 4 GB” occasionally do not evaluate correctly due to timing issues. This causes them to be displayed with the Severity level of “Unknown”. This is a known issue and will be resolved in future versions of MySQL Enterprise Monitor.
Important Note: When you start the Merlin 2.0 agent from the command line on Windows, you get the following error dialog:
"mysql-proxy.exe - Entry Point Not Found" "The procedure entry point libiconv_set_relocation_prefix could not be located in the dynamic link library iconv.dll"
If you click the agent works fine after that.
This only occurs when starting the agent from the command line, and only when there is another version of one of the DLLs that the agent uses somewhere on the current path. This error can be avoided by opening a command prompt, typing
SET PATH=to clear the path, and then starting the agent.Important Note: If you are monitoring one instance of MySQL server (mysqld) and then upgrade that MySQL server, the correct version of the MySQL server is not displayed in the Dashboard. This is a known issue that will be fixed in future versions of MySQL Enterprise Monitor.
The following has been added to the Tomcat
config.propertiesproperties file:# max connections in the pool for the repository default.maxActive=70The dashboard could be used to change the agent password to one containing the
@character, or other special characters, which subsequently caused errors. To fix this problem, special characters in passwords are now prevented by the dashboard. The list of disallowed special characters can be found at the following location: http://en.wikipedia.org/wiki/Percent-encoding#Types_of_URI_characters (Bug#37172)The Query Analysis page was missing the Refresh dropdown control that the Monitor, Events, and Graphs pages had at the top. (Bug#36831)
The User Interface only returned error strings, without any associated error codes. This meant that if the error string was in a language that the user did not understand, it would be very difficult to determine which error actually occurred.
The User Interface now supports error codes, as well as error strings. This change allows easier testing of multiple locales. (Bug#32131)
The wording was changed on the fading popup subscription alert. The text “account” was changed to “subscription”. (Bug#31492)
The alert thresholds for the Query Cache Advisor were changed:
Information Warning Critical From 95 85 75 To 60 50 40 The agent log file name has changed from
mysql-service-agent.logtomysql-monitor-agent.log. The old log file will be retained during a upgrade install.
Bugs fixed:
Starting a new agent against an instance that contained many databases broke up the initial discovery packet, causing collections such as CPU usage and their graphs to fail. See also Bug#33150 and Bug#41314. (Bug#41933)
When altering an existing rule you had to add an empty string,
"", to any threshold level that was empty. Otherwise, the rule failed to run and the resulting exceptions caused the Events page to be unusable due to duplicate key exceptions. (Bug#41310)After installing the 2.0.0.7119 Dashboard the following error was generated in the logs:
com.opensymphony.xwork2.util.OgnlValueStack Warning Dec 5, 2008 10:41:26 AM Caught an Ognl exception while getting property titleAddition
The
dc_ng_long_nowtable became very large partly due to an unused columnbegin_time. (Bug#41093)Although there was a unique constraint on the user name, it was not enforced during first-time setup. This resulted in a stack trace being produced, rather than a more user-friendly error message, if the same name was used for the
adminandagentaccounts. (Bug#40870)MySQL Enterprise Monitor server had stopped sending up/down SNMP traps. (Bug#40861)
The Query Analyzer's Explain Query tab did not have pop up text or a link to the documentation regarding
SELECTqueries. (Bug#40841)When you tried to import a Trial-level advisor JAR using a Trial user account, one of the following error messages was generated:
U0009 The uploaded Advisor jar was invalid
U0161 Please import a Platinum level Advisor .jar to use with this Platinum level product key
Meta Info on the Dashboard did not display information for the meta data
os_description. (Bug#40830)Attempting to create an alias of statements such as
COMMIT,ROLLBACK,BEGIN, resulted in the error:Can't find template commitTnx.st; group hierarchy is [HTMLFormatting] org.antlr.stringtemplate.StringTemplateGroup.lookupTemplate(StringTemplateGroup.java:507)
Trying to upgrade from 2.0.0.7088 to 2.0.0.7092 failed as there was a missing file. When the update program
mysqlmonitor-2.0.0.7092-solaris-intel-update-installer.binwas run, the file/tmp/com/mysql/merlin/server/version.propscould not be found. (Bug#40692)On OS X with Java 1.5, Tomcat crashed on launch with the error:
Invalid memory access of location 00000007 eip=013df179
When the agent was installed using the command line installer and
--enableproxy 0was specified, the installer should have removedquan.luafrom theagent-item-filesoption in the INI file. (Bug#40551)The Agent could not connect to a database with the
hostnameset tolocalhost. Doing so resulted in the error:(critical) the MySQL server could not be reached at socket '(null)', we will check in 10 seconds
The update installer for the 2.0 Monitor did not have an Is SSL support required? checkbox. Therefore, the appropriate SSL connector definition was commented out in the
conf/server.xmlfile. (Bug#40414)The Service Manager installer did not uninstall or wipe out the previous installation if you answered “Yes” to the question:
“The directory you selected already contains a MySQL installation. If you continue installation all data will be lost. Do you wish to continue?” (Bug#40410)
If you unchecked the Enable Proxy checkbox on the Query Analysis Configuration screen, the agent's INI file still contained proxy configuration data and was not commented out. (Bug#40272)
As different queries were sent through the agent it used increasing amounts of memory. (Bug#40260)
The Service Manager installer set the Java Virtual Machine option
HeapDumpPathto<install_root>\tempon Windows and/tmpon other platforms. For consistency theHeapDumpPathdirectory should have been set to<install_root>\tmpon Windows. (Bug#40215)When using the command line agent setup program, a socket file was not accepted for the monitored instance. (Bug#40085)
The language option when installing the MySQL Enterprise Monitor in Japanese using the command-line instllaer has been changed from
jptoja. (Bug#40082)When monitoring MySQL 5.1.24 and above, the user used by the agent to connect to the MySQL server for monitoring must have the
PROCESSprivilege. (Bug#40050)The check box option string “Is SSL support required?”, on the Tomcat Server Option dialog of the Monitor installation, was not correctly translated into Japanese. (Bug#39814)
The base application directory for the MySQL Enterprise Dashboard has been updated from
http://localhost:18080/merlintohttp://localhost:18080/. (Bug#39403)If the Service Manager or the MySQL Server running the Repository crashed, they did not restart automatically. (Bug#39377)
If the agent crashed, there was no watchdog, angel or keep-alive mechanism to restart the agent and keep it running. (Bug#39374)
If the MySQL client libraries were located in a nonstandard location, the agent 2.0.0.7042 installer failed with a “library not found” error. (Bug#39317)
For the rule “Server-Enforced Data Integrity Checking Not Strict”, the Recommended Action did not display correctly. It displayed as
SET sql_mode=modes, rather thanSET [GLOBAL|SESSION] sql_mode=modes. (Bug#39261)A query that was issued through the proxy, and that had an auto-explain performed on that query, did not give the correct response to a subsequent query of
SELECT FOUND_ROWS(). (Bug#39223)It was not possible to establish a connection with the Dashboard using the SSL protocol (https://). (Bug#39198)
When a 1.3 MySQL Enterprise Monitor installation with many rules scheduled was upgraded to 2.0, the upgraded installation was then found to have only the heat chart rules scheduled. (Bug#39043)
The agent installer did not allow a second agent to be installed on Windows. (Bug#38976)
The Dashboard incorrectly diplayed that insufficient licenses were available, even though sufficient licenses had been purchased. (Bug#38514)
After running the MySQL Service Agent uninstall program, the file
/etc/init.d/mysql-service-agentremained present on the server. (Bug#38490)The notice fader continued to display English text after you changed the locale to Japanese. (Bug#38460)
The Subscription Expired pop-up window referred to the “Global Preferences” page, instead of the “Global Settings” page. (Bug#38358)
An inappropriate time zone was used to parse user-entered date and time strings. (Bug#38323)
A sigar network stats error was generated on the Solaris platform:
# /opt/mysql/enterprise/agent/bin/mysql-service-agent --version MySQL Service Agent - 1.2.0.7879, (glib lib=2.8.5, headers=2.8.5) SunOS mysqlprd01 5.10 Generic_127127-11 sun4v sparc SUNW,T5240 2008-07-21 10:07:24: (critical) sigar_net_interface_config_primary_get() failed: 6 2008-07-21 10:08:00: (critical) sigar_net_interface_config_primary_get() failed: 6 # /opt/mysql/enterprise/agent/bin/sigar-test-all >/tmp/test.txt sigar_net_interface_stat_get(e1000g0:2) failed#
After deleting a server from the Settings, Manage Servers tab, at the very bottom of the page the Monitoring x instances on x host values did not reflect the deletion. (Bug#38225)
The MySQL Enterprise Monitor alert “INFO Alert - Users Can View All Databases On MySQL Server (v 1.5 *)” from the Security advisor was incorrect. This is because the default server behavior allows users to see databases for which they have privileges, not “all databases on server” as suggested by the alert. (Bug#38052)
The “Maximum Connection Limit Nearing Or Reached” advisor did not generate a new Critical Alert event when there was an open info success event. (Bug#37816)
The Linux IA64 installer appeared to crash. The installer appeared to crash on RH4_IA64 if called with option "--version":
------------------------------------------------------------------------------- <INSTALLER> --version mysqlmonitorage(30704): unaligned access to 0x6000000000a8413c, ip=0x2000000003ddd5f0 mysqlmonitorage(30704): unaligned access to 0x6000000000a84144, ip=0x2000000003ddd5f1 mysqlmonitorage(30704): unaligned access to 0x6000000000a8414c, ip=0x2000000003ddd600 mysqlmonitorage(30704): unaligned access to 0x6000000000a84154, ip=0x2000000003ddd601 MySQL Enterprise Monitor Agent 0.7.0.1737 --- Built on 2008-06-25 19:31:53 -------------------------------------------------------------------------------
However, this warning is harmless and will not impact the operation of the agent. (Bug#37496)
If the log-level option in the agent configuration file was set to an unknown level by mistake, the
init.dscript appeared to enter an infinite loop. (Bug#37108)Malformatted server meta information appeared on the Dashboard; RAM and Disk Space appeared under the CPU category. (Bug#36740)
A “rename” link incorrectly appeared next to the Upgrade category on the Manage Rules page. (Bug#36584)
In the case where exceptions were passed through to the User Interface, the substituted arguments in the message contained developer-only information. (Bug#36580)
Agent Version, Last MySQL Contact, OS Info, CPU Info, and IP Addresses were all blank on the dashboard when the agent for the selected server was not functioning. (Bug#36301)
mysql-monitor-agent became confused by the
.DS_Storefiles that are created on Mac OS X. (Bug#36216)The rule “Key Buffer Size Greater Than 4 GB” incorrectly triggered the following alert:
CRITICAL Alert - Key Buffer Size Greater Than 4 GB
However, on non-Windows systems, a key buffer size greater than 4 GB is supported. (Bug#36143)
Since the repository database for MySQL Enterprise Monitor uses InnoDB there was no way to reduce the size of the data files after an old log/event data purge operation. Further, the purge data operation executed once per day, and had no option to trigger the purge operation manually. (Bug#35971)
On the Graphs page, if all graphs were expanded, then the Time Display interval updated, the page was refreshed with the button displayed, even though all the graphs were already expanded. (Bug#35917, Bug#35133)
The Meta Info area of the Monitor page incorrectly reported the operating system version number for the MySQL version. (Bug#35836)
The rule “XA Distributed Transaction Support Enabled For InnoDB” incorrectly sent a warning when the binary log was on. (Bug#35786)
On the Monitor page, the time displayed for
Last MySQL Contactlagged behind that forLast Agent Contactby a large amount. (Bug#35774)MySQL Enterprise Monitor did not update replication settings correctly. After a slave became the master, the Adviser still referred to it as a slave. (Bug#35771)
The Adviser email suggested using the
--log-queries-not-using-indexesoption. However, this option is not available in MySQL Server versions prior to 4.1. (Bug#35770)Thumbnail graphs did not update properly after a time zone change. (Bug#35756)
If a system had a global
wait_timeoutlower than the general activity of the agent, the agent was disconnected. The monitored server then logged an error and incrementedAborted_clients. (Bug#35648)Alerts fired after a blackout period based on data collections that happened during the blackout. (Bug#35617)
The translation of the button on the Rule Definition window was incorrect. (Bug#35495)
An uninstallation message asked about removing Apache files, even though Apache is no longer used. (Bug#35154)
After updating from a previous version to the latest 1.3 version, the Query Cache Has Sub-Optimal Hit Rate was still displayed in English after setting the locale to Japanese. Note, the rule was translated correctly if the full installer was used. (Bug#35134)
The MySQL Enterprise Monitor uninstall dialog box had missing text when using the Japanese locale. (Bug#34982)
Running the installer with the
--helpoption caused an incorrect message to be displayed. (Bug#34200)When using the unattended
unInstallscript on Linux together with the option--env deleteUserData=yesthe correct warning text was displayed. However, this text should not be displayed in unattended mode. Further, the option--env deleteUserData=yeswas not displayed by the--helpoutput. (Bug#34071)Platinum Unlimited customers sometimes received a warning stating incorrectly that their subscription supported zero hosts. (Bug#34010)
Clicking on the resolution notes link for a closed event on the events tab showed incorrect behaviour. The popup initially showed the resolution notes, but when the resolution tab was clicked the notes disappeared and were replaced by an edit box. (Bug#33935)
The status on the product information page was not translated when the user locale was set to Japanese. (Bug#32785)
When the locale was set to Japanese, the date picker still had English month titles. (Bug#32741)
Flashing display of a pop-up used while saving outgoing email settings was caused by problematic initial placement calculations. (Bug#32579)
AIX 5.2 Agent did not work on AIX 5.3. (Bug#32414)
When the First Time Setup program was run it did not prompt the user to allow importing an Advisor bundle. (Bug#32199)
Agent on MacOSX did not read IP addresses for network interfaces correctly, so the monitor displayed empty host IP addresses. (Bug#32188)
HTML code in queries was not escaped when reporting replication errors, causing the code to be rendered into the page. (Bug#32186)
The First Run pop-up defaulted to English rather than to the locale set in the browser. (Bug#32129)
The error dialog box flashed in the upper left corner before being positioned in the center of the screen. This error dialog box now opens in the center of the screen. (Bug#32068)
The Events list did not take into account Daylight Time and Standard Time when listing events that happened during 1:00am-1:59am. An event that occurred at 1:10am Standard Time was listed before an event that occurred 50 minutes before it at 1:20am Daylight Time. (Bug#32016)
The pop-up for editing log levels failed to load due to bad instantiation data. (Bug#32013)
During the repeated hour of Daylight Savings Time (when 2am turns back into 1am), the graphs were not drawing data. Instead, there was a straight line from the point at 1:00 to the second 1:00, which is what happens if there is no data. The repository did, however, have data for this hour. (Bug#31997)
Only US English was supported for a locale setting. Other English variants are now available for the
localesetting on theGeneral Settingsor theUser Preferencespages. (Bug#31801)If the user locale was changed the graph cache would continue to display the graph in the last locale until it timed out. (Bug#31680)
No init script was installed for the MySQL Network Monitoring Service Manager, and so it did not restart automatically on reboot. (Bug#31676)
The graph's displayed time was not the local time of the Dashboard corresponding to the requested time on the monitored server. (Bug#31656)
Saving a rule with a name that already existed resulted in a stack trace in the window, instead of a more user-friendly error message. (Bug#30925)
The
network.mysql.comerror messages were remapped thereby causing confusion. For example, the following error message:E9000: MySQL Enterprise Customer Center is having difficulties fetching your contract information. Please contact enterprise-feedback@mysql.com for assistance.
Was remapped to:
Unable to connect to verify credentials (Bug#30873)
A newly added server showed as “down” in the user interface, and could potentially have sent a false alarm notification. (Bug#30735)
The information on the , page did not accurately reflect how many rules and graphs were actually in the database and available to the user. (Bug#29623)
The agent did not process
SIGHUP. (Bug#29380)Monitor did not have a facility to stop or downgrade an agent collection frequency. (Bug#28589)
After an agent installation was updated from 1.0.1.4391 to 1.1.0.4899, the version in the menu was incorrectly displayed as 1.0.1.4391, even though the update was successful and the file version of
agent.exewas correctly displayed as 1.1.0.4899. (Bug#27447)When viewing the Results of an Event in the Events tab of the Dashboard, the Notifications section did not reflect the Notifications settings at the time the Event was triggered, but rather the Notifications settings at the time the Event Results were viewed. (Bug#26349)
When the Service Agent was remotely monitoring a MySQL server it incorrectly reported that it could collect operating system information. (Bug#22497)
The Account Without Password advisor did not report all users who were without a password, it only reported one. (Bug#15165)
- C.3.1. Changes in MySQL Connector/ODBC 5.1.6 (Not yet released)
- C.3.2. Changes in MySQL Connector/ODBC 5.1.5 (18 August 2008)
- C.3.3. Changes in MySQL Connector/ODBC 5.1.4 (15 April 2008)
- C.3.4. Changes in MySQL Connector/ODBC 5.1.3 (26 March 2008)
- C.3.5. Changes in MySQL Connector/ODBC 5.1.2 (13 February 2008)
- C.3.6. Changes in MySQL Connector/ODBC 5.1.1 (13 December 2007)
- C.3.7. Changes in MySQL Connector/ODBC 5.1.0 (10 September 2007)
- C.3.8. Changes in MySQL Connector/ODBC 5.0.12 (Never released)
- C.3.9. Changes in MySQL Connector/ODBC 5.0.11 (31 January 2007)
- C.3.10. Changes in MySQL Connector/ODBC 5.0.10 (14 December 2006)
- C.3.11. Changes in MySQL Connector/ODBC 5.0.9 (22 November 2006)
- C.3.12. Changes in MySQL Connector/ODBC 5.0.8 (17 November 2006)
- C.3.13. Changes in MySQL Connector/ODBC 5.0.7 (08 November 2006)
- C.3.14. Changes in MySQL Connector/ODBC 5.0.6 (03 November 2006)
- C.3.15. Changes in MySQL Connector/ODBC 5.0.5 (17 October 2006)
- C.3.16. Changes in Connector/ODBC 5.0.3 (Connector/ODBC 5.0 Alpha 3) (20 June 2006)
- C.3.17. Changes in Connector/ODBC 5.0.2 (Never released)
- C.3.18. Changes in Connector/ODBC 5.0.1 (Connector/ODBC 5.0 Alpha 2) (05 June 2006)
- C.3.19. Changes in MySQL Connector/ODBC 3.51.27 (20 November 2008)
- C.3.20. Changes in MySQL Connector/ODBC 3.51.26 (07 July 2008)
- C.3.21. Changes in MySQL Connector/ODBC 3.51.25 (11 April 2008)
- C.3.22. Changes in MySQL Connector/ODBC 3.51.24 (14 March 2008)
- C.3.23. Changes in MySQL Connector/ODBC 3.51.23 (09 January 2008)
- C.3.24. Changes in MySQL Connector/ODBC 3.51.22 (13 November 2007)
- C.3.25. Changes in MySQL Connector/ODBC 3.51.21 (08 October 2007)
- C.3.26. Changes in MySQL Connector/ODBC 3.51.20 (10 September 2007)
- C.3.27. Changes in MySQL Connector/ODBC 3.51.19 (10 August 2007)
- C.3.28. Changes in MySQL Connector/ODBC 3.51.18 (08 August 2007)
- C.3.29. Changes in MySQL Connector/ODBC 3.51.17 (14 July 2007)
- C.3.30. Changes in MySQL Connector/ODBC 3.51.16 (14 June 2007)
- C.3.31. Changes in MySQL Connector/ODBC 3.51.15 (07 May 2007)
- C.3.32. Changes in MySQL Connector/ODBC 3.51.14 (08 March 2007)
- C.3.33. Changes in MySQL Connector/ODBC 3.51.13 (Never released)
- C.3.34. Changes in MySQL Connector/ODBC 3.51.12 (11 February 2005)
- C.3.35. Changes in MySQL Connector/ODBC 3.51.11 (28 January 2005)
Bugs fixed:
Connector/ODBC failed to build with MySQL 5.1.30 due to incorrect use of the data type
bool. (Bug#42120)Calling
SQLDescribeCol()with a NULL buffer and nonzero buffer length caused a crash. (Bug#41942)MySQL Connector/ODBC updated some fields with random values, rather than with
NULL. (Bug#41256)Calling
SQLDriverConnect()with aNULLpointer for the output buffer caused a crash ifSQL_DRIVER_NOPROMPTwas also specified:SQLDriverConnect(dbc, NULL, "DSN=myodbc5", SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT)
Setting the ADO
Recordsetdecimal field value to 44.56 resulted in an incorrect value of 445600.0000 being stored when the record set was updated with theUpdatemethod. (Bug#39961)The
SQLTablesWAPI gave incorrect results. For example, table name and table type were returned asNULLrather than as the correct values. (Bug#39957)MyODBC 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 MyODBC to return an error message instead of crashing. (Bug#39831)
When the
SQLTablesmethod was called withNULLpassed as thetablenameparameter, only one row in theresultset, with table name ofNULLwas returned, instead of all tables for the given database. (Bug#39561)The
SQLGetInfo()function returned 0 forSQL_CATALOG_USAGEinformation. (Bug#39560)MyODBC Driver 5.1.5 was not able to connect if the connection string parameters contained spaces or tab symbols. For example, if the
SERVERparameter 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).
The pointer passed to the
SQLDriverConnectmethod 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 nullwhile updating the database, even whencolumn_namehad been assigned a valid nonnull string. (Bug#37649)The
SQLDriverConnectmethod truncated theOutputConnectionStringparameter to 52 characters. (Bug#37278)The connection string option
Enable Auto-reconnectdid 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)Insertion of data into a
LONGTEXTtable 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
SQLGetTypeInfofor theTIMESTAMPdata type. An application would receive the resultreturn 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)': [MySQL][ODBC 3.51 Driver]SSL connection error.
When the
recordSet.Updatefunction was called to update anadLongVarCharfield, 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.
Bugs fixed:
ODBC
TIMESTAMPstring format is not handled properly by the MyODBC driver. When passing aTIMESTAMPorDATEto MyODBC, in the ODBC format: {d <date>} or {ts <timestamp>}, the string that represents this is copied once into the SQL statement, and then added again, as an escaped string. (Bug#37342)The connector failed to prompt for additional information required to create a DSN-less connection from an application such as Microsoft Excel. (Bug#37254)
SQLDriverConnectdoes not returnSQL_NO_DATAon cancel. The ODBC documentation specifies that this method should returnSQL_NO_DATAwhen the user cancels the dialog to connect. The connector, however, returnsSQL_ERROR. (Bug#36293)Assigning a string longer than 67 characters to the
TableTypeparameter resulted in a buffer overrun when theSQLTables()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 inodbc-profile. (Bug#36203)After having successfully established a connection, a crash occurs when calling
SQLProcedures()followed bySQLFreeStmt(), using the ODBC C API. (Bug#36069)
Bugs fixed:
Wrong result obtained when using
sum()on adecimal(8,2)field type. (Bug#35920)The driver installer could not create a new DSN if many other drivers were already installed. (Bug#35776)
The
SQLColAttribute()function returnedSQL_TRUEwhen querying theSQL_DESC_FIXED_PREC_SCALE (SQL_COLUMN_MONEY)attribute of aDECIMALcolumn. Previously, the correct value ofSQL_FALSEwas returned; this is now again the case. (Bug#35581)On Linux,
SQLGetDiagRec()returnedSQL_SUCCESSin cases when it should have returnedSQL_NO_DATA. (Bug#33910)The driver crashes ODBC Administrator on attempting to add a new DSN. (Bug#32057)
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 Mac 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
SSLVERIFYDSN 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 would fail 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
SqlGetDatain combination withSQL_C_WCHARwould 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.RegisterDatabaseto create a DSN using the Connector/ODBC driver. (Bug#33825)Connector/ODBC erroneously reported that it supported the
CAST()andCONVERT()ODBC functions for parsing values in SQL statements, which could lead to bad SQL generation during a query. (Bug#33808)Using a linked table in Access 2003 where the table has a
BIGINTcolumn as the first column in the table, and is configured as the primary key, shows#DELETEDfor all rows of the table. (Bug#24535)Updating a
RecordSetwhen the query involves aBLOBfield would fail. (Bug#19065)
MySQL Connector/ODBC 5.1.2-beta, a new version of the ODBC driver for the MySQL database management system, has been released. This release is the second beta (feature-complete) release of the new 5.1 series and is suitable for use with any MySQL server version since MySQL 4.1, including MySQL 5.0, 5.1, and 6.0. (It will not work with 4.0 or earlier releases.)
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:
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 Mac 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 uninstall any existing versions of Connector/ODBC 5.1.x before upgrading.
See also Bug#34571.
Functionality added or changed:
Explicit descriptors are implemented. (Bug#32064)
A full implementation of SQLForeignKeys based on the information available from INFORMATION_SCHEMA in 5.0 and later versions of the server has been implemented.
Changed
SQL_ATTR_PARAMSET_SIZEto return an error until support for it is implemented.Disabled
MYSQL_OPT_SSL_VERIFY_SERVER_CERTwhen using an SSL connection.SQLForeignKeysusesINFORMATION_SCHEMAwhen it is available on the server, which allows more complete information to be returned.
Bugs fixed:
The
SSLCIPHERoption 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 would fail. 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)
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 forSQL_SPECIAL_CHARACTERSthat were not encoded correctly. (Bug#33130)Retrieving data from a
BLOBcolumn would fail withinSQLGetDatawhen the target data type wasSQL_C_WCHARdue 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
TEXTcolumn that had been used to store UTF8 data would result in the wrong information being returned during a query. (Bug#28617)SQLForeignKeyswould return an empty string for the schema columns instead ofNULL. (Bug#19923)When accessing column data,
FLAG_COLUMN_SIZE_S32did 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
LONGBLOBorLONGTEXTcolumns includes:SQLColumnsSQLColAttributeSQLColAttributesSQLDescribeColSQLSpecialColumns(theoretically can have the same problem)
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 would fail. (Bug#6157)
MySQL Connector/ODBC 5.1.1-beta, a new version of the ODBC driver for the MySQL database management system, has been released. This release is the first beta (feature-complete) release of the new 5.1 series and is suitable for use with any MySQL server version since MySQL 4.1, including MySQL 5.0, 5.1, and 6.0. (It will not work with 4.0 or earlier releases.)
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.
Includes changes from Connector/ODBC 3.51.21 and 3.51.22.
Built using MySQL 5.0.52.
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 Mac 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 uninstall any existing versions of Connector/ODBC 5.1.x before upgrading.
See also Bug#34571.
Functionality added or changed:
Incompatible Change: Replaced myodbc3i (now myodbc-installer) with Connector/ODBC 5.0 version.
Incompatible Change: Removed monitor (myodbc3m) and dsn-editor (myodbc3c).
Incompatible Change: Disallow
SET NAMESin initial statement and in executed statements.A wrapper for the
SQLGetPrivateProfileStringW()function, which is required for Unicode support, has been created. This function is missing from the unixODBC driver manager. (Bug#32685)Added MSI installer for Windows 64-bit. (Bug#31510)
Implemented support for
SQLCancel(). (Bug#15601)Removed nonthreadsafe configuration of the driver. The driver is now always built against the threadsafe version of libmysql.
Implemented native Windows setup library
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 Filesdirectory instead of the Windows system directory.
Bugs fixed:
The
SET NAMESstatement has been disabled because it causes problems in the ODBC driver when determining the current client character set. (Bug#32596)SQLDescribeColWreturned UTF-8 column asSQL_VARCHARinstead ofSQL_WVARCHAR. (Bug#32161)ADO was unable to open record set using dynamic cursor. (Bug#32014)
ADO applications would not open a
RecordSetthat contained aDECIMALfield. (Bug#31720)Memory usage would increase considerably. (Bug#31115)
SQLSetPoswithSQL_DELETEadvances dynamic cursor incorrectly. (Bug#29765)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)
ADO Not possible to update a client side cursor. (Bug#27961)
Recordset
Update()fails when usingadUseClientcursor. (Bug#26985)Connector/ODBC would fail 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.SQLSetConnectAttr()did not clear previous errors, possibly confusingSQLError().SQLError()incorrectly cleared the error information, making it unavailable from subsequent calls toSQLGetDiagRec().NULL pointers passed to
SQLGetInfo()could result in a crash.SQL_ODBC_SQL_CONFORMANCEwas not handled bySQLGetInfo().SQLCopyDesc()did not correctly copy all records.Diagnostics were not correctly cleared on connection and environment handles.
This release is the first of the new 5.1 series and is suitable for use with any MySQL server version since MySQL 4.1, including MySQL 5.0, 5.1, and 6.0. (It will not work with 4.0 or earlier releases.)
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.
Functionality is based on Connector/ODBC 3.51.20.
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 Mac OS X on 64-bit PowerPC because Apple does not currently provide a 64-bit PowerPC version of iODBC.
There are no installer packages for Microsoft Windows x64 Edition.
Due to differences with the installation process used on Windows and potential registry corruption, it is recommended that uninstall any existing versions of Connector/ODBC 5.1.x before upgrading.
See also Bug#34571.
Functionality added or changed:
Added support for Unicode functions (
SQLConnectW, etc).Added descriptor support (
SQLGetDescField,SQLGetDescRec, etc).Added support for
SQL_C_WCHAR.
Note
Development on Connector/ODBC 5.0.x has ceased. New features and functionality will be incorporated into Connector/ODBC 5.1. See Section 20.1.2.1, “Connector/ODBC Roadmap”.
Bugs fixed:
Functionality added or changed:
Added support for ODBC v2 statement options using attributes.
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
MEMOorTEXTcolumns from within Microsoft Access would fail. (Bug#25263)Transaction support has been added and tested. (Bug#25045)
Internal function,
my_setpos_delete_ignore()could cause a crash. (Bug#22796)Fixed occasional mis-handling of the
SQL_NUMERIC_Ctype.Fixed the binding of certain integer types.
Connector/ODBC 5.0.10 is the sixth BETA release.
Functionality added or changed:
Significant performance improvement when retrieving large text fields in pieces using
SQLGetData()with a buffer smaller than the whole data. Mainly used in Access when fetching very large text fields. (Bug#24876)Added initial unicode support in data and metadata. (Bug#24837)
Added initial support for removing braces when calling stored procedures and retrieving result sets from procedure calls. (Bug#24485)
Added loose handling of retrieving some diagnostic data. (Bug#15782)
Added wide-string type info for
SQLGetTypeInfo().
Bugs fixed:
Connector/ODBC 5.0.9 is the fifth BETA release.
This is an implementation and testing release, and is not designed for use within a production environment.
Functionality added or changed:
Added support for column binding as SQL_NUMBERIC_STRUCT.
Added recognition of
SQL_C_SHORTandSQL_C_TINYINTas C types.
Bugs fixed:
Fixed wildcard handling of and listing of catalogs and tables in
SQLTables.Added limit of display size when requested via
SQLColAttribute/SQL_DESC_DISPLAY_SIZE.Fixed buffer length return for SQLDriverConnect.
ODBC v2 behaviour in driver now supports ODBC v3 date/time types (since DriverManager maps them).
Catch use of
SQL_ATTR_PARAMSET_SIZEand report error until we fully support.Fixed statistics to fail if it couldn't be completed.
Corrected retrieval multiple field types bit and blob/text.
Fixed SQLGetData to clear the NULL indicator correctly during multiple calls.
Connector/ODBC 5.0.8 is the fourth BETA release.
This is an implementation and testing release, and is not designed for use within a production environment.
Functionality added or changed:
Also made
SQL_DESC_NAMEonly fill in the name if there was a data pointer given, otherwise just the length.Fixed display size to be length if max length isn’t available.
Wildcards now support escaped chars and underscore matching (needed to link tables with underscores in access).
Bugs fixed:
Fixed binding using
SQL_C_LONG.Fixed using wrong pointer for
SQL_MAX_DRIVER_CONNECTIONSinSQLGetInfo.Set default return to
SQL_SUCCESSif nothing is done forSQLSpecialColumns.Fixed MDiagnostic to use correct v2/v3 error codes.
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.Updated retrieval of descriptor fields to use the right pointer types.
Fixed hanlding of numeric pointers in SQLColAttribute.
Fixed type returned for
MYSQL_TYPE_LONGtoSQL_INTEGERinstead ofSQL_TINYINT.Fix size return from
SQLDescribeCol.Fixed string length to chars, not bytes, returned by SQLGetDiagRec.
Connector/ODBC 5.0.7 is the third BETA release.
This is an implementation and testing release, and is not designed for use within a production environment.
Functionality added or changed:
Added support for
SQLStatisticstoMYODBCShell.Improved trace/log.
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
SQLDescribeColreturning column name length in bytes rather than chars.
Connector/ODBC 5.0.6 is the second BETA release.
This is an implementation and testing release, and is not designed for use within a production environment.
Features, limitations and notes on this release
Connector/ODBC supports both
UserandSystemDSNs.Installation is provided in the form of a standard Microsoft System Installer (MSI).
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.
Connector/ODBC supports both
UserandSystemDSNs.Installation is provided in the form of a standard Microsoft System Installer (MSI).
Connector/ODBC 5.0.5 is the first BETA release.
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.
This is an implementation and testing release, and is not designed for use within a production environment.
Features, limitations and notes on this release:
The following ODBC API functions have been added in this release:
SQLBindParameterSQLBindCol
Connector/ODBC 5.0.2 was an internal implementation and testing release.
Features, limitations and notes on this release:
Connector/ODBC 5.0 is Unicode aware.
Connector/ODBC is currently limited to basic applications. ADO applications and Microsoft Office are not supported.
Connector/ODBC must be used with a Driver Manager.
The following ODBC API functions are implemented:
SQLAllocHandleSQLCloseCursorSQLColAttributeSQLColumnsSQLConnectSQLCopyDescSQLDisconnectSQLExecDirectSQLExecuteSQLFetchSQLFreeHandleSQLFreeStmtSQLGetConnectAttrSQLGetDataSQLGetDescFieldSQLGetDescRecSQLGetDiagFieldSQLGetDiagRecSQLGetEnvAttrSQLGetFunctionsSQLGetStmtAttrSQLGetTypeInfoSQLNumResultColsSQLPrepareSQLRowcountSQLTables
The following ODBC API function are implemented, but not yet support all the available attributes/options:
SQLSetConnectAttrSQLSetDescFieldSQLSetDescRecSQLSetEnvAttrSQLSetStmtAttr
Bugs fixed:
The client program hung when the network connection to the server was interrupted. (Bug#40407)
The connection string option
Enable Auto-reconnectdid 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)': [MySQL][ODBC 3.51 Driver]SSL connection error.
Functionality added or changed:
There is a new connection option,
FLAG_NO_BINARY_RESULT. When set this option disables charset 63 for columns with an emptyorg_table. (Bug#29402)
Bugs fixed:
When an
ADOConnectionis created and attempts to open a schema withADOConnection.OpenSchemaan access violation occurs inmyodbc3.dll. (Bug#30770)When
SHOW CREATE TABLEwas invoked and then the field values read, the result was truncated and unusable if the table had many rows and indexes. (Bug#24131)
Bugs fixed:
The
SQLColAttribute()function returnedSQL_TRUEwhen querying theSQL_DESC_FIXED_PREC_SCALE (SQL_COLUMN_MONEY)attribute of aDECIMALcolumn. Previously, the correct value ofSQL_FALSEwas returned; this is now again the case. (Bug#35581)The driver crashes ODBC Administrator on attempting to add a new DSN. (Bug#32057)
When accessing column data,
FLAG_COLUMN_SIZE_S32did 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
LONGBLOBorLONGTEXTcolumns includes:SQLColumnsSQLColAttributeSQLColAttributesSQLDescribeColSQLSpecialColumns(theoretically can have the same problem)
Bugs fixed:
Security Enhancement: Accessing a parameer with the type of
SQL_C_CHAR, but with a numeric type and a length of zero, the parameter marker would get stropped from the query. In addition, an SQL injection was possible if the parameter value had a nonzero length and was not numeric, the text would be inserted verbatim. (Bug#34575)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
SSLVERIFYDSN 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 would fail. (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()andSQLFetchScroll()ignored the rowset size if theDon't cache resultDSN option was set. (Bug#32420)When using the ODBC
SQL_TXN_READ_COMMITTEDoption, '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 Mac 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.inifile has the correct permissions. You should ensure that the file is writable by theadmingroup.Calling
SQLFetchorSQLFetchScrollwould return negative data lengths when usingSQL_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.Executeto create a record set based on a table without declaring the cmd option asadCmdTablewill fail when communicating with versions of MySQL 5.0.37 and higher. The issue is related to the way thatSQLSTATEis returned when ADO tries to confirm the existence of the target object. (Bug#27158)Updating a
RecordSetwhen the query involves aBLOBfield would fail. (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)
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 Mac OS X on 64-bit PowerPC because Apple does not currently provide a 64-bit PowerPC version of iODBC.
There are no installer packages for Microsoft Windows x64 Edition.
Bugs fixed:
Connector/ODBC would incorrectly return
SQL_SUCCESSwhen 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 becauseSQLAllocStmt()andSQLFreeStmt()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
DefaultDatabaseproperty of an ADOConnectionobject would fail with the errorProvider does not support this property. TheSQLGetInfo()returned the wrong value forSQL_DATABASE_NAMEwhen no database was selected. (Bug#3780)
Functionality added or changed:
The workaround for this bug was removed due to the fixes in MySQL Server 5.0.48 and 5.1.21.
This regression was introduced by Bug#10491.
Bugs fixed:
The
Englishlocale would be used when formatting floating point values. TheClocale 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)
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_S32option 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)
Bugs fixed:
When using a rowset/cursor and add a new row with a number of fields, subsequent rows with fewer fields will include the original fields from the previous row in the final
INSERTstatement. (Bug#31246)Uninitiated memory could be used when C/ODBC internally calls
SQLGetFunctions(). (Bug#31055)The wrong
SQL_DESC_LITERAL_PREFIXwould be returned for date/time types. (Bug#31009)The wrong
COLUMN_SIZEwould be returned bySQLGetTypeInfofor 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_INCREMENTcould incorrectly report that the column allowedNULLvalues. This was dur to an issue withNULLABLEandIS_NULLABLEreturn values from the call toSQLColumns(). (Bug#26108)Connector/ODBC would return the wrong the error code when the server disconnects the active connection because the configured
wait_timeouthas expired. Previously it would returnHY000. Connector/ODBC now correctly returns anSQLSTATEof08S01. (Bug#3456)
Bugs fixed:
Using
FLAG_NO_PROMPTdoesn't suppress the dialogs normally handled bySQLDriverConnect. (Bug#30840)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 returnSQL_NO_DATA_FOUNDon 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 checkbox in setup dialog for
FLAG_FIELD_LENGTH(identified asDon't Optimize Column Widthwithin the GUI dialog), which was removed from the driver in 3.51.18.
Connector/ODBC 3.51.19 fixes a specific issue with the 3.51.18 release. For a list of changes in the 3.51.18 release, see Section C.3.28, “Changes in MySQL Connector/ODBC 3.51.18 (08 August 2007)”.
Functionality added or changed:
Because of Bug#10491 in the server, character string results were sometimes incorrectly identified as
SQL_VARBINARY. Until this server bug is corrected, the driver will identify all variable-length strings asSQL_VARCHAR.
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 Mac 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
PKGpackages.Binary packages as disk images with installers are now available for Mac 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.
Functionality added or changed:
Incompatible Change: The
FLAG_DEBUGoption was removed.When connecting to a specific database when using a DSN, the system tables from the
mysqldatabase are no longer also available. Previously, tables from the mysql database (catalog) were listed asSYSTEM TABLESbySQLTables()even when a different catalog was being queried. (Bug#28662)Installed for Mac OS X has been re-instated. 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. In order 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_PTRis now supported for row bind offsets. (Bug#6741)The
TRACEandTRACEFILEDSN options have been removed. Use the ODBC driver manager trace options instead.
Bugs fixed:
When using a table with multiple
TIMESTAMPcolumns, the finalTIMESTAMPcolumn within the table definition would not be updateable. Note that there is still a limitation in MySQL server regarding multipleTIMESTAMPcolumns . (Bug#9927) (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 thesandumodifiers for the-dcommand-line option. (Bug#29964)Getting table metadata (through the
SQLColumns()would fail, returning a bad table definition to calling applications. (Bug#29888)DATETIMEcolumn types would returnFALSEin place ofSQL_SUCCESSwhen requesting the column type information. (Bug#28657)The
SQL_COLUMN_TYPE,SQL_COLUMN_DISPLAYandSQL_COLUMN_PRECISIONvalues would be returned incorrectly bySQLColumns(),SQLDescribeCol()andSQLColAttribute()when accessing character columns, especially those generated throughconcat(). The lengths returned should now conform to the ODBC specification. TheFLAG_FIELD_LENGTHoption no longer has any affect on the results returned. (Bug#27862)Obtaining the length of a column when using a character set for the connection of
utf8would result in the length being returned incorrectly. (Bug#19345)The
SQLColumns()function could return incorrect information aboutTIMESTAMPcolumns, indicating that the field was not nullable. (Bug#14414)The
SQLColumns()function could return incorrect information aboutAUTO_INCREMENTcolumns, 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 Mac 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 asSQL_BITdata wheren = 1and binary data wheren > 1.The wrong value from
SQL_DESC_LITERAL_SUFFIXwas returned for binary fields.The
SQL_DATETIME_SUBcolumn in SQLColumns() was not correctly set for date and time types.The value for
SQL_DESC_FIXED_PREC_SCALEwas not returned correctly for values in MySQL 5.0 and later.The wrong value for
SQL_DESC_TYPEwas returned for date and time types.SQLConnect()andSQLDriverConnect()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.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 Mac OS X.
Binary packages for Sun Solaris are now available as
PKGpackages.The wrong value for
DECIMAL_DIGITSinSQLColumns()was reported forFLOATandDOUBLEfields, as well as the wrong value for the scale parameter toSQLDescribeCol(), and theSQL_DESC_SCALEattribute fromSQLColAttribute().The
SQL_DATA_TYPEcolumn inSQLColumns()results did not report the correct value for date and time types.
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 Mac 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
PKGpackages.Binary packages as disk images with installers are now available for Mac 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.
Functionality added or changed:
It is now possible to specify a different character set as part of the DSN or connection string. This must be used instead of the
SET NAMESstatement. You can also configure the character set value from the GUI configuration. (Bug#9498, Bug#6667)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 allow installing the driver itself with no GUI dependencies.
Bugs fixed:
myodbc3idid not correctly format driver info, which could cause the installation to fail. (Bug#29709)Connector/ODBC crashed with Crystal Reports due to a rproblem with
SQLProcedures(). (Bug#28316)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)
Calling
SQLGetDiagFieldwithRecNumber 0, DiagIdentifier NOT 0returnedSQL_ERROR, preventing access to diagnostic header fields. (Bug#16224)Added a new DSN option (
FLAG_ZERO_DATE_TO_MIN) to retrieveXXXX-00-00dates as the minimum allowed ODBC date (XXXX-01-01). Added another option (FLAG_MIN_DATE_TO_ZERO) to mirror this but for bound parameters.FLAG_MIN_DATE_TO_ZEROonly changes0000-01-01to0000-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
BLOBfield, Connector/ODBC would crash due to a memory allocation error. (Bug#10562)The driver was using
mysql_odbc_escape_string(), which does not handle theNO_BACKSLASH_ESCAPESSQL mode. Now it usesmysql_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 are no binary packages for Microsoft Windows x64 Edition.
There is no binary package for Mac OS X on 64-bit PowerPC because Apple does not currently provide a 64-bit PowerPC version of iODBC.
Correctly return error if
SQLBindColis called with an invalid column.Fixed possible crash if
SQLBindCol()was not called beforeSQLSetPos().The Mac OS X binary packages are only provided as tarballs, there is no installer.
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.
Functionality added or changed:
Connector/ODBC now supports using SSL for communication. This is not yet exposed in the setup GUI, but must be enabled through configuration files or the DSN. (Bug#12918)
Bugs fixed:
Calls to SQLNativeSql() could cause stack corruption due to an incorrect pointer cast. (Bug#28758)
Using curors on results sets with multi-column keys could select the wrong value. (Bug#28255)
SQLForeignKeysdoes not escape_and%in the table name arguments. (Bug#27723)When using stored procedures, making a
SELECTor second stored procedure call after an initial stored procedure call, the second statement will fail. (Bug#27544)SQLTables() did not distinguish tables from views. (Bug#23031)
Data in
TEXTcolumns would fail to be read correctly. (Bug#16917)Specifying strings as parameters using the
adBSTRoradVarWChartypes, (SQL_WVARCHARandSQL_WLONGVARCHAR) would be incorrectly quoted. (Bug#16235)SQL_WVARCHAR and SQL_WLONGVARCHAR parameters were not properly quoted and escaped. (Bug#16235)
Using
BETWEENwith date values, the wrong results could be returned. (Bug#15773)When using the
Don't Cache Results(option value1048576) with Microsoft Access, the connection will fail using DAO/VisualBasic. (Bug#4657)Return values from
SQLTables()may be truncated. (Bugs #22797)
Bugs fixed:
Connector/ODBC would incorrectly claim to support
SQLProcedureColumns(by returning true when queried aboutSQLPROCEDURECOLUMNSwithSQLGetFunctions), but this functionality is not supported. (Bug#27591)An incorrect transaction isolation level may not be returned when accessing the connection attributes. (Bug#27589)
Adding a new DSN with the
myodbc3iutility under AIX would fail. (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
SQLProceduresdoes not return the database name within the returned resultset. (Bug#23033)The
SQLTransact()function did not support an empty connection handle. (Bug#21588)Using
SQLDriverConnectinstead ofSQLConnectcould 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)
Functionality added or changed:
Use of
SQL_ATTR_CONNECTION_TIMEOUTon the server has now been disabled. If you attempt to set this attribute on your connection theSQL_SUCCESS_WITH_INFOwill be returned, with an error number/string ofHYC00: Optional feature not supported. (Bug#19823)Added auto is null option to Connector/ODBC option parameters. (Bug#10910)
Added auto-reconnect option to Connector/ODBC option parameters.
Added support for the
HENVhandlers inSQLEndTran().
Bugs fixed:
On 64-bit systems, some types would be incorrectly returned. (Bug#26024)
When retrieving
TIMEcolumns, C/ODBC would incorrectly interpret the type of the string and could interpret it as aDATEtype 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
SQLBindColand binding the length to the return value fromSQL_LEN_DATA_AT_EXECfails 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)
Connector/ODBC 3.51.13 was an internal implementation and testing release.
Functionality added or changed:
N/A
Bugs fixed:
Bugs fixed:
mysql_list_dbcolumns()andinsert_fields()were retrieving all rows from a table. Fixed the queries generated by these functions to return no rows. (Bug#8198)SQLGetTypoInfo()returnedtinyblobforSQL_VARBINARYand nothing forSQL_BINARY. Fixed to returnvarbinaryforSQL_VARBINARY,binaryforSQL_BINARY, andlongblobforSQL_LONGVARBINARY. (Bug#8138)
- C.4.1. Changes in MySQL Connector/NET 6.0.4 (Not yet released beta)
- C.4.2. Changes in MySQL Connector/NET 6.0.3 (28 April 2009 beta)
- C.4.3. Changes in MySQL Connector/NET 6.0.2 (07 April 2009 beta)
- C.4.4. Changes in MySQL Connector/NET 6.0.1 (02 April 2009 beta)
- C.4.5. Changes in MySQL Connector/NET 6.0.0 (02 March 2009 alpha)
- C.4.6. Changes in MySQL Connector/NET 5.3.0 (Not yet released)
- C.4.7. Changes in MySQL Connector/NET 5.2.7 (Not yet released)
- C.4.8. Changes in MySQL Connector/NET 5.2.6 (28 April 2009)
- C.4.9. Changes in MySQL Connector/NET 5.2.5 (19 November 2008)
- C.4.10. Changes in MySQL Connector/NET 5.2.4 (13 November 2008)
- C.4.11. Changes in MySQL Connector/NET 5.2.3 (19 August 2008)
- C.4.12. Changes in MySQL Connector/NET 5.2.2 (12 May 2008)
- C.4.13. Changes in MySQL Connector/NET 5.2.1 (27 February 2008)
- C.4.14. Changes in MySQL Connector/NET 5.2.0 (11 February 2008)
- C.4.15. Changes in MySQL Connector/NET 5.1.8 (Not yet released)
- C.4.16. Changes in MySQL Connector/NET 5.1.7 (21 August 2008)
- C.4.17. Changes in MySQL Connector/NET 5.1.6 (12 May 2008)
- C.4.18. Changes in MySQL Connector/NET 5.1.5 (Not yet released)
- C.4.19. Changes in MySQL Connector/NET 5.1.4 (20 November 2007)
- C.4.20. Changes in MySQL Connector/NET 5.1.3 (21 September 2007 beta)
- C.4.21. Changes in MySQL Connector/NET 5.1.2 (18 June 2007)
- C.4.22. Changes in MySQL Connector/NET 5.1.1 (23 May 2007)
- C.4.23. Changes in MySQL Connector/NET 5.1.0 (01 May 2007)
- C.4.24. Changes in MySQL Connector/NET 5.0.10 (Not yet released)
- C.4.25. Changes in MySQL Connector/NET 5.0.9 (Not yet released)
- C.4.26. Changes in MySQL Connector/NET 5.0.8 (21 August 2007)
- C.4.27. Changes in MySQL Connector/NET 5.0.7 (18 May 2007)
- C.4.28. Changes in MySQL Connector/NET 5.0.6 (22 March 2007)
- C.4.29. Changes in MySQL Connector/NET 5.0.5 (07 March 2007)
- C.4.30. Changes in MySQL Connector/NET 5.0.4 (Not released)
- C.4.31. Changes in MySQL Connector/NET 5.0.3 (05 January 2007)
- C.4.32. Changes in MySQL Connector/NET 5.0.2 (06 November 2006)
- C.4.33. Changes in MySQL Connector/NET 5.0.1 (01 October 2006)
- C.4.34. Changes in MySQL Connector/NET 5.0.0 (08 August 2006)
- C.4.35. Changes in MySQL Connector/NET 1.0.11 (Not yet released)
- C.4.36. Changes in MySQL Connector/NET 1.0.10 (24 August 2007)
- C.4.37. Changes in MySQL Connector/NET 1.0.9 (02 February 2007)
- C.4.38. Changes in MySQL Connector/NET 1.0.8 (20 October 2006)
- C.4.39. Changes in MySQL Connector/NET 1.0.7 (21 November 2005)
- C.4.40. Changes in MySQL Connector/NET 1.0.6 (03 October 2005)
- C.4.41. Changes in MySQL Connector/NET 1.0.5 (29 August 2005)
- C.4.42. Changes in MySQL Connector/NET 1.0.4 (20 January 2005)
- C.4.43. Changes in MySQL Connector/NET 1.0.3 (12 October 2004 gamma)
- C.4.44. Changes in MySQL Connector/NET 1.0.2 (15 November 2004 gamma)
- C.4.45. Changes in MySQL Connector/NET 1.0.1 (27 October 2004 beta)
- C.4.46. Changes in MySQL Connector/NET 1.0.0 (01 September 2004)
- C.4.47. Changes in MySQL Connector/NET Version 0.9.0 (30 August 2004)
- C.4.48. Changes in MySQL Connector/NET Version 0.76
- C.4.49. Changes in MySQL Connector/NET Version 0.75
- C.4.50. Changes in MySQL Connector/NET Version 0.74
- C.4.51. Changes in MySQL Connector/NET Version 0.71
- C.4.52. Changes in MySQL Connector/NET Version 0.70
- C.4.53. Changes in MySQL Connector/NET Version 0.68
- C.4.54. Changes in MySQL Connector/NET Version 0.65
- C.4.55. Changes in MySQL Connector/NET Version 0.60
- C.4.56. Changes in MySQL Connector/NET Version 0.50
This is a new Beta development release, fixing recently discovered bugs.
Bugs fixed:
A SQL query string containing an escaped backslash caused an exception to be generated:
Index and length must refer to a location within the string. Parameter name: length at System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy) at MySql.Data.MySqlClient.MySqlTokenizer.NextParameter() at MySql.Data.MySqlClient.Statement.InternalBindParameters(String sql, MySqlParameterCollection parameters, MySqlPacket packet) at MySql.Data.MySqlClient.Statement.BindParameters() at MySql.Data.MySqlClient.PreparableStatement.Execute() at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
The Microsoft Visual Studio solution file
MySQL-VS2005.slnwas invalid. Several projects could not be loaded and thus it was not possible to build Connector/NET from source. (Bug#44822)The DataReader in Connector/NET 6.0.3 considered a BINARY(16) field as a GUID with a length of 16. (Bug#44507)
When creating a new DataSet the following error was generated:
Failed to open a connection to database. Cannot load type with name 'MySQL.Data.VisualStudio.StoredProcedureColumnEnumerator'
The Connector/NET MySQLRoleProvider reported that there were no roles, even when roles existed. (Bug#44414)
This is a new Beta development release, fixing recently discovered bugs.
Functionality added or changed:
The
MySqlTokenizerfailed to split fieldnames from values if they were not separated by a space. This also happened if the string contained certain characters. As a resultMySqlCommand.ExecuteNonQueryraised an index out of range exception.The resulting errors are illustrated by the following examples. Note, the example statements do not have delimiting spaces around the
=operator.INSERT INTO anytable SET Text='test--test';
The tokenizer incorrectly interpreted the value as containing a comment.
UPDATE anytable SET Project='123-456',Text='Can you explain this ?',Duration=15 WHERE ID=4711;'
A
MySqlExceptionwas generated, as the?in the value was interpreted by the tokenizer as a parameter sign. The error message generated was:Fatal error encountered during command execution. EXCEPTION: MySqlException - Parameter '?'' must be defined.
Bugs fixed:
MySQL.Datawas not displayed as a Reference inside Microsoft Visual Studio 2008 Professional.When a new C# project was created in Microsoft Visual Studio 2008 Professional,
MySQL.Datawas not displayed when , was selected. (Bug#44141)Column types for
SchemaProviderandISSchemaProviderdid not match.When the source code in
SchemaProvider.csandISSchemaProvider.cswere compared it was apparent that they were not using the same column types. The base provider used SQL such asSHOW CREATE TABLE, whileISSchemaProviderused the schema information tables. Column types used by the base class wereINT64and the column types used byISSchemaProviderwereUNSIGNED. (Bug#44123)
This is a new Beta development release, fixing recently discovered bugs.
Bugs fixed:
Connector/Net 6.0.1 did not load in Microsoft Visual Studio 2008 and Visual Studio 2005 Pro.
The following error message was generated:
.NET Framework Data Provider for MySQL: The data provider object factory service was not found.
This is a new Beta development release, fixing recently discovered bugs.
Bugs fixed:
An insert and update error was generated by the decimal data type in the Entity Framework, when a German collation was used. (Bug#43574)
Generating an Entity Data Model (EDM) schema with a table containing columns with data types
MEDIUMTEXTandLONGTEXTgenerated a runtime error message “Max value too long or too short for Int32”. (Bug#43480)
This is a new Alpha development release.
Bugs fixed:
A null reference exception was generated when
MySqlConnection.ClearPool(connection)was called. (Bug#42801)
Bugs fixed:
The Web Provider did not work at all on a remote host, and did not create a database when using
autogenerateschema="true". (Bug#39072)The Connector/NET installer program ended prematurely without reporting the specific error. (Bug#39019)
When called with an incorrect password the
MembershipProvider.GetPassword()method threw aMySQLExceptioninstead of aMembershipPasswordException. (Bug#38939)Possible overflow in
MySqlPacket.ReadLong(). (Bug#36997)The
TokenizeSqlmethod was adding query overhead and causing high CPU utilization for larger queries. (Bug#36836)
Bugs fixed:
The Microsoft Visual Studio solution file
MySQL-VS2005.slnwas invalid. Several projects could not be loaded and thus it was not possible to build Connector/NET from source. (Bug#44822)The Connector/NET MySQLRoleProvider reported that there were no roles, even when roles existed. (Bug#44414)
When a TableAdapter was created on a DataSet, it was not possible to use a stored procedure with variables. The following error was generated:
The method or operation is not implemented
Functionality added or changed:
A new connection string option has been added:
use affected rows. Whentruethe connection will report changed rows instead of found rows. (Bug#44194)
Bugs fixed:
Calling
GetSchema()onIndexesorIndexColumnsfailed where index or column names were restricted.In
SchemaProvider.cs, methodsGetIndexes()andGetIndexColumns()passed their restrictions directly toGetTables(). This only worked if the restrictions were no more specific thanschemaNameandtableName. IfIndexNamewas given, this was passed toGetTables()where it was treated asTableType. As a result no tables were returned, unless the index name happened to beBASE TABLEorVIEW. This meant that both methods failed to return any rows. (Bug#43991)GetSchema("MetaDataCollections")should have returned a table with a column named “NumberOfRestrictions” not “NumberOfRestriction”.This can be confirmed by referencing the Microsoft Documentation. (Bug#43990)
Requests sent to the Connector/NET role provider to remove a user from a role failed. The query log showed the query was correctly executed within a transaction which was immediately rolled back. The rollback was caused by a missing call to the
Completemethod of the transaction. (Bug#43553)When using
MySqlBulkLoader.Load(), the text file is opened byNativeDriver.SendFileToServer. If it encountered a problem opening the file as a stream, an exception was generated and caught. An attempt to clean up resources was then made in thefinally{}clause by callingfs.Close(), but since the stream was never successfully opened, this was an attempt to execute a method of a null reference. (Bug#43332)A null reference exception was generated when
MySqlConnection.ClearPool(connection)was called. (Bug#42801)MySQLMembershipProvider.ValidateUseronly used theuserIdto validate. However, it should also use theapplicationIdto perform the validation correctly.The generated query was, for example:
SELECT Password, PasswordKey, PasswordFormat, IsApproved, Islockedout FROM my_aspnet_Membership WHERE userId=13
Note that
applicationIdis not used. (Bug#42574)There was an error in the
ProfileProviderclass in theprivate ProfileInfoCollection GetProfiles()function. The column of the final table was named “lastUpdatdDate” ('e' is missing) instead of the correct “lastUpdatedDate”. (Bug#41654)The
GetGuid()method ofMySqlDataReaderdid not treatBINARY(16)column data as a GUID. When operating on such a column aFormatExceptionexception was generated. (Bug#41452)When ASP.NET membership was configured to not require password question and answer using
requiresQuestionAndAnswer="false", aSqlNullValueExceptionwas generated when usingMembershipUser.ResetPassword()to reset the user password. (Bug#41408)If a
Stored Procedurecontained spaces in its parameter list, and was then called from Connector/NET, an exception was generated. However, the sameStored Procedurecalled from the MySQL Query Analyzer or the MySQL Client worked correctly.The exception generated was:
Parameter '0' not found in the collection.
The
DATETIMEformat contained an erroneous space. (Bug#41021)When
MySql.Web.Profile.MySQLProfileProviderwas configured, it was not possible to assign a name other than the default nameMySQLProfileProvider.If the name
SCC_MySQLProfileProviderwas assigned, an exception was generated when attempting to usePage.Context.Profile['custom prop'].The exception generated was:
The profile default provider was not found.
Note that the exception stated: 'the profile default provider...', even though a different name was explicitly requested. (Bug#40871)
When
ExecuteNonQuerywas called with a command type ofStored Procedureit worked for one user but resulted in a hang for another user with the same database permissions.However, if
CALLwas used in the command text andExecuteNonQuerywas used with a command type ofText, the call worked for both users. (Bug#40139)
Bugs fixed:
Visual Studio 2008 displayed the following error three times on start-up:
"Package Load Failure Package 'MySql.Data.VisualStudio.MySqlDataProviderPackage, MySql.VisualStudio, Version=5.2.4, Culture=neutral, PublicKeyTopen=null' has failed to load properly (GUID = {79A115C9-B133-4891-9E7B-242509DAD272}). Please contact the package vendor for assistance. Application restart is recommended, due to possible environment corruption. Would you like to disable loading the package in the future? You may use 'devenve/resetskippkgs' to re-enable package loading."
Bugs fixed:
MySqlDataReaderdid not feature aGetSBytemethod. (Bug#40571)When working with stored procedures Connector/NET generated an exception
Unknown "table parameters" in information_schema. (Bug#40382)GetDefaultCollationandGetMaxLengthwere not thread safe. These functions called the database to get a set of parameters and cached them in two static dictionaries in the functionInitCollections. However, if many threads called them they would try to insert the same keys in the collections resulting in duplicate key exceptions. (Bug#40231)If connection pooling was not set explicitly in the connection string, Connector/NET added “;Pooling=False” to the end of the connection string when
MySqlCommand.ExecuteReader()was called.If connection pooling was explicitly set in the connection string, when
MySqlConnection.Open()was called it converted “Pooling=True” to “pooling=True”.If
MySqlCommand.ExecuteReader()was subsequently called, it concatenated “;Pooling=False” to the end of the connection string. The resulting connection string was thus terminated with “pooling=True;Pooling=False”. This disabled connection pooling completely. (Bug#40091)The connection string option
Functions Return Stringdid not set the correct encoding for the result string. Even though the connection string optionFunctions Return String=true;is set, the result ofSELECT DES_DECRYPT()contained “??” instead of the correct national character symbols. (Bug#40076)If, when using the
MySqlTransactiontransaction object, an exception was thrown, the transaction object was not disposed of and the transaction was not rolled back. (Bug#39817)After the
ConnectionStringproperty was initialized via the public setter ofDbConnectionStringBuilder, theGetConnectionStringmethod ofMySqlConnectionStringBuilderincorrectly returnednullwhentruewas assigned to theincludePassparameter. (Bug#39728)When using
ProfileProvider, attempting to update a previously saved property failed. (Bug#39330)Reading a negative time value greater than -01:00:00 returned the absolute value of the original time value. (Bug#39294)
Inserting a negative time value (negative
TimeSpan) into aTimecolumn through the use ofMySqlParametercausedMySqlExceptionto be thrown. (Bug#39275)When a data connection was created in the server explorer of Visual Studio 2008 Team, an error was generated when trying to expand stored procedures that had parameters.
Also, if TableAdapter was right-clicked and then , , selected, if you then attempted to select a stored procedure, the window would close and no error message would be displayed. (Bug#39252)
The Web Provider did not work at all on a remote host, and did not create a database when using
autogenerateschema="true". (Bug#39072)Connector/NET called hashed password methods not supported in Mono 2.0 Preview 2. (Bug#38895)
Functionality added or changed:
Error string was returned after a 28000 second
wait_timeout. This has been changed to generate aConnectionState.Closedevent. (Bug#38119)Changed how the procedure schema collection is retrieved. If the connection string contains “
use procedure bodies=true” then aSELECTis performed on themysql.proctable directly, as this is up to 50 times faster than the current Information Schema implementation. If the connection string contains “use procedure bodies=false”, then the Information Schema collection is queried. (Bug#36694)Changed how the procedure schema collection is retrieved. If
use procedure bodies=truethen themysql.proctable is selected directly as this is up to 50 times faster than the currentinformation_schemaimplementation. Ifuse procedure bodies=false, then theinformation_schemacollection is queried. (Bug#36694)String escaping functionality has been moved from the
MySqlStringclass to theMySqlHelperclass, where it can be accessed by theEscapeStringmethod. (Bug#36205)
Bugs fixed:
The
GetOrdinal()method failed to return the ordinal if the column name string contained an accent. (Bug#38721)Connector/Net uninstaller did not clean up all installed files. (Bug#38534)
There was a short circuit evaluation error in the
MySqlCommand.CheckState()method. When the statementconnection == nullwas true aNullReferenceExceptionwas thrown and not the expectedInvalidOperationException. (Bug#38276)The provider did not silently create the user if the user did not exist. (Bug#38243)
Executing a command that resulted in a fatal exception did not close the connection. (Bug#37991)
When a prepared insert query is run that contains an
UNSIGNED TINYINTin the parameter list, the complete query and data that should be inserted is corrupted and no error is thrown. (Bug#37968)In a .NET application MySQL Connector/NET modifies the connection string so that it contains several occurrences of the same option with different values. This is illustrated by the example that follows.
The original connection string:
host=localhost;database=test;uid=*****;pwd=*****; connect timeout=25; auto enlist=false;pooling=false;
The connection string after after closing
MySqlDataReader:host=localhost;database=test;uid=*****;pwd=*****; connect timeout=25;auto enlist=false;pooling=false; Allow User Variables=True;Allow User Variables=False; Allow User Variables=True;Allow User Variables=False;
Unnecessary network traffic was generated for the normal case where the web provider schema was up to date. (Bug#37469)
MySqlReader.GetOrdinal()performance enhancements break existing functionality. (Bug#37239)The
autogenerateschemaoption produced tables with incorrect collations. (Bug#36444)GetSchemadid not work correctly when querying for a collection, if using a non-English locale. (Bug#35459)When reading back a stored double or single value using the .NET provider, the value had less precision than the one stored. (Bug#33322)
Using the MySQL Visual Studio plugin and a MySQL 4.1 server, certain field types (
ENUM) would not be identified correctly. Also, when looking for tables, the plugin would list all tables matching a wildcard pattern of the database name supplied in the connection string, instead of only tables within the specified database. (Bug#30603)
Bugs fixed:
Product documentation incorrectly stated '?' is the preferred parameter marker. (Bug#37349)
An incorrect value for a bit field would returned in a multi-row query if a preceding value for the field returned
NULL. (Bug#36313)Tables with
GEOMETRYfield types would return an unknown datatype exception. (Bug#36081)When using the
MySQLProfileProvider, setting profile details and then reading back saved data would result in the default values being returned instead of the updated values. (Bug#36000)When creating a connection, setting the
ConnectionStringproperty ofMySqlConnectiontoNULLwould throw an exception. (Bug#35619)The
DbCommandBuilder.QuoteIdentifermethod was not implemented. (Bug#35492)When using encrypted passwords, the
GetPassword()function would return the wrong string. (Bug#35336)An error would be raised when calling
GetPassword()with aNULLvalue. (Bug#35332)When retreiving data where a field has been identified as containing a GUID value, the incorrect value would be returned when a previous row contained a
NULLvalue for that field. (Bug#35041)Using the
TableAdapter Wizardwould fail when generating commands that used stored procedures due to the change in supported parameter characters. (Bug#34941)When creating a new stored procedured, the new parameter code which allows the use of the
@symbol would interfere with the specification of aDEFINER. (Bug#34940)When using
SqlDataSourceto open a connection, the connection would not automatically be closed when access had completed. (Bug#34460)There was a high level of contention in the connection pooling code that could lead to delays when opening connections and submitting queries. The connection pooling code has been modified to try and limit the effects of the contention issue. (Bug#34001)
Using the
TableAdaptorwizard in combination with a suitableSELECTstatement, only the associatedINSERTstatement would also be created, rather than the requiredDELETEandUPDATEstatements. (Bug#31338)Fixed problem in datagrid code related to creating a new table. This problem may have been introduced with .NET 2.0 SP1.
Fixed profile provider that would throw an exception if you were updating a profile that already existed.
Bugs fixed:
When using the provider to generate or update users and passwords, the password checking algorithm would not validate the password strength or requirements correctly. (Bug#34792)
When executing statements that used stored procedures and functions, the new parameter code could fail to identify the correct parameter format. (Bug#34699)
The installer would fail to the DDEX provider binary if the Visual Studio 2005 component was not selected. The result would lead to Connector/NET not loading properly when using the interface to a MySQL server within Visual Studio. (Bug#34674)
A number issues were identified in the case, connection and scema areas of the code for
MembershipProvider,RoleProvider,ProfileProvider. (Bug#34495)When using web providers, the Connector/NET would check the schema and cache the application id, even when the connection string had been set. The effect would be to break the memvership provider list. (Bug#34451)
Attempting to use an isolation level other than the default with a transaction scope would use the default isolation level. (Bug#34448)
When altering a stored procedure within Visual Studio, the parameters to the procedure could be lost. (Bug#34359)
A race condition could occur within the procedure cache resulting the cache contents overflowing beyond the configured cache size. (Bug#34338)
Fixed problem with Visual Studio 2008 integration that caused pop-up menus on server explorer nodes to not function
The provider code has been updated to fix a number of outstanding issues.
Functionality added or changed:
Performing
GetValue()on a fieldTINYINT(1)returned aBOOLEAN. While not a bug, this caused problems in software that expected anINTto be returned. A new connection string optionTreat Tiny As Booleanhas been added with a default value oftrue. If set tofalsethe provider will treatTINYINT(1)asINT. (Bug#34052)Added support for
DbDataAdapterUpdateBatchSize. Batching is fully supported including collapsing inserts down into the multi-value form if possible.DDEX provider now works under Visual Studio 2008 beta 2.
Added ClearPool and ClearAllPools features.
Bugs fixed:
Some speed improvements have been implemented in the
TokenizeSqlprocess used to identify elements of SQL statements. (Bug#34220)When accessing tables from different databases within the same
TransactionScope, the same user/password combination would be used for each database connection. Connector/NET does not handle multiple connections within the same transaction scope. An error is now returned if you attempt this process, instead of using the incorrect authorization information. (Bug#34204)The status of connections reported through the state change handler was not being updated correctly. (Bug#34082)
Incorporated some connection string cache optimizations sent to us by Maxim Mass. (Bug#34000)
In an open connection where the server had disconnected unexpectedly, the status information of the connection would not be updated properly. (Bug#33909)
Data cached from the connection string could return invalid information because the internal routines were not using case-sensitive semantics. This lead to updated connection string options not being recognized if they were of a different case than the existing cached values. (Bug#31433)
Column name metadata was not using the character set as deifned within the connection string being used. (Bug#31185)
Memory usage could increase and decrease significantly when updating or inserting a large number of rows. (Bug#31090)
Commands executed from within the state change handeler would fail with a
NULLexception. (Bug#30964)When running a stored procedure multiple times on the same connection, the memory usage could increase indefinitely. (Bug#30116)
Using compression in the MySQL connection with Connector/NET would be slower than using native (uncompressed) communication. (Bug#27865)
The
MySqlDbType.Datetimehas been replaced withMySqlDbType.DateTime. The old format has been obsoleted. (Bug#26344)
Bugs fixed:
Calling
GetSchema()onIndexesorIndexColumnsfailed where index or column names were restricted.In
SchemaProvider.cs, methodsGetIndexes()andGetIndexColumns()passed their restrictions directly toGetTables(). This only worked if the restrictions were no more specific thanschemaNameandtableName. IfIndexNamewas given, this was passed toGetTables()where it was treated asTableType. As a result no tables were returned, unless the index name happened to beBASE TABLEorVIEW. This meant that both methods failed to return any rows. (Bug#43991)The
DATETIMEformat contained an erroneous space. (Bug#41021)If connection pooling was not set explicitly in the connection string, Connector/NET added “;Pooling=False” to the end of the connection string when
MySqlCommand.ExecuteReader()was called.If connection pooling was explicitly set in the connection string, when
MySqlConnection.Open()was called it converted “Pooling=True” to “pooling=True”.If
MySqlCommand.ExecuteReader()was subsequently called, it concatenated “;Pooling=False” to the end of the connection string. The resulting connection string was thus terminated with “pooling=True;Pooling=False”. This disabled connection pooling completely. (Bug#40091)If, when using the
MySqlTransactiontransaction object, an exception was thrown, the transaction object was not disposed of and the transaction was not rolled back. (Bug#39817)When a prepared insert query is run that contains an
UNSIGNED TINYINTin the parameter list, the complete query and data that should be inserted is corrupted and no error is thrown. (Bug#37968)
Bugs fixed:
There was a short circuit evaluation error in the
MySqlCommand.CheckState()method. When the statementconnection == nullwas true aNullReferenceExceptionwas thrown and not the expectedInvalidOperationException. (Bug#38276)Executing a command that resulted in a fatal exception did not close the connection. (Bug#37991)
In a .NET application MySQL Connector/NET modifies the connection string so that it contains several occurrences of the same option with different values. This is illustrated by the example that follows.
The original connection string:
host=localhost;database=test;uid=*****;pwd=*****; connect timeout=25; auto enlist=false;pooling=false;
The connection string after after closing
MySqlDataReader:host=localhost;database=test;uid=*****;pwd=*****; connect timeout=25;auto enlist=false;pooling=false; Allow User Variables=True;Allow User Variables=False; Allow User Variables=True;Allow User Variables=False;
As
MySqlDbType.DateTimeis not available inVB.Netthe warning The datetime enum value is obsolete was always shown during compilation. (Bug#37406)An unknown
MySqlErrorCodewas encountered when opening a connection with an incorrect password. (Bug#37398)Documentation incorrectly stated that “the DataColumn class in .NET 1.0 and 1.1 does not allow columns with type of UInt16, UInt32, or UInt64 to be autoincrement columns”. (Bug#37350)
SemaphoreFullExceptionis generated when application is closed. (Bug#36688)GetSchemadid not work correctly when querying for a collection, if using a non-English locale. (Bug#35459)When reading back a stored double or single value using the .NET provider, the value had less precision than the one stored. (Bug#33322)
Using the MySQL Visual Studio plugin and a MySQL 4.1 server, certain field types (
ENUM) would not be identified correctly. Also, when looking for tables, the plugin would list all tables matching a wildcard pattern of the database name supplied in the connection string, instead of only tables within the specified database. (Bug#30603)
Bugs fixed:
When creating a connection pool, specifying an invalid IP address will cause the entire application to crash, instead of providing an exception. (Bug#36432)
An incorrect value for a bit field would returned in a multi-row query if a preceding value for the field returned
NULL. (Bug#36313)The
MembershipProviderwill raise an exception when the connection string is configured withenablePasswordRetrival = trueandRequireQuestionAndAnswer = false. (Bug#36159)When calling
GetNumberOfUsersOnlinean exception is raised on the submitted query due to a missing parameter. (Bug#36157)Tables with
GEOMETRYfield types would return an unknown datatype exception. (Bug#36081)When creating a connection, setting the
ConnectionStringproperty ofMySqlConnectiontoNULLwould throw an exception. (Bug#35619)The
DbCommandBuilder.QuoteIdentifermethod was not implemented. (Bug#35492)When using
SqlDataSourceto open a connection, the connection would not automatically be closed when access had completed. (Bug#34460)Attempting to use an isolation level other than the default with a transaction scope would use the default isolation level. (Bug#34448)
When altering a stored procedure within Visual Studio, the parameters to the procedure could be lost. (Bug#34359)
A race condition could occur within the procedure cache resulting the cache contents overflowing beyond the configured cache size. (Bug#34338)
Using the
TableAdaptorwizard in combination with a suitableSELECTstatement, only the associatedINSERTstatement would also be created, rather than the requiredDELETEandUPDATEstatements. (Bug#31338)
Functionality added or changed:
Performing
GetValue()on a fieldTINYINT(1)returned aBOOLEAN. While not a bug, this caused problems in software that expected anINTto be returned. A new connection string optionTreat Tiny As Booleanhas been added with a default value oftrue. If set tofalsethe provider will treatTINYINT(1)asINT. (Bug#34052)
Bugs fixed:
Some speed improvements have been implemented in the
TokenizeSqlprocess used to identify elements of SQL statements. (Bug#34220)When accessing tables from different databases within the same
TransactionScope, the same user/password combination would be used for each database connection. Connector/NET does not handle multiple connections within the same transaction scope. An error is now returned if you attempt this process, instead of using the incorrect authorization information. (Bug#34204)The status of connections reported through the state change handler was not being updated correctly. (Bug#34082)
Incorporated some connection string cache optimizations sent to us by Maxim Mass. (Bug#34000)
In an open connection where the server had disconnected unexpectedly, the status information of the connection would not be updated properly. (Bug#33909)
Connector/NET would fail to compile properly with nant. (Bug#33508)
Problem with membership provider would mean that
FindUserByEmailwould fail with aMySqlExceptionbecause it was trying to add a second parameter with the same name as the first. (Bug#33347)Using compression in the MySQL connection with Connector/NET would be slower than using native (uncompressed) communication. (Bug#27865)
Bugs fixed:
Setting the size of a string parameter after the value could cause an exception. (Bug#32094)
Creation of parameter objects with noninput direction using a constructor would fail. This was cause by some old legacy code preventing their use. (Bug#32093)
A date string could be returned incorrectly by
MySqlDataTime.ToString()when the date returned by MySQL was0000-00-00 00:00:00. (Bug#32010)A syntax error in a set of batch statements could leave the data adapter in a state that appears hung. (Bug#31930)
Installing over a failed uninstall of a previous version could result in multiple clients being registered in the
machine.config. This would prevent certain aspects of the MySQL connection within Visual Studio to work properly. (Bug#31731)Connector/NET would incorrectly report success when enlisting in a distributed transaction, although distributed transactions are not supported. (Bug#31703)
Data cached from the connection string could return invalid information because the internal routines were not using case-sensitive semantics. This lead to updated connection string options not being recognized if they were of a different case than the existing cached values. (Bug#31433)
Trying to use a connection that was not open could return an ambiguous and misleading error message. (Bug#31262)
Column name metadata was not using the character set as deifned within the connection string being used. (Bug#31185)
Memory usage could increase and decrease significantly when updating or inserting a large number of rows. (Bug#31090)
Commands executed from within the state change handeler would fail with a
NULLexception. (Bug#30964)Extracting data through XML functions within a query returns the data as
System.Byte[]. This was due to Connector/NET incorrectly identifyingBLOBfields as binary, rather than text. (Bug#30233)When running a stored procedure multiple times on the same connection, the memory usage could increase indefinitely. (Bug#30116)
Column types with only 1-bit (such as
BOOLEANandTINYINT(1)were not returned as boolean fields. (Bug#27959)When accessing certain statements, the command would timeout before the command completed. Because this cannot always be controlled through the individual command timeout options, a
default command timeouthas been added to the connection string options. (Bug#27958)The server error code was not updated in the
Data[]hash, which preventedDbProviderFactoryusers from accessing the server error code. (Bug#27436)The
MySqlDbType.Datetimehas been replaced withMySqlDbType.DateTime. The old format has been obsoleted. (Bug#26344)Changing the connection string of a connection to one that changes the parameter marker after the connection had been assigned to a command but before the connection is opened could cause parameters to not be found. (Bug#13991)
This is a new Beta development release, fixing recently discovered bugs.
Bugs fixed:
An incorrect
ConstraintExceptioncould be raised on anINSERTwhen adding rows to a table with a multiple-column unique key index. (Bug#30204)A
DATEfield would be updated with a date/time value, causing aMySqlDataAdapter.Update()exception. (Bug#30077)The Saudi Hijri calendar was not supported. (Bug#29931)
Calling
SHOW CREATE PROCEDUREfor routines with a hyphen in the catalog name produced a syntax error. (Bug#29526)Connecting to a MySQL server earlier than version 4.1 would raise a
NullException. (Bug#29476)The availability of a MySQL server would not be reset when using pooled connections (
pooling=true). This would lead to the server being reported as unavailable, even if the server become available while the application was still running. (Bug#29409)A
FormatExceptionerror would be raised if a parameter had not been found, instead ofResources.ParameterMustBeDefined. (Bug#29312)An exception would be thrown when using the Manage Role functionality within the web administrator to assign a role to a user. (Bug#29236)
Using the membership/role providers when
validationKeyordecryptionKeyparameters are set toAutoGenerate, an exception would be raised when accessing the corresponding values. (Bug#29235)Certain operations would not check the
UsageAdvisorsetting, causing log messages from the Usage Advisor even when it was disabled. (Bug#29124)Using the same connection string multiple times would result in
Database=appearing multiple times in the resulting string. (Bug#29123)dbnameVisual Studio Plugin: Adding a new query based on a stored procedure that uses the
SELECTstatement would terminate the query/TableAdapter wizard. (Bug#29098)Using
TransactionScopewould cause anInvalidOperationException. (Bug#28709)
This is a new Beta development release, fixing recently discovered bugs.
Bugs fixed:
Log messages would be truncated to 300 bytes. (Bug#28706)
Creating a user would fail due to the application name being set incorrectly. (Bug#28648)
Visual Studio Plugin: Adding a new query based on a stored procedure that used a
UPDATE,INSERTorDELETEstatement would terminate the query/TableAdapter wizard. (Bug#28536)Visual Studio Plugin: Query Builder would fail to show
TINYTEXTcolumns, and any columns listed after aTINYTEXTcolumn correctly. (Bug#28437)Accessing the results from a large query when using data compression in the connection would fail to return all the data. (Bug#28204)
Visual Studio Plugin: Update commands would not be generated correctly when using the TableAdapter wizard. (Bug#26347)
Bugs fixed:
Running the statement
SHOW PROCESSLISTwould return columns as byte arrays instead of native columns. (Bug#28448)Installation of the Connector/NET on Windows would fail if VisualStudio had not already been installed. (Bug#28260)
Connector/NET would look for the wrong table when executing
User.IsRole().(Bug#28251)Building a connection string within a tight loop would show slow performance. (Bug#28167)
The
UNSIGNEDflag for parameters in a stored procedure would be ignored when usingMySqlCommandBuilderto obtain the parameter information. (Bug#27679)Using
MySQLDataAdapter.FillSchema()on a stored procedure would raise an exception:Invalid attempt to access a field before calling Read(). (Bug#27668)DATETIMEfields from versions of MySQL bgefore 4.1 would be incorrectly parsed, resulting in a exception. (Bug#23342)Fixed password property on
MySqlConnectionStringBuilderto usePasswordPropertyTextattribute. This causes dots to show instead of actual password text.
Functionality added or changed:
Now compiles for .NET CF 2.0.
Rewrote stored procedure parsing code using a new SQL tokenizer. Really nasty procedures including nested comments are now supported.
GetSchema will now report objects relative to the currently selected database. What this means is that passing in null as a database restriction will report objects on the currently selected database only.
Added Membership and Role provider contributed by Sean Wright (thanks!).
Bugs fixed:
If, when using the
MySqlTransactiontransaction object, an exception was thrown, the transaction object was not disposed of and the transaction was not rolled back. (Bug#39817)Executing a command that resulted in a fatal exception did not close the connection. (Bug#37991)
When a prepared insert query is run that contains an
UNSIGNED TINYINTin the parameter list, the complete query and data that should be inserted is corrupted and no error is thrown. (Bug#37968)In a .NET application MySQL Connector/NET modifies the connection string so that it contains several occurrences of the same option with different values. This is illustrated by the example that follows.
The original connection string:
host=localhost;database=test;uid=*****;pwd=*****; connect timeout=25; auto enlist=false;pooling=false;
The connection string after after closing
MySqlDataReader:host=localhost;database=test;uid=*****;pwd=*****; connect timeout=25;auto enlist=false;pooling=false; Allow User Variables=True;Allow User Variables=False; Allow User Variables=True;Allow User Variables=False;
When creating a connection pool, specifying an invalid IP address will cause the entire application to crash, instead of providing an exception. (Bug#36432)
GetSchemadid not work correctly when querying for a collection, if using a non-English locale. (Bug#35459)When reading back a stored double or single value using the .NET provider, the value had less precision than the one stored. (Bug#33322)
Bugs fixed:
The
DbCommandBuilder.QuoteIdentifermethod was not implemented. (Bug#35492)Setting the size of a string parameter after the value could cause an exception. (Bug#32094)
Creation of parameter objects with noninput direction using a constructor would fail. This was cause by some old legacy code preventing their use. (Bug#32093)
A date string could be returned incorrectly by
MySqlDataTime.ToString()when the date returned by MySQL was0000-00-00 00:00:00. (Bug#32010)A syntax error in a set of batch statements could leave the data adapter in a state that appears hung. (Bug#31930)
Installing over a failed uninstall of a previous version could result in multiple clients being registered in the
machine.config. This would prevent certain aspects of the MySQL connection within Visual Studio to work properly. (Bug#31731)Data cached from the connection string could return invalid information because the internal routines were not using case-sensitive semantics. This lead to updated connection string options not being recognized if they were of a different case than the existing cached values. (Bug#31433)
Column name metadata was not using the character set as deifned within the connection string being used. (Bug#31185)
Memory usage could increase and decrease significantly when updating or inserting a large number of rows. (Bug#31090)
Commands executed from within the state change handeler would fail with a
NULLexception. (Bug#30964)When running a stored procedure multiple times on the same connection, the memory usage could increase indefinitely. (Bug#30116)
The server error code was not updated in the
Data[]hash, which preventedDbProviderFactoryusers from accessing the server error code. (Bug#27436)Changing the connection string of a connection to one that changes the parameter marker after the connection had been assigned to a command but before the connection is opened could cause parameters to not be found. (Bug#13991)
Note
This version introduces a new installer technology.
Bugs fixed:
Extracting data through XML functions within a query returns the data as
System.Byte[]. This was due to Connector/NET incorrectly identifyingBLOBfields as binary, rather than text. (Bug#30233)An incorrect
ConstraintExceptioncould be raised on anINSERTwhen adding rows to a table with a multiple-column unique key index. (Bug#30204)A
DATEfield would be updated with a date/time value, causing aMySqlDataAdapter.Update()exception. (Bug#30077)Fixed bug where Connector/Net was hand building some date time patterns rather than using the patterns provided under CultureInfo. This caused problems with some calendars that do not support the same ranges as Gregorian.. (Bug#29931)
Calling
SHOW CREATE PROCEDUREfor routines with a hyphen in the catalog name produced a syntax error. (Bug#29526)The availability of a MySQL server would not be reset when using pooled connections (
pooling=true). This would lead to the server being reported as unavailable, even if the server become available while the application was still running. (Bug#29409)A
FormatExceptionerror would be raised if a parameter had not been found, instead ofResources.ParameterMustBeDefined. (Bug#29312)Certain operations would not check the
UsageAdvisorsetting, causing log messages from the Usage Advisor even when it was disabled. (Bug#29124)Using the same connection string multiple times would result in
Database=appearing multiple times in the resulting string. (Bug#29123)dbnameLog messages would be truncated to 300 bytes. (Bug#28706)
Accessing the results from a large query when using data compression in the connection will fail to return all the data. (Bug#28204)
Fixed problem where
MySqlConnection.BeginTransactionchecked the drivers status var before checking if the connection was open. The result was that the driver could report an invalid condition on a previously opened connection.Fixed problem where we were not closing prepared statement handles when commands are disposed. This could lead to using up all prepared statement handles on the server.
Fixed the database schema collection so that it works on servers that are not properly respecting the
lower_case_table_namessetting.Fixed problem where any attempt to not read all the records returned from a select where each row of the select is greater than 1024 bytes would hang the driver.
Fixed problem where a command timing out just after it actually finished would cause an exception to be thrown on the command timeout thread which would then be seen as an unhandled exception.
Fixed some serious issues with command timeout and cancel that could present as exceptions about thread ownership. The issue was that not all queries cancel the same. Some produce resultsets while others don't. ExecuteReader had to be changed to check for this.
Bugs fixed:
Running the statement
SHOW PROCESSLISTwould return columns as byte arrays instead of native columns. (Bug#28448)Building a connection string within a tight loop would show slow performance. (Bug#28167)
Using logging (with the
logging=trueparameter to the connection string) would not generate a log file. (Bug#27765)The
UNSIGNEDflag for parameters in a stored procedure would be ignored when usingMySqlCommandBuilderto obtain the parameter information. (Bug#27679)Using
MySQLDataAdapter.FillSchema()on a stored procedure would raise an exception:Invalid attempt to access a field before calling Read(). (Bug#27668)If you close an open connection with an active transaction, the transaction is not automatically rolled back. (Bug#27289)
When cloning an open
MySqlClient.MySqlConnectionwith thePersist Security Info=Falseoption set, the cloned connection is not usable because the security information has not been cloned. (Bug#27269)Enlisting a null transaction would affect the current connection object, such that further enlistment operations to the transaction are not possible. (Bug#26754)
Attempting to change the
Connection Protocolproperty within aPropertyGridcontrol would raise an exception. (Bug#26472)The
charactersetproperty would not be identified during a connection (also affected Visual Studion Plugin). (Bug#26147, Bug#27240)The
CreateFormatcolumn of theDataTypescollection did not contain a format specification for creating a new column type. (Bug#25947)DATETIMEfields from versions of MySQL bgefore 4.1 would be incorrectly parsed, resulting in a exception. (Bug#23342)
Bugs fixed:
Publisher listed in "Add/Remove Programs" is not consistent with other MySQL products. (Bug#27253)
DESCRIBE ....SQL statement returns byte arrays rather than data on MySQL versions older than 4.1.15. (Bug#27221)cmd.Parameters.RemoveAt("Id")will cause an error if the last item is requested. (Bug#27187)MySqlParameterCollectionand parameters added withInsertmethod can not be retrieved later usingParameterName. (Bug#27135)Exception thrown when using large values in
UInt64parameters. (Bug#27093)MySQL Visual Studio Plugin 1.1.2 does not work with Connector/Net 5.0.5. (Bug#26960)
Functionality added or changed:
Reverted behavior that required parameter names to start with the parameter marker. We apologize for this back and forth but we mistakenly changed the behavior to not match what
SqlClientsupports. We now support using either syntax for adding parameters however we also respond exactly likeSqlClientin that if you ask for the index of a parameter using a syntax different from when you added the parameter, the result will be -1.Assembly now properly appears in the Visual Studio 2005 Add/Remove Reference dialog.
Fixed problem that prevented use of
SchemaOnlyorSingleRowcommand behaviors with stored procedures or prepared statements.Added
MySqlParameterCollection.AddWithValueand marked theAdd(name, value)method as obsolete.Return parameters created with DeriveParameters now have the name
RETURN_VALUE.Fixed problem with parameter name hashing where the hashes were not getting updated when parameters were removed from the collection.
Fixed problem with calling stored functions when a return parameter was not given.
Added
Use Procedure Bodiesconnection string option to allow calling procedures without using procedure metadata.
Bugs fixed:
MySqlConnection.GetSchemafails withNullReferenceExceptionfor Foreign Keys. (Bug#26660)Connector/NET would fail to install under Windows Vista. (Bug#26430)
Opening a connection would be slow due to host name lookup. (Bug#26152)
Incorrect values/formats would be applied when the
OldSyntaxconnection string option was used. (Bug#25950)Registry would be incorrectly populated with installation locations. (Bug#25928)
Times with negative values would be returned incorrectly. (Bug#25912)
Returned data types of a
DataTypescollection do not contain the right correctl CLR Datatype. (Bug#25907)GetSchemaandDataTypeswould throw an exception due to an incorrect table name. (Bug#25906)MySqlConnectionthrows an exception when connecting to MySQL v4.1.7. (Bug#25726)SELECTdid not work correctly when using aWHEREclause containing a UTF-8 string. (Bug#25651)When closing and then re-opening a connection to a database, the character set specification is lost. (Bug#25614)
Filling a table schema through a stored procedure triggers a runtime error. (Bug#25609)
BINARYandVARBINARYcolumns would be returned as a string, not binary, datatype. (Bug#25605)A critical
ConnectionPoolerror would result in repeatedSystem.NullReferenceException. (Bug#25603)The
UpdateRowSource.FirstReturnedRecordmethod does not work. (Bug#25569)When connecting to a MySQL Server earlier than version 4.1, the connection would hang when reading data. (Bug#25458)
Using
ExecuteScalar()with more than one query, where one query fails, will hang the connection. (Bug#25443)When a
MySqlConversionExceptionis raised on a remote object, the client application would receive aSerializationExceptioninstead. (Bug#24957)When connecting to a server, the return code from the connection could be zero, even though the host name was incorrect. (Bug#24802)
High CPU utilization would be experienced when there is no idle connection waiting when using pooled connections through
MySqlPool.GetConnection. (Bug#24373)Connector/NET would not compile properly when used with Mono 1.2. (Bug#24263)
Applications would crash when calling with
CommandTypeset toStoredProcedure.
This is a new Beta development release, fixing recently discovered bugs.
Functionality added or changed:
Usage Advisor has been implemented. The Usage Advisor checks your queries and will report if you are using the connection inefficiently.
PerfMon hooks have been added to monitor the stored procedure cache hits and misses.
The
MySqlCommandobject now supports asynchronous query methods. This is implemented useg theBeginExecuteNonQueryandEndExecuteNonQuerymethods.Metadata from storaed procedures and stored function execution are cached.
The
CommandBuilder.DeriveParametersfunction has been updated to the procedure cache.The
ViewColumnsGetSchemacollection has been updated.Improved speed and performance by re-architecting certain sections of the code.
Support for the embedded server and client library have been removed from this release. Support will be added back to a later release.
The ShapZipLib library has been replaced with the deflate support provided within .NET 2.0.
SSL support has been updated.
Bugs fixed:
Additional text added to error message (Bug#25178)
An exception would be raised, or the process would hang, if
SELECTprivileges on a database were not granted and a stored procedure was used. (Bug#25033)When adding parameter objects to a command object, if the parameter direction is set to
ReturnValuebefore the parameter is added to the command object then when the command is executed it throws an error. (Bug#25013)Using
Driver.IsTooOld()would return the wrong value. (Bug#24661)When using a
DbNull.Valueas the value for a parameter value, and then later setting a specific value type, the command would fail with an exception because the wrong type was implied from theDbNull.Value. (Bug#24565)Stored procedure executions are not thread safe. (Bug#23905)
Deleting a connection to a disconnected server when using the Visual Studio Plugin would cause an assertion failure. (Bug#23687)
Nested transactions (which are unsupported)do not raise an error or warning. (Bug#22400)
Functionality added or changed:
An
Ignore Prepareoption has been added to the connection string options. If enabled, prepared statements will be disabled application-wide. The default for this option is true.Implemented a stored procedure cache. By default, the connector caches the metadata for the last 25 procedures that are seen. You can change the numbver of procedures that are cacheds by using the
procedure cacheconnection string.Important change: Due to a number of issues with the use of server-side prepared statements, Connector/NET 5.0.2 has disabled their use by default. The disabling of server-side prepared statements does not affect the operation of the connector in any way.
To enable server-side prepared statements you must add the following configuration property to your connector string properties:
ignore prepare=false
The default value of this property is true.
Bugs fixed:
One system where IPv6 was enabled, Connector/NET would incorrectly resolve host names. (Bug#23758)
Column names with accented characters were not parsed properly causing malformed column names in result sets. (Bug#23657)
An exception would be thrown when calling
GetSchemaTableandfieldswas null. (Bug#23538)A
System.FormatExceptionexception would be raised when invoking a stored procedure with anENUMinput parameter. (Bug#23268)During installation, an antivirus error message would be raised (indicating a malicious script problem). (Bug#23245)
Creating a connection through the Server Explorer when using the Visual Studio Plugin would fail. The installer for the Visual Studio Plugin has been updated to ensure that Connector/NET 5.0.2 must be installed. (Bug#23071)
Using Windows Vista (RC2) as a nonprivileged user would raise a
Registry key 'Global' access denied. (Bug#22882)Within Mono, using the
PreparedStatementinterface could result in an error due to aBitArraycopying error. (Bug#18186)Connector/NET did not work as a data source for the
SqlDataSourceobject used by ASP.NET 2.0. (Bug#16126)
Bugs fixed:
Connector/NET on a Tukish operating system, may fail to execute certain SQL statements correctly. (Bug#22452)
Starting a transaction on a connection created by
MySql.Data.MySqlClient.MySqlClientFactory, usingBeginTransactionwithout specifying an isolation level, causes the SQL statement to fail with a syntax error. (Bug#22042)The
MySqlexceptionclass is now derived from theDbExceptionclass. (Bug#21874)The
#would not be accepted within column/table names, even though it was valid. (Bug#21521)You can now install the Connector/NET MSI package from the command line using the
/passive,/quiet,/qoptions. (Bug#19994)Submitting an empty string to a command object through
prepareraises anSystem.IndexOutOfRangeException, rather than a Connector/Net exception. (Bug#18391)Using
ExecuteScalarwith a datetime field, where the value of the field is "0000-00-00 00:00:00", aMySqlConversionExceptionexception would be raised. (Bug#11991)An
MySql.Data.Types.MySqlConversionExceptionwould be raised when trying to update a row that contained a date field, where the date field contained a zero value (0000-00-00 00:00:00). (Bug#9619)Executing multiple queries as part of a transaction returns
There is already an openDataReader associated with this Connection which must be closed first. (Bug#7248)Incorrect field/data lengths could be returned for
VARCHARUTF8 columns. Bug (#14592)
Functionality added or changed:
Replaced use of ICSharpCode with .NET 2.0 internal deflate support.
Refactored test suite to test all protocols in a single pass.
Added usage advisor warnings for requesting column values by the wrong type.
Reimplemented PacketReader/PacketWriter support into
MySqlStreamclass.Reworked connection string classes to be simpler and faster.
Added procedure metadata caching.
Added internal implemention of SHA1 so we don't have to distribute the OpenNetCF on mobile devices.
Implemented
MySqlClientFactoryclass.Added perfmon hooks for stored procedure cache hits and misses.
Implemented classes and interfaces for ADO.Net 2.0 support.
Added Async query methods.
Implemented Usage Advisor.
Completely refactored how column values are handled to avoid boxing in some cases.
Implemented
MySqlConnectionBuilderclass.
Bugs fixed:
CommandText: Question mark in comment line is being parsed as a parameter. (Bug#6214)
Bugs fixed:
Attempting to utilize MySQL Connector .Net version 1.0.10 throws a fatal exception under Mono when pooling is enabled. (Bug#33682)
Setting the size of a string parameter after the value could cause an exception. (Bug#32094)
Creation of parameter objects with noninput direction using a constructor would fail. This was cause by some old legacy code preventing their use. (Bug#32093)
Memory usage could increase and decrease significantly when updating or inserting a large number of rows. (Bug#31090)
Commands executed from within the state change handeler would fail with a
NULLexception. (Bug#30964)Extracting data through XML functions within a query returns the data as
System.Byte[]. This was due to Connector/NET incorrectly identifyingBLOBfields as binary, rather than text. (Bug#30233)Using compression in the MySQL connection with Connector/NET would be slower than using native (uncompressed) communication. (Bug#27865)
Changing the connection string of a connection to one that changes the parameter marker after the connection had been assigned to a command but before the connection is opened could cause parameters to not be found. (Bug#13991)
Bugs fixed:
An incorrect
ConstraintExceptioncould be raised on anINSERTwhen adding rows to a table with a multiple-column unique key index. (Bug#30204)The availability of a MySQL server would not be reset when using pooled connections (
pooling=true). This would lead to the server being reported as unavailable, even if the server become available while the application was still running. (Bug#29409)Publisher listed in "Add/Remove Programs" is not consistent with other MySQL products. (Bug#27253)
MySqlParameterCollectionand parameters added withInsertmethod can not be retrieved later usingParameterName. (Bug#27135)BINARYandVARBINARYcolumns would be returned as a string, not binary, datatype. (Bug#25605)A critical
ConnectionPoolerror would result in repeatedSystem.NullReferenceException. (Bug#25603)When a
MySqlConversionExceptionis raised on a remote object, the client application would receive aSerializationExceptioninstead. (Bug#24957)High CPU utilization would be experienced when there is no idle connection waiting when using pooled connections through
MySqlPool.GetConnection. (Bug#24373)
Functionality added or changed:
The ICSharpCode ZipLib is no longer used by the Connector, and is no longer distributed with it.
Important change: Binaries for .NET 1.0 are no longer supplied with this release. If you need support for .NET 1.0, you must build from source.
Improved
CommandBuilder.DeriveParametersto first try and use the procedure cache before querying for the stored procedure metadata. Return parameters created withDeriveParametersnow have the nameRETURN_VALUE.An
Ignore Prepareoption has been added to the connection string options. If enabled, prepared statements will be disabled application-wide. The default for this option is true.Implemented a stored procedure cache. By default, the connector caches the metadata for the last 25 procedures that are seen. You can change the numbver of procedures that are cacheds by using the
procedure cacheconnection string.Important change: Due to a number of issues with the use of server-side prepared statements, Connector/NET 5.0.2 has disabled their use by default. The disabling of server-side prepared statements does not affect the operation of the connector in any way.
To enable server-side prepared statements you must add the following configuration property to your connector string properties:
ignore prepare=false
The default value of this property is true.
Bugs fixed:
Times with negative values would be returned incorrectly. (Bug#25912)
MySqlConnectionthrows aNullReferenceExceptionandArgumentNullExceptionwhen connecting to MySQL v4.1.7. (Bug#25726)SELECTdid not work correctly when using aWHEREclause containing a UTF-8 string. (Bug#25651)When closing and then re-opening a connection to a database, the character set specification is lost. (Bug#25614)
Trying to fill a table schema through a stored procedure triggers a runtime error. (Bug#25609)
Using
ExecuteScalar()with more than one query, where one query fails, will hang the connection. (Bug#25443)Additional text added to error message. (Bug#25178)
When adding parameter objects to a command object, if the parameter direction is set to
ReturnValuebefore the parameter is added to the command object then when the command is executed it throws an error. (Bug#25013)When connecting to a server, the return code from the connection could be zero, even though the host name was incorrect. (Bug#24802)
Using
Driver.IsTooOld()would return the wrong value. (Bug#24661)When using a
DbNull.Valueas the value for a parameter value, and then later setting a specific value type, the command would fail with an exception because the wrong type was implied from theDbNull.Value. (Bug#24565)Stored procedure executions are not thread safe. (Bug#23905)
The
CommandBuilderwould mistakenly add insert parameters for a table column with auto incrementation enabled. (Bug#23862)One system where IPv6 was enabled, Connector/NET would incorrectly resolve host names. (Bug#23758)
Nested transactions do not raise an error or warning. (Bug#22400)
An
System.OverflowExceptionwould be raised when accessing a varchar field over 255 bytes. Bug (#23749)Within Mono, using the
PreparedStatementinterface could result in an error due to aBitArraycopying error. (Bug 18186)
Functionality added or changed:
Stored procedures are now cached.
The method for retrieving stored procedured metadata has been changed so that users without
SELECTprivileges on themysql.proctable can use a stored procedure.
Bugs fixed:
Connector/NET on a Tukish operating system, may fail to execute certain SQL statements correctly. (Bug#22452)
The
#would not be accepted within column/table names, even though it was valid. (Bug#21521)Calling
Closeon a connection after calling a stored procedure would trigger aNullReferenceException. (Bug#20581)You can now install the Connector/NET MSI package from the command line using the
/passive,/quiet,/qoptions. (Bug#19994)The DiscoverParameters function would fail when a stored procedure used a
NUMERICparameter type. (Bug#19515)When running a query that included a date comparison, a DateReader error would be raised. (Bug#19481)
IDataRecord.GetStringwould raiseNullPointerExceptionfor null values in returned rows. Method now throwsSqlNullValueException. (Bug#19294)Parameter substitution in queries where the order of parameters and table fields did not match would substitute incorrect values. (Bug#19261)
Submitting an empty string to a command object through
prepareraises anSystem.IndexOutOfRangeException, rather than a Connector/Net exception. (Bug#18391)An exception would be raised when using an output parameter to a
System.Stringvalue. (Bug#17814)CHAR type added to MySqlDbType. (Bug#17749)
A
SELECTquery on a table with a date with a value of'0000-00-00'would hang the application. (Bug#17736)The CommandBuilder ignored Unsigned flag at Parameter creation. (Bug#17375)
When working with multiple threads, character set initialization would generate errors. (Bug#17106)
When using an unsigned 64-bit integer in a stored procedure, the unsigned bit would be lost stored. (Bug#16934)
DataReaderwould show the value of the previous row (or last row with nonnull data) if the current row contained adatetimefield with a null value. (Bug#16884)Unsigned data types were not properly supported. (Bug#16788)
The connection string parser did not allow single or double quotes in the password. (Bug#16659)
The
MySqlDateTimeclass did not contain constructors. (Bug#15112)Called
MySqlCommandBuilder.DeriveParametersfor a stored procedure that has no paramers would cause an application crash. (Bug#15077)Using
ExecuteScalarwith a datetime field, where the value of the field is "0000-00-00 00:00:00", aMySqlConversionExceptionexception would be raised. (Bug#11991)An
MySql.Data.Types.MySqlConversionExceptionwould be raised when trying to update a row that contained a date field, where the date field contained a zero value (0000-00-00 00:00:00). (Bug#9619)When using
MySqlDataAdapter, connections to a MySQL server may remain open and active, even though the use of the connection has been completed and the data received. (Bug#8131)Executing multiple queries as part of a transaction returns
There is already an openDataReader associated with this Connection which must be closed first. (Bug#7248)Incorrect field/data lengths could be returned for
VARCHARUTF8 columns. Bug (#14592)
Bugs fixed:
Unsigned
tinyint(NET byte) would lead to and incorrectly determined parameter type from the parameter value. (Bug#18570)A
#42000Query was emptyexception occurred when executing a query built withMySqlCommandBuilder, if the query string ended with a semicolon. (Bug#14631)The parameter collection object's
Add()method added parameters to the list without first checking to see whether they already existed. Now it updates the value of the existing parameter object if it exists. (Bug#13927)Added support for the
cp932character set. (Bug#13806)Calling a stored procedure where a parameter contained special characters (such as
'@') would produce an exception. Note thatANSI_QUOTEShad to be enabled to make this possible. (Bug#13753)The
Ping()method did not update theStateproperty of theConnectionobject. (Bug#13658)Implemented the
MySqlCommandBuilder.DeriveParametersmethod that is used to discover the parameters for a stored procedure. (Bug#13632)A statement that contained multiple references to the same parameter could not be prepared. (Bug#13541)
Bugs fixed:
Connector/NET 1.0.5 could not connect on Mono. (Bug#13345)
Serializing a parameter failed if the first value passed in was
NULL. (Bug#13276)Field names that contained the following characters caused errors:
()%<>/(Bug#13036)The
nantbuild sequence had problems. (Bug#12978)The Connector/NET 1.0.5 installer would not install alongside Connector/NET 1.0.4. (Bug#12835)
Bugs fixed:
Connector/NET could not connect to MySQL 4.1.14. (Bug#12771)
With multiple hosts in the connection string, Connector/NET would not connect to the last host in the list. (Bug#12628)
The
ConnectionStringproperty could not be set when aMySqlConnectionobject was added with the designer. (Bug#12551, Bug#8724)The
cp1250character set was not supported. (Bug#11621)A call to a stored procedure caused an exception if the stored procedure had no parameters. (Bug#11542)
Certain malformed queries would trigger a
Connection must be valid and openerror message. (Bug#11490)Trying to use a stored procedure when
Connection.Databasewas not populated generated an exception. (Bug#11450)Connector/NET interpreted the new decimal data type as a byte array. (Bug#11294)
Added support to call a stored function from Connector/NET. (Bug#10644)
Connection could fail when .NET thread pool had no available worker threads. (Bug#10637)
Calling
MySqlConnection.clonewhen a connection string had not yet been set on the original connection would generate an error. (Bug#10281)Decimal parameters caused syntax errors. (Bug#10152, Bug#11550, Bug#10486)
Parameters were not recognized when they were separated by linefeeds. (Bug#9722)
The
MySqlCommandBuilderclass could not handle queries that referenced tables in a database other than the default database. (Bug#8382)Trying to read a
TIMESTAMPcolumn generated an exception. (Bug#7951)Connector/NET could not work properly with certain regional settings. (WL#8228)
Bugs fixed:
MySqlReader.GetInt32throws exception if column is unsigned. (Bug#7755)Quote character \222 not quoted in
EscapeString. (Bug#7724)GetBytes is working no more. (Bug#7704)
MySqlDataReader.GetString(index)returns non-Null value when field isNull. (Bug#7612)Clone method bug in
MySqlCommand. (Bug#7478)Problem with Multiple resultsets. (Bug#7436)
MySqlAdapter.Fillmethod throws error messageNon-negative number required. (Bug#7345)MySqlCommand.Connectionreturns an IDbConnection. (Bug#7258)Calling prepare causing exception. (Bug#7243)
Fixed problem with shared memory connections.
Added or filled out several more topics in the API reference documentation.
Fixed another small problem with prepared statements.
Fixed problem that causes named pipes to not work with some blob functionality.
Bugs fixed:
Invalid query string when using inout parameters (Bug#7133)
Inserting
DateTimecausesSystem.InvalidCastExceptionto be thrown. (Bug#7132)MySqlDateTimein Datatables sorting by Text, not Date. (Bug#7032)Exception stack trace lost when re-throwing exceptions. (Bug#6983)
Errors in parsing stored procedure parameters. (Bug#6902)
InvalidCast when using
DATE_ADD-function. (Bug#6879)Int64 Support in
MySqlCommandParameters. (Bug#6863)Test suite fails with MySQL 4.0 because of case sensitivity of table names. (Bug#6831)
MySqlDataReader.GetChar(int i)throwsIndexOutOfRangeexception. (Bug#6770)Integer "out" parameter from stored procedure returned as string. (Bug#6668)
An Open Connection has been Closed by the Host System. (Bug#6634)
Fixed Invalid character set index: 200. (Bug#6547)
Connections now do not have to give a database on the connection string.
Installer now includes options to install into GAC and create items.
Fixed major problem with detecting null values when using prepared statements.
Fixed problem where multiple resultsets having different numbers of columns would cause a problem.
Added
ServerThreadproperty toMySqlConnectionto expose server thread id.Added Ping method to
MySqlConnection.Changed the name of the test suite to
MySql.Data.Tests.dll.Now
SHOW COLLATIONis used upon connection to retrieve the full list of charset ids.Made MySQL the default named pipe name.
Bugs fixed:
Fixed Objects not being disposed (Bug#6649)
Fixed Charset-map for UCS-2 (Bug#6541)
Fixed Zero date "0000-00-00" is returned wrong when filling Dataset (Bug#6429)
Fixed double type handling in MySqlParameter(string parameterName, object value) (Bug#6428)
Fixed Installation directory ignored using custom installation (Bug#6329)
Fixed #HY000 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ (Bug#6322)
Added the TableEditor CS and VB sample
Added charset connection string option
Fixed problem with MySqlBinary where string values could not be used to update extended text columns
Provider is now using character set specified by server as default
Updated the installer to include the new samples
Fixed problem where setting command text leaves the command in a prepared state
Fixed Long inserts take very long time (Bu #5453)
Fixed problem where calling stored procedures might cause an "Illegal mix of collations" problem.
Bugs fixed:
Fixed IndexOutOfBounds when reading BLOB with DataReader with GetString(index) (Bug#6230)
Fixed GetBoolean returns wrong values (Bug#6227)
Fixed Method TokenizeSql() uses only a limited set of valid characters for parameters (Bug#6217)
Fixed NET Connector source missing resx files (Bug#6216)
Fixed System.OverflowException when using YEAR datatype (Bug#6036)
Fixed MySqlDateTime sets IsZero property on all subseq.records after first zero found (Bug#6006)
Fixed serializing of floating point parameters (double, numeric, single, decimal) (Bug#5900)
Fixed missing Reference in DbType setter (Bug#5897)
Fixed Parsing the ';' char (Bug#5876)
Fixed DBNull Values causing problems with retrieving/updating queries. (Bug#5798)
IsNullable error (Bug#5796)
Fixed problem where MySqlParameterCollection.Add() would throw unclear exception when given a null value (Bug#5621)
Fixed construtor initialize problems in MySqlCommand() (Bug#5613)
Fixed Yet Another "object reference not set to an instance of an object" (Bug#5496)
Fixed Can't display Chinese correctly (Bug#5288)
Fixed MySqlDataReader and 'show tables from ...' behavior (Bug#5256)
Fixed problem in PacketReader where it could try to allocate the wrong buffer size in EnsureCapacity
Fixed problem where using old syntax while using the interfaces caused problems
Fixed Bug#5458 Calling GetChars on a longtext column throws an exception
Added test case for resetting the command text on a prepared command
Fixed Bug#5388 DataReader reports all rows as NULL if one row is NULL
Fixed problem where connection lifetime on the connect string was not being respected
Fixed Bug#5602 Possible bug in MySqlParameter(string, object) constructor
Field buffers being reused to decrease memory allocations and increase speed
Fixed Bug#5392 MySqlCommand sees "?" as parameters in string literals
Added Aggregate function test (wasn't really a bug)
Using PacketWriter instead of Packet for writing to streams
Implemented SequentialAccess
Fixed problem with ConnectionInternal where a key might be added more than once
Fixed Russian character support as well
Fixed Bug#5474 cannot run a stored procedure populating mysqlcommand.parameters
Fixed problem where connector was not issuing a CMD_QUIT before closing the socket
Fixed problem where Min Pool Size was not being respected
Refactored compression code into CompressedStream to clean up NativeDriver
CP1252 is now used for Latin1 only when the server is 4.1.2 and later
Fixed Bug#5469 Setting DbType throws NullReferenceException
Virtualized driver subsystem so future releases could easily support client or embedded server support
Bugs fixed:
Thai encoding not correctly supported. (Bug#3889)
Bumped version number to 1.0.0 for beta 1 release.
Removed all of the XML comment warnings.
Added
COPYING.rtffile for use in installer.Updated many of the test cases.
Fixed problem with using compression.
Removed some last references to ByteFX.
Added test fixture for prepared statements.
All type classes now implement a
SerializeBinarymethod for sending their data to aPacketWriter.Added
PacketWriterclass that will enable future low-memory large object handling.Fixed many small bugs in running prepared statements and stored procedures.
Changed command so that an exception will not be thrown in executing a stored procedure with parameters in old syntax mode.
SingleRowbehavior now working right even with limit.GetBytesnow only works on binary columns.Logger now truncates long sql commands so blob columns do not blow out our log.
Host and database now have a default value of "" unless otherwise set.
Connection Timeout seems to be ignored. (Bug#5214)
Added test case for bug# 5051: GetSchema not working correctly.
Fixed problem where
GetSchemawould return false forIsUniquewhen the column is key.MySqlDataReader GetXXXmethods now using the field levelMySqlValueobject and not performing conversions.DataReaderreturningNULLfor time column. (Bug#5097)Added test case for
LOAD DATA LOCAL INFILE.Added replacetext custom nant task.
Added
CommandBuilderTestfixture.Added Last One Wins feature to
CommandBuilder.Fixed persist security info case problem.
Fixed
GetBoolso that 1, true, "true", and "yes" all count as true.Make parameter mark configurable.
Added the "old syntax" connection string parameter to allow use of @ parameter marker.
MySqlCommandBuilder. (Bug#4658)ByteFX.MySqlClientcaches passwords ifPersist Security Infois false. (Bug#4864)Updated license banner in all source files to include FLOSS exception.
Added new .Types namespace and implementations for most current MySql types.
Added
MySqlField41as a subclass ofMySqlField.Changed many classes to now use the new .Types types.
Changed type
enum inttoInt32,shorttoInt16, andbiginttoInt64.Added dummy types
UInt16,UInt32, andUInt64to allow an unsigned parameter to be made.Connections are now reset when they are pulled from the connection pool.
Refactored auth code in driver so it can be used for both auth and reset.
Added
UserResettest inPoolingTests.cs.Connections are now reset using
COM_CHANGE_USERwhen pulled from the pool.Implemented
SingleResultSetbehavior.Implemented support of unicode.
Added char set mappings for utf-8 and ucs-2.
Time fields overflow using bytefx .net mysql driver (Bug#4520)
Modified time test in data type test fixture to check for time spans where hours > 24.
Wrong string with backslash escaping in
ByteFx.Data.MySqlClient.MySqlParameter. (Bug#4505)Added code to Parameter test case TestQuoting to test for backslashes.
MySqlCommandBuilderfails with multi-word column names. (Bug#4486)Fixed bug in
TokenizeSqlwhere underscore would terminate character capture in parameter name.Added test case for spaces in column names.
MySqlDataReader.GetBytesdo not work correctly. (Bug#4324)Added
GetBytes()test case toDataReadertest fixture.Now reading all server variables in
InternalConnection.ConfigureintoHashtable.Now using
string[]for index map inCharSetMap.Added CRInSQL test case for carriage returns in SQL.
Setting maxPacketSize to default value in
Driver.ctor.Setting
MySqlDbTypeon a parameter doesn't set generic type. (Bug#4442)Removed obsolete data types
LongandLongLong.Overflow exception thrown when using "use pipe" on connection string. (Bug#4071)
Changed "use pipe" keyword to "pipe name" or just "pipe".
Allow reading multiple resultsets from a single query.
Added flags attribute to
ServerStatusFlagsenum.Changed name of
ServerStatusenum toServerStatusFlags.Inserted data row doesn't update properly.
Error processing show create table. (Bug#4074)
Change
Packet.ReadLenIntegertoReadPackedLongand addedpacket.ReadPackedIntegerthat always reads integers packed with 2,3,4.Added
syntax.cstest fixture to test various SQL syntax bugs.Improper handling of time values. Now time value of 00:00:00 is not treated as null. (Bug#4149)
Moved all test suite files into
TestSuitefolder.Fixed bug where null column would move the result packet pointer backward.
Added new nant build script.
Clear tablename so it will be regen'ed properly during the next
GenerateSchema. (Bug#3917)GetValueswas always returning zero and was also always trying to copy all fields rather than respecting the size of the array passed in. (Bug#3915)Implemented shared memory access protocol.
Implemented prepared statements for MySQL 4.1.
Implemented stored procedures for MySQL 5.0.
Renamed
MySqlInternalConnectiontoInternalConnection.SQL is now parsed as chars, fixes problems with other languages.
Added logging and allow batch connection string options.
RowUpdatingevent not set when setting theDataAdapterproperty. (Bug#3888)Fixed bug in char set mapping.
Implemented 4.1 authentication.
Improved open/auth code in driver.
Improved how connection bits are set during connection.
Database name is now passed to server during initial handshake.
Changed namespace for client to
MySql.Data.MySqlClient.Changed assembly name of client to
MySql.Data.dll.Changed license text in all source files to GPL.
Added the
MySqlClient.buildNant file.Removed the mono batch files.
Moved some of the unused files into notused folder so nant build file can use wildcards.
Implemented shared memory access.
Major revamp in code structure.
Prepared statements now working for MySql 4.1.1 and later.
Finished implementing auth for 4.0, 4.1.0, and 4.1.1.
Changed namespace from
MySQL.Data.MySQLClientback toMySql.Data.MySqlClient.Fixed bug in
CharSetMappingwhere it was trying to use text names as ints.Changed namespace to
MySQL.Data.MySQLClient.Integrated auth changes from UC2004.
Fixed bug where calling any of the GetXXX methods on a datareader before or after reading data would not throw the appropriate exception (thanks Luca Morelli).
Added
TimeSpancode in parameter.cs to properly serialize a timespan object to mysql time format (thanks Gianluca Colombo).Added
TimeStampto parameter serialization code. PreventedDataAdatperupdates from working right (thanks Michael King).Fixed a misspelling in
MySqlHelper.cs(thanks Patrick Kristiansen).
Driver now using charset number given in handshake to create encoding.
Changed command editor to point to
MySqlClient.Design.Fixed bug in
Version.isAtLeast.Changed
DBConnectionStringto support changes done toMySqlConnectionString.Removed
SqlCommandEditorandDataAdapterPreviewDialog.Using new long return values in many places.
Integrated new
CompressedStreamclass.Changed
ConnectionStringand added attributes to allow it to be used inMySqlClient.Design.Changed
packet.csto support newer lengths inReadLenInteger.Changed other classes to use new properties and fields of
MySqlConnectionString.ConnectionInternalis now using PING to see whether the server is alive.Moved toolbox bitmaps into resource folder.
Changed
field.csto allow values to come directly from row buffer.Changed to use the new driver.Send syntax.
Using a new packet queueing system.
Started work handling the "broken" compression packet handling.
Fixed bug in
StreamCreatorwhere failure to connect to a host would continue to loop infinitly (thanks Kevin Casella).Improved connectstring handling.
Moved designers into Pro product.
Removed some old commented out code from
command.cs.Fixed a problem with compression.
Fixed connection object where an exception throw prior to the connection opening would not leave the connection in the connecting state (thanks Chris Cline).
Added GUID support.
Fixed sequence out of order bug (thanks Mark Reay).
Enum values now supported as parameter values (thanks Philipp Sumi).
Year datatype now supported.
Fixed compression.
Fixed bug where a parameter with a
TimeSpanas the value would not serialize properly.Fixed bug where default constructor would not set default connection string values.
Added some XML comments to some members.
Work to fix/improve compression handling.
Improved
ConnectionStringhandling so that it better matches the standard set bySqlClient.A
MySqlExceptionis now thrown if a user name is not included in the connection string.Localhost is now used as the default if not specified on the connection string.
An exception is now thrown if an attempt is made to set the connection string while the connection is open.
Small changes to
ConnectionStringdocs.Removed
MultiHostStreamandMySqlStream. Replaced it withCommon/StreamCreator.Added support for Use Pipe connection string value.
Added Platform class for easier access to platform utility functions.
Fixed small pooling bug where new connection was not getting created after
IsAlivefails.Added
Platform.csandStreamCreator.cs.Fixed
Field.csto properly handle 4.1 style timestamps.Changed
Common.VersiontoCommon.DBVersionto avoid name conflict.Fixed
field.csso that text columns return the right field type.Added
MySqlErrorclass to provide some reference for error codes (thanks Geert Veenstra).
Added Unix socket support (thanks Mohammad DAMT).
Only calling
Thread.Sleepwhen no data is available.Improved escaping of quote characters in parameter data.
Removed misleading comments from
parameter.cs.Fixed pooling bug.
Fixed
ConnectionStringeditor dialog (thanks marco p (pomarc)).UserIdnow supported in connection strings (thanks Jeff Neeley).Attempting to create a parameter that is not input throws an exception (thanks Ryan Gregg).
Added much documentation.
Checked in new
MultiHostStreamcapability. Big thanks to Dan Guisinger for this. he originally submitted the code and idea of supporting multiple machines on the connect string.Added a lot of documentation.
Fixed speed issue with 0.73.
Changed to Thread.Sleep(0) in MySqlDataStream to help optimize the case where it doesn't need to wait (thanks Todd German).
Prepopulating the idlepools to
MinPoolSize.Fixed
MySqlPooldeadlock condition as well as stupid bug where CreateNewPooledConnection was not ever adding new connections to the pool. Also fixedMySqlStream.ReadBytesandReadByteto not useTicksPerSecondwhich does not appear to always be right. (thanks Matthew J. Peddlesden)Fix for precision and scale (thanks Matthew J. Peddlesden).
Added
Thread.Sleep(1)to stream reading methods to be more cpu friendly (thanks Sean McGinnis).Fixed problem where
ExecuteReaderwould sometime return null (thanks Lloyd Dupont).Fixed major bug with null field handling (thanks Naucki).
Enclosed queries for
max_allowed_packetandcharactersetinside try catch (and set defaults).Fixed problem where socket was not getting closed properly (thanks Steve!).
Fixed problem where
ExecuteNonQuerywas not always returning the right value.Fixed
InternalConnectionto not use@@session.max_allowed_packetbut use@@max_allowed_packet. (Thanks Miguel)Added many new XML doc lines.
Fixed sql parsing to not send empty queries (thanks Rory).
Fixed problem where the reader was not unpeeking the packet on close.
Fixed problem where user variables were not being handled (thanks Sami Vaaraniemi).
Fixed loop checking in the MySqlPool (thanks Steve M. Brown)
Fixed
ParameterCollection.Addmethod to matchSqlClient(thanks Joshua Mouch).Fixed
ConnectionStringparsing to handle no and yes for boolean and not lowercase values (thanks Naucki).Added
InternalConnectionclass, changes to pooling.Implemented Persist Security Info.
Added
security.csandversion.csto projectFixed
DateTimehandling inParameter.cs(thanks Burkhard Perkens-Golomb).Fixed parameter serialization where some types would throw a cast exception.
Fixed
DataReaderto convert all returned values to prevent casting errors (thanks Keith Murray).Added code to
Command.ExecuteReaderto return null if the initial SQL statement throws an exception (thanks Burkhard Perkens-Golomb).Fixed
ExecuteScalarbug introduced with restructure.Restructure to allow for
LOCAL DATA INFILEand better sequencing of packets.Fixed several bugs related to restructure.
Early work done to support more secure passwords in Mysql 4.1. Old passwords in 4.1 not supported yet.
Parameters appearing after system parameters are now handled correctly (Adam M. (adammil)).
Strings can now be assigned directly to blob fields (Adam M.).
Fixed float parameters (thanks Pent).
Improved Parameter constructor and
ParameterCollection.Addmethods to better match SqlClient (thanks Joshua Mouch).Corrected
Connection.CreateCommandto return aMySqlCommandtype.Fixed connection string designer dialog box problem (thanks Abraham Guyt).
Fixed problem with sending commands not always reading the response packet (thanks Joshua Mouch).
Fixed parameter serialization where some blobs types were not being handled (thanks Sean McGinnis).
Removed spurious
MessageBox.showfromDataReadercode (thanks Joshua Mouch).Fixed a nasty bug in the split sql code (thanks everyone!).
Fixed bug in
MySqlStreamwhere too much data could attempt to be read (thanks Peter Belbin)Implemented
HasRows(thanks Nash Pherson).Fixed bug where tables with more than 252 columns cause an exception (thanks Joshua Kessler).
Fixed bug where SQL statements ending in ; would cause a problem (thanks Shane Krueger).
Fixed bug in driver where error messages were getting truncated by 1 character (thanks Shane Krueger).
Made
MySqlExceptionserializable (thanks Mathias Hasselmann).
Updated some of the character code pages to be more accurate.
Fixed problem where readers could be opened on connections that had readers open.
Moved test to separate assembly
MySqlClientTests.Fixed stupid problem in driver with sequence out of order (Thanks Peter Belbin).
Added some pipe tests.
Increased default max pool size to 50.
Compiles with Mono 0-24.
Fixed connection and data reader dispose problems.
Added
Stringdatatype handling to parameter serialization.Fixed sequence problem in driver that occurred after thrown exception (thanks Burkhard Perkens-Golomb).
Added support for
CommandBehavior.SingleRowtoDataReader.Fixed command sql processing so quotes are better handled (thanks Theo Spears).
Fixed parsing of double, single, and decimal values to account for non-English separators. You still have to use the right syntax if you using hard coded sql, but if you use parameters the code will convert floating point types to use '.' appropriately internal both into the server and out.
Added
MySqlStreamclass to simplify timeouts and driver coding.Fixed
DataReaderso that it is closed properly when the associated connection is closed. [thanks smishra]Made client more SqlClient compliant so that DataReaders have to be closed before the connection can be used to run another command.
Improved
DBNull.Valuehandling in the fields.Added several unit tests.
Fixed
MySqlExceptionbase class.Improved driver coding
Fixed bug where NextResult was returning false on the last resultset.
Added more tests for MySQL.
Improved casting problems by equating unsigned 32bit values to Int64 and unsigned 16bit values to Int32, and so forth.
Added new constructor for
MySqlParameterfor (name, type, size, srccol)Fixed bug in
MySqlDataReaderwhere it didn't check for null fieldlist before returning field count.Started adding
MySqlClientunit tests (addedMySqlClient/Testsfolder and some test cases).Fixed some things in Connection String handling.
Moved
INIT_DBtoMySqlPool. I may move it again, this is in preparation of the conference.Fixed bug inside
CommandBuilderthat prevented inserts from happening properly.Reworked some of the internals so that all three execute methods of Command worked properly.
Fixed many small bugs found during benchmarking.
The first cut of
CoonectionPoolingis working. "min pool size" and "max pool size" are respected.Work to enable multiple resultsets to be returned.
Character sets are handled much more intelligently now. The driver queries MySQL at startup for the default character set. That character set is then used for conversions if that code page can be loaded. If not, then the default code page for the current OS is used.
Added code to save the inferred type in the name,value constructor of
Parameter.Also, inferred type if value of null parameter is changed using
Valueproperty.Converted all files to use proper Camel case. MySQL is now MySql in all files. PgSQL is now PgSql.
Added attribute to PgSql code to prevent designer from trying to show.
Added
MySQLDbTypeproperty to Parameter object and added proper conversion code to convert fromDbTypetoMySQLDbType).Removed unused
ObjectToStringmethod fromMySQLParameter.cs.Fixed
Add(..)method inParameterCollectionso that it doesn't useAdd(name, value)instead.Fixed
IndexOfandContainsinParameterCollectionto be aware that parameter names are now stored without @.Fixed
Command.ConvertSQLToBytesso it only allows characters that can be in MySQL variable names.Fixed
DataReaderandFieldso that blob fields read their data fromField.csandGetBytesworks right.Added simple query builder editor to
CommandTextproperty ofMySQLCommand.Fixed
CommandBuilderandParameterserialization to account for Parameters not storing @ in their names.Removed
MySQLFieldTypeenum from Field.cs. Now usingMySQLDbTypeenum.Added
Designerattribute to several classes to prevent designer view when using VS.Net.Fixed Initial catalog typo in
ConnectionStringdesigner.Removed 3 parameter constructor for
MySQLParameterthat conflicted with (name, type, value).Changed
MySQLParametersoparamNameis now stored without leading @ (this fixed null inserts when using designer).Changed
TypeConverterforMySQLParameterto use the constructor with all properties.
Fixed sequence issue in driver.
Added
DbParametersEditorto make parameter editing more likeSqlClient.Fixed
Commandclass so that parameters can be edited using the designerUpdate connection string designer to support
Use Compressionflag.Fixed string encoding so that European characters will work correctly.
Creating base classes to aid in building new data providers.
Added support for UID key in connection string.
Field, parameter, command now using DBNull.Value instead of null.
CommandBuilderusingDBNull.Value.CommandBuildernow builds insert command correctly when an auto_insert field is not present.Field now uses typeof keyword to return
System.Types(performance).
MySQLCommandBuildernow implemented.Transaction support now implemented (not all table types support this).
GetSchemaTablefixed to not use xsd (for Mono).Driver is now Mono-compatible.
TIME data type now supported.
More work to improve Timestamp data type handling.
Changed signatures of all classes to match corresponding
SqlClientclasses.
Protocol compression using SharpZipLib (www.icsharpcode.net).
Named pipes on Windows now working properly.
Work done to improve
Timestampdata type handling.Implemented
IEnumerableonDataReadersoDataGridwould work.
Note
As of Connector/NET 5.1.2 (14 June 2007), the Visual Studion Plugin is part of the main Connector/NET package. For the change history for the Visual Studio Plugin, see Section C.4, “MySQL Connector/NET Change History”.
Bugs fixed:
Running queries based on a stored procedure would cause the data set designer to terminate. (Bugs #26364)
DataSet wizard would show all tables instead of only the tables available within the selected database. (Bugs #26348)
Bugs fixed:
The Add Connection dialog of the Server Explorer would freeze when accessing databases with capitalized characters in their name. (Bug#24875)
Creating a connection through the Server Explorer when using the Visual Studio Plugin would fail. The installer for the Visual Studio Plugin has been updated to ensure that Connector/NET 5.0.2 must be installed. (Bug#23071)
This is a bug fix release to resolve an incompatibility issue with Connector/NET 5.0.1.
It is critical that this release only be used with Connector/NET
5.0.1. After installing Connector/NET 5.0.1, you will need to
make a small change in your machine.config file. This file
should be located at
%win%\Microsoft.Net\Framework\v2.0.50727\CONFIG\machine.config
(%win% should be the location of your Windows
folder). Near the bottom of the file you will see a line like
this:
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data"/>
It needs to be changed to be like this:
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=5.0.1.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
- C.6.1. Changes in MySQL Connector/J 5.1.x
- C.6.2. Changes in MySQL Connector/J 5.0.x
- C.6.3. Changes in MySQL Connector/J 3.1.x
- C.6.4. Changes in MySQL Connector/J 3.0.x
- C.6.5. Changes in MySQL Connector/J 2.0.x
- C.6.6. Changes in MySQL Connector/J 1.2b (04 July 1999)
- C.6.7. Changes in MySQL Connector/J 1.2.x and lower
- C.6.1.1. Changes in MySQL Connector/J 5.1.8 (Not yet released)
- C.6.1.2. Changes in MySQL Connector/J 5.1.7 (21 October 2008)
- C.6.1.3. Changes in MySQL Connector/J 5.1.6 (07 March 2008)
- C.6.1.4. Changes in MySQL Connector/J 5.1.5 (09 October 2007)
- C.6.1.5. Changes in MySQL Connector/J 5.1.4 (Not Released)
- C.6.1.6. Changes in MySQL Connector/J 5.1.3 (10 September 2007)
- C.6.1.7. Changes in MySQL Connector/J 5.1.2 (29 June 2007)
- C.6.1.8. Changes in MySQL Connector/J 5.1.1 (22 June 2007)
- C.6.1.9. Changes in MySQL Connector/J 5.1.0 (11 April 2007)
Bugs fixed:
The result set returned by
getIndexInfo()did not have the format defined in the JDBC API specifications. The fourth column,DATA_TYPE, of the result set should be of typeBOOLEAN. Connector/J however returnsCHAR. (Bug#44869)The result set returned by
getTypeInfo()did not have the format defined in the JDBC API specifications. The second column,DATA_TYPE, of the result set should be of typeINTEGER. Connector/J however returnsSMALLINT. (Bug#44868)The
DEFERRABILITYcolumn in database metadata result sets was expected to be of typeSHORT. However, Connector/J returned it asINTEGER.This affected the following methods:
getImportedKeys(),getExportedKeys(),getCrossReference(). (Bug#44867)The result set returned by
getColumns()did not have the format defined in the JDBC API specifications. The fifth column,DATA_TYPE, of the result set should be of typeINTEGER. Connector/J however returnsSMALLINT. (Bug#44865)The result set returned by
getVersionColumns()did not have the format defined in the JDBC API specifications. The third column,DATA_TYPE, of the result set should be of typeINTEGER. Connector/J however returnsSMALLINT. (Bug#44863)The result set returned by
getBestRowIdentifier()did not have the format defined in the JDBC API specifications. The third column,DATA_TYPE, of the result set should be of typeINTEGER. Connector/J however returnsSMALLINT. (Bug#44862)Connector/J contains logic to generate a message text specifically for streaming result sets when there are
CommunicationsExceptionexceptions generated. However, this code was never reached.In the
CommunicationsExceptioncode:private boolean streamingResultSetInPlay = false; public CommunicationsException(ConnectionImpl conn, long lastPacketSentTimeMs, long lastPacketReceivedTimeMs, Exception underlyingException) { this.exceptionMessage = SQLError.createLinkFailureMessageBasedOnHeuristics(conn, lastPacketSentTimeMs, lastPacketReceivedTimeMs, underlyingException, this.streamingResultSetInPlay);streamingResultSetInPlaywas always false, which in the following code inSQLError.createLinkFailureMessageBasedOnHeuristics()never being executed:if (streamingResultSetInPlay) { exceptionMessageBuf.append( Messages.getString("CommunicationsException.ClientWasStreaming")); //$NON-NLS-1$ } else { ...Statement.getGeneratedKeys()retained result set instances until the statement was closed. This caused memory leaks for long-lived statements, or statements used in tight loops. (Bug#44056)LoadBalancingConnectionProxy.doPing()did not have blacklist awareness.LoadBalancingConnectionProxyimplementeddoPing()to ping all underlying connections, but it threw any exceptions it encountered during this process.With the global blacklist enabled, it catches these exceptions, adds the host to the global blacklist, and only throws an exception if all hosts are down. (Bug#43421)
When the MySQL Server was upgraded from 4.0 to 5.0, the Connector/J application then failed to connect to the server. This was because authentication failed when the application ran from EBCDIC platforms such as z/OS. (Bug#43071)
When connecting with
traceProtocol=true, no trace data was generated for the server greeting or login request. (Bug#43070)A
ConcurrentModificationExceptionwas generated inLoadBalancingConnectionProxy:java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(Unknown Source) at java.util.HashMap$KeyIterator.next(Unknown Source) at com.mysql.jdbc.LoadBalancingConnectionProxy.getGlobalBlacklist(LoadBalancingConnectionProxy.java:520) at com.mysql.jdbc.RandomBalanceStrategy.pickConnection(RandomBalanceStrategy.java:55) at com.mysql.jdbc.LoadBalancingConnectionProxy.pickNewConnection(LoadBalancingConnectionProxy.java:414) at com.mysql.jdbc.LoadBalancingConnectionProxy.invoke(LoadBalancingConnectionProxy.java:390)
SQL injection was possible when using a string containing U+00A5 in a client-side prepared statement, and the character set being used was SJIS/Windows-31J. (Bug#41730)
MySQL Connector/J 5.1.7 was slower than previous versions when the
rewriteBatchedStatementsoption was set totrue.Note
The performance regression in
indexOfIgnoreCaseRespectMarker()has been fixed. It has also been made possible for the driver to rewriteINSERTstatements withON DUPLICATE KEY UPDATEclauses in them, as long as theUPDATEclause contains no reference toLAST_INSERT_ID(), as that would cause the driver to return bogus values forgetGeneratedKeys()invocations. This has resulted in improved performance over version 5.1.7.PreparedStatement.addBatch()did not check for all parameters being set, which led to inconsistent behavior inexecuteBatch(), especially when rewriting batched statements into multi-valueINSERTs. (Bug#41161)
Functionality added or changed:
When statements include
ON DUPLICATE UPDATE, andrewriteBatchedStatementsis set to true, batched statements are not rewritten into the formINSERT INTO table VALUES (), (), (), instead the statements are executed sequentially.
Bugs fixed:
Statement.getGeneratedKeys()returned two keys when usingON DUPLICATE KEY UPDATEand the row was updated, not inserted. (Bug#42309)When using the replication driver with
autoReconnect=true, Connector/J checks inPreparedStatement.execute(also called byCallableStatement.execute) to determine if the first character of the statement is an “S”, in an attempt to block all statements that are not read-only-safe, for example non-SELECTstatements. However, this also blockedCALLs to stored procedures, even if the stored procedures were defined asSQL READ DATAorNO SQL. (Bug#40031)With large result sets
ResultSet.findColumnbecame a performance bottleneck. (Bug#39962)Connector/J ignored the value of the MySQL Server variable
auto_increment_increment. (Bug#39956)Connector/J failed to parse
TIMESTAMPstrings for nanos correctly. (Bug#39911)When the
LoadBalancingConnectionProxyhandles aSQLExceptionwith SQL state starting with “08”, it callsinvalidateCurrentConnection, which in turn removes thatConnectionfromliveConnectionsand theconnectionsToHostsMap, but it did not add the host to the new global blacklist, if the global blacklist was enabled.There was also the possibility of a
NullPointerExceptionwhen trying to update stats, whereconnectionsToHostsMap.get(this.currentConn)was called:int hostIndex = ((Integer) this.hostsToListIndexMap.get(this.connectionsToHostsMap.get(this.currentConn))).intValue();
This could happen if a client tried to issue a rollback after catching a
SQLExceptioncaused by a connection failure. (Bug#39784)When configuring the Java Replication Driver the last slave specified was never used. (Bug#39611)
When an
INSERT ON DUPLICATE KEY UPDATEwas performed, and the key already existed, theaffected-rowsvalue was returned as 1 instead of 0. (Bug#39352)When using the random load balancing strategy and starting with two servers that were both unavailable, an
IndexOutOfBoundsExceptionwas generated when removing a server from thewhiteList. (Bug#38782)Connector/J threw the following exception when using a read-only connection:
java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed.Connector/J was unable to connect when using a non-
latin1password. (Bug#37570)Incorrect result is returned from
isAfterLast()in streamingResultSetwhen usingsetFetchSize(Integer.MIN_VALUE). (Bug#35170)When
getGeneratedKeys()was called on a statement that had not been created withRETURN_GENERATED_KEYS, no exception was thrown, and batched executions then returned erroneous values. (Bug#34185)The
loadBalancebestResponseTimeblacklists did not have a global state. (Bug#33861)
Functionality added or changed:
Multiple result sets were not supported when using streaming mode to return data. Both normal statements and the resul sets from stored procedures now return multiple results sets, with the exception of result sets using registered
OUTPUTparamaters. (Bug#33678)XAConnections and datasources have been updated to the JDBC-4.0 standard.
The profiler event handling has been made extensible via the
profilerEventHandlerconnection property.Add the
verifyServerCertificatepropery. If set to "false" the driver will not verify the server's certificate whenuseSSLis set to "true"When using this feature, the keystore parameters should be specified by the
clientCertificateKeyStore*properties, rather than system properties, as the JSSE doesn't it straightforward to have a nonverifying trust store and the "default" key store.
Bugs fixed:
DatabaseMetaData.getColumns()returns incorrectCOLUMN_SIZEvalue forSETcolumn. (Bug#36830)When trying to read
Timevalues like “00:00:00” withResultSet.getTime(int)an exception is thrown. (Bug#36051)JDBC connection URL parameters is ignored when using
MysqlConnectionPoolDataSource. (Bug#35810)When
useServerPrepStmts=trueand slow query logging is enabled, the connector throws aNullPointerExceptionwhen it encounters a slow query. (Bug#35666)When using the keyword “loadbalance” in the connection string and trying to perform load balancing between two databases, the driver appears to hang. (Bug#35660)
JDBC data type getter method was changed to accept only column name, whereas previously it accepted column label. (Bug#35610)
Prepared statements from pooled connections caused a
NullPointerExceptionwhenclosed()under JDBC-4.0. (Bug#35489)In calling a stored function returning a
bigint, an exception is encountered beginning:java.sql.SQLException: java.lang.NumberFormatException: For input string:
followed by the text of the stored function starting after the argument list. (Bug#35199)
The JDBC driver uses a different method for evaluating column names in
resultsetmetadata.getColumnName()and when looking for a column inresultset.getObject(columnName). This causes Hibernate to fail in queries where the two methods yield different results, for example in queries that use alias names:SELECT column AS aliasName from table
MysqlConnectionPoolDataSourcedoes not supportReplicationConnection. Notice that we implementedcom.mysql.jdbc.ConnectionforReplicationConnection, however, only accessors from ConnectionProperties are implemented (not the mutators), and they return values from the currently active connection. All other methods fromcom.mysql.jdbc.Connectionare implemented, and operate on the currently active connection, with the exception ofresetServerState()andchangeUser(). (Bug#34937)ResultSet.getTimestamp()returns incorrect values for month/day ofTIMESTAMPs when using server-side prepared statements (not enabled by default). (Bug#34913)RowDataStaticdoes't always set the metadata inResultSetRow, which can lead to failures when unpackingDATE,TIME,DATETIMEandTIMESTAMPtypes when using absolute, relative, and previous result set navigation methods. (Bug#34762)When calling
isValid()on an active connection, if the timeout is nonzero then theConnectionis invalidated even if theConnectionis valid. (Bug#34703)It was not possible to truncate a
BLOBusingBlog.truncate()when using 0 as an argument. (Bug#34677)When using a cursor fetch for a statement, the internal prepared statement could cause a memory leak until the connection was closed. The internal prepared statement is now deleted when the corresponding result set is closed. (Bug#34518)
When retrieving the column type name of a geometry field, the driver would return
UNKNOWNinstead ofGEOMETRY. (Bug#34194)Statements with batched values do not return correct values for
getGeneratedKeys()whenrewriteBatchedStatementsis set totrue, and the statement has anON DUPLICATE KEY UPDATEclause. (Bug#34093)The internal class
ResultSetInternalMethodsreferenced the nonpublic classcom.mysql.jdbc.CachedResultSetMetaData. (Bug#33823)A
NullPointerExceptioncould be raised when using client-side prepared statements and enabled the prepared statement cache using thecachePrepStmts. (Bug#33734)Using server side cursors and cursor fetch, the table metadata information would return the data type name instead of the column name. (Bug#33594)
ResultSet.getTimestamp()would throw aNullPointerExceptioninstead of aSQLExceptionwhen called on an emptyResultSet. (Bug#33162)Load balancing connection using best response time would incorrectly "stick" to hosts that were down when the connection was first created.
We solve this problem with a black list that is used during the picking of new hosts. If the black list ends up including all configured hosts, the driver will retry for a configurable number of times (the
retriesAllDownconfiguration property, with a default of 120 times), sleeping 250ms between attempts to pick a new connection.We've also went ahead and made the balancing strategy extensible. To create a new strategy, implement the interface
com.mysql.jdbc.BalanceStrategy(which also includes our standard "extension" interface), and tell the driver to use it by passing in the class name via theloadBalanceStrategyconfiguration property. (Bug#32877)During a Daylight Savings Time (DST) switchover, there was no way to store two timestamp/datetime values , as the hours end up being the same when sent as the literal that MySQL requires.
Note that to get this scenario to work with MySQL (since it doesn't support per-value timezones), you need to configure your server (or session) to be in UTC, and tell the driver not to use the legacy date/time code by setting
useLegacyDatetimeCodeto "false". This will cause the driver to always convert to/from the server and client timezone consistently.This bug fix also fixes Bug#15604, by adding entirely new date/time handling code that can be switched on by
useLegacyDatetimeCodebeing set to "false" as a JDBC configuration property. For Connector/J 5.1.x, the default is "true", in trunk and beyond it will be "false" (that is, the old date/time handling code will be deprecated) (Bug#32577, Bug#15604)When unpacking rows directly, we don't hand off error message packets to the internal method which decodes them correctly, so no exception is raised, and the driver than hangs trying to read rows that aren't there. This tends to happen when calling stored procedures, as normal SELECTs won't have an error in this spot in the protocol unless an I/O error occurs. (Bug#32246)
When using a connection from
ConnectionPoolDataSource, someConnection.prepareStatement()methods would return null instead of the prepared statement. (Bug#32101)Using
CallableStatement.setNull()on a stored function would throw anArrayIndexOutOfBoundsexception when setting the last parameter to null. (Bug#31823)MysqlValidConnectionCheckerdoesn't properly handle connections created usingReplicationConnection. (Bug#31790)Retrieving the server version information for an active connection could return invalid information if the default character encoding on the host was not ASCII compatible. (Bug#31192)
Further fixes have been made to this bug in the event that a node is nonresponsive. Connector/J will now try a different random node instead of waiting for the node to recover before continuing. (Bug#31053)
ResultSetreturned byStatement.getGeneratedKeys()is not closed automatically when statement that created it is closed. (Bug#30508)DatabaseMetadata.getColumns()doesn't return the correct column names if the connection character isn't UTF-8. A bug in MySQL server compounded the issue, but was fixed within the MySQL 5.0 release cycle. The fix includes changes to all the sections of the code that access the server metadata. (Bug#20491)Fixed
ResultSetMetadata.getColumnName()for result sets returned fromStatement.getGeneratedKeys()- it was returning null instead of "GENERATED_KEY" as in 5.0.x.
The following features are new, compared to the 5.0 series of Connector/J
JDBC-4.0 support for setting per-connection client information (which can be viewed in the comments section of a query via
SHOW PROCESSLISTon a MySQL server, or can be extended to support custom persistence of the information via a public interface).Support for JDBC-4.0 XML processing via JAXP interfaces to DOM, SAX and StAX.
JDBC-4.0 standardized unwrapping to interfaces that include vendor extensions.
Functionality added or changed:
Added
autoSlowLogconfiguration property, overridesslowQueryThreshold*properties, driver determines slow queries by those that are slower than 5 * stddev of the mean query time (outside the 96% percentile).
Bugs fixed:
When a connection is in read-only mode, queries that are wrapped in parentheses were incorrectly identified DML statements. (Bug#28256)
The following features are new, compared to the 5.0 series of Connector/J
JDBC-4.0 support for setting per-connection client information (which can be viewed in the comments section of a query via
SHOW PROCESSLISTon a MySQL server, or can be extended to support custom persistence of the information via a public interface).Support for JDBC-4.0 XML processing via JAXP interfaces to DOM, SAX and StAX.
JDBC-4.0 standardized unwrapping to interfaces that include vendor extensions.
Functionality added or changed:
Connector/J now connects using an initial character set of
utf-8solely for the purpose of authentication to allow user names or database names in any character set to be used in the JDBC connection URL. (Bug#29853)Added two configuration parameters:
blobsAreStrings— Should the driver always treat BLOBs as Strings. Added specifically to work around dubious metadata returned by the server forGROUP BYclauses. Defaults to false.functionsNeverReturnBlobs— Should the driver always treat data from functions returningBLOBsas Strings. Added specifically to work around dubious metadata returned by the server forGROUP BYclauses. Defaults to false.
Setting
rewriteBatchedStatementstotruenow causes CallableStatements with batched arguments to be re-written in the form "CALL (...); CALL (...); ..." to send the batch in as few client-server round trips as possible.The driver now picks appropriate internal row representation (whole row in one buffer, or individual byte[]s for each column value) depending on heuristics, including whether or not the row has
BLOBorTEXTtypes and the overall row-size. The threshold for row size that will cause the driver to use a buffer rather than individual byte[]s is configured by the configuration propertylargeRowSizeThreshold, which has a default value of 2KB.The data (and how it is stored) for
ResultSetrows are now behind an interface which allows us (in some cases) to allocate less memory per row, in that for "streaming" result sets, we re-use the packet used to read rows, since only one row at a time is ever active.Added experimental support for statement "interceptors" via the
com.mysql.jdbc.StatementInterceptorinterface, examples are incom/mysql/jdbc/interceptors. Implement this interface to be placed "in between" query execution, so that it can be influenced (currently experimental).The driver will automatically adjust the server session variable
net_write_timeoutwhen it determines its been asked for a "streaming" result, and resets it to the previous value when the result set has been consumed. (The configuration property is namednetTimeoutForStreamingResults, with a unit of seconds, the value '0' means the driver will not try and adjust this value).JDBC-4.0 ease-of-development features including auto-registration with the
DriverManagervia the service provider mechanism, standardized Connection validity checks and categorizedSQLExceptionsbased on recoverability/retry-ability and class of the underlying error.Statement.setQueryTimeout()s now affect the entire batch for batched statements, rather than the individual statements that make up the batch.Errors encountered during
Statement/PreparedStatement/CallableStatement.executeBatch()whenrewriteBatchStatementshas been set totruenow returnBatchUpdateExceptionsaccording to the setting ofcontinueBatchOnError.If
continueBatchOnErroris set totrue, the update counts for the "chunk" that were sent as one unit will all be set toEXECUTE_FAILED, but the driver will attempt to process the remainder of the batch. You can determine which "chunk" failed by looking at the update counts returned in theBatchUpdateException.If
continueBatchOnErroris set to "false", the update counts returned will contain all updates up-to and including the failed "chunk", with all counts for the failed "chunk" set toEXECUTE_FAILED.Since MySQL doesn't return multiple error codes for multiple-statements, or for multi-value
INSERT/REPLACE, it is the application's responsibility to handle determining which item(s) in the "chunk" actually failed.New methods on com.mysql.jdbc.Statement:
setLocalInfileInputStream()andgetLocalInfileInputStream():setLocalInfileInputStream()sets anInputStreaminstance that will be used to send data to the MySQL server for aLOAD DATA LOCAL INFILEstatement rather than aFileInputStreamorURLInputStreamthat represents the path given as an argument to the statement.This stream will be read to completion upon execution of a
LOAD DATA LOCAL INFILEstatement, and will automatically be closed by the driver, so it needs to be reset before each call toexecute*()that would cause the MySQL server to request data to fulfill the request forLOAD DATA LOCAL INFILE.If this value is set to
NULL, the driver will revert to using aFileInputStreamorURLInputStreamas required.getLocalInfileInputStream()returns theInputStreaminstance that will be used to send data in response to aLOAD DATA LOCAL INFILEstatement.This method returns
NULLif no such stream has been set viasetLocalInfileInputStream().
Setting
useBlobToStoreUTF8OutsideBMPtotruetells the driver to treat[MEDIUM/LONG]BLOBcolumns as[LONG]VARCHARcolumns holding text encoded in UTF-8 that has characters outside the BMP (4-byte encodings), which MySQL server can't handle natively.Set
utf8OutsideBmpExcludedColumnNamePatternto a regex so that column names matching the given regex will still be treated asBLOBsThe regex must follow the patterns used for thejava.util.regexpackage. The default is to exclude no columns, and include all columns.Set
utf8OutsideBmpIncludedColumnNamePatternto specify exclusion rules to utf8OutsideBmpExcludedColumnNamePattern". The regex must follow the patterns used for thejava.util.regexpackage.
Bugs fixed:
setObject(int, Object, int, int)delegate in PreparedStatmentWrapper delegates to wrong method. (Bug#30892)NPE with null column values when
padCharsWithSpaceis set to true. (Bug#30851)Collation on
VARBINARYcolumn types would be misidentified. A fix has been added, but this fix only works for MySQL server versions 5.0.25 and newer, since earlier versions didn't consistently return correct metadata for functions, and thus results from subqueries and functions were indistinguishable from each other, leading to type-related bugs. (Bug#30664)An
ArithmeticExceptionorNullPointerExceptionwould be raised when the batch had zero members andrewriteBatchedStatements=truewhenaddBatch()was never called, orexecuteBatch()was called immediately afterclearBatch(). (Bug#30550)Closing a load-balanced connection would cause a
ClassCastException. (Bug#29852)Connection checker for JBoss didn't use same method parameters via reflection, causing connections to always seem "bad". (Bug#29106)
DatabaseMetaData.getTypeInfo()for the typesDECIMALandNUMERICwill return a precision of 254 for server versions older than 5.0.3, 64 for versions 5.0.3-5.0.5 and 65 for versions newer than 5.0.5. (Bug#28972)CallableStatement.executeBatch()doesn't work when connection propertynoAccessToProcedureBodieshas been set totrue.The fix involves changing the behavior of
noAccessToProcedureBodies,in that the driver will now report all paramters as "IN" paramters but allow callers to call registerOutParameter() on them without throwing an exception. (Bug#28689)DatabaseMetaData.getColumns()doesn't containSCOPE_*orIS_AUTOINCREMENTcolumns. (Bug#27915)Schema objects with identifiers other than the connection character aren't retrieved correctly in
ResultSetMetadata. (Bug#27867)Connection.getServerCharacterEncoding()doesn't work for servers with version >= 4.1. (Bug#27182)The automated SVN revisions in
DBMD.getDriverVersion(). The SVN revision of the directory is now inserted into the version information during the build. (Bug#21116)Specifying a "validation query" in your connection pool that starts with "/* ping */" _exactly_ will cause the driver to instead send a ping to the server and return a fake result set (much lighter weight), and when using a ReplicationConnection or a LoadBalancedConnection, will send the ping across all active connections.
This is a new Beta development release, fixing recently discovered bugs.
Functionality added or changed:
Setting the configuration property
rewriteBatchedStatementstotruewill now cause the driver to rewrite batched prepared statements with more than 3 parameter sets in a batch into multi-statements (separated by ";") if they are not plain (that is, withoutSELECTorON DUPLICATE KEY UPDATEclauses)INSERTorREPLACEstatements.
This is a new Alpha development release, adding new features and fixing recently discovered bugs.
Functionality added or changed:
Incompatible Change: Pulled vendor-extension methods of
Connectionimplementation out into an interface to supportjava.sql.Wrapperfunctionality fromConnectionPoolDataSource. The vendor extensions are javadoc'd in thecom.mysql.jdbc.Connectioninterface.For those looking further into the driver implementation, it is not an API that is used for plugability of implementations inside our driver (which is why there are still references to
ConnectionImplthroughout the code).We've also added server and client
prepareStatement()methods that cover all of the variants in the JDBC API.Connection.serverPrepare(String)has been re-named toConnection.serverPrepareStatement()for consistency withConnection.clientPrepareStatement().Row navigation now causes any streams/readers open on the result set to be closed, as in some cases we're reading directly from a shared network packet and it will be overwritten by the "next" row.
Made it possible to retrieve prepared statement parameter bindings (to be used in
StatementInterceptors, primarily).Externalized the descriptions of connection properties.
The data (and how it is stored) for
ResultSetrows are now behind an interface which allows us (in some cases) to allocate less memory per row, in that for "streaming" result sets, we re-use the packet used to read rows, since only one row at a time is ever active.Similar to
Connection, we pulled out vendor extensions toStatementinto an interface named