MySQL 4.0.25 がリリースされました。

最も普及しているオープンソースデータベース管理システムである MySQL 4.0.25 がリリースされました。





Functionality added or changed:

* Added –with-big-tables compilation option to configure. (Previously it was necessary to pass -DBIG_TABLES to the compiler manually in order to enable large table support.) Section 2.8.2, "Typical configure Options" for details.

Bugs fixed:

* A problem with the my_global.h file caused compilation of MySQL to fail on single-processor Linux systems running 2.6 kernels. (Bug #10364 (http://bugs.mysql.com/10364))
* Fixed a portability problem testing for crypt() support that caused compilation problems when using OpenSSL/yaSSL on HP-UX and Mac OS X. (Bug #10675 (http://bugs.mysql.com/10675), Bug #11150 (http://bugs.mysql.com/11150))
* MyISAM table corruption could occur with ANALYZE TABLE if a write lock was acquired with LOCK TABLES and then an INSERT or DELETE was done prior to analyzing the table. (Bug #10901 (http://bugs.mysql.com/10901))
* Fixed a server crash resulting from CREATE TABLE … SELECT that selected from a table being altered by ALTER TABLE. (Bug #10224 (http://bugs.mysql.com/10224))
* InnoDB: In DROP DATABASE, check for all referencing tables from other databases before dropping any tables. (Bug #10335 (http://bugs.mysql.com/10335))
* Fixed a problem with incorrect constant propagation resulting in incorrect evaluation of AND/OR queries. (Bug #10095 (http://bugs.mysql.com/10095))
* Fixed wrong buffer usage for auto-increment key with blob part that caused CHECK TABLE to report that the table was wrong. (Bug #10045 (http://bugs.mysql.com/10045))
* No error was raised for BOOLEAN full-text searches for storage engines that do not support full-text. (Bug #7709 (http://bugs.mysql.com/7709))
* The test in configure to see whether CXX specified gcc failed if gcc was specified as a full pathname. (Bug #9690 (http://bugs.mysql.com/9690))
* In the mysql_real_escape_string() C API function, when a multi-byte character is encountered that is illegal in the current character set, escape only the first byte, not each byte. This avoids creating a valid character from an invalid one. (Bug #9864 (http://bugs.mysql.com/9864); this is a backport of Bug #8378 (http://bugs.mysql.com/8378) from MySQL 4.1.11 to 4.0.25)
* Fixed a deadlock resulting from use of FLUSH TABLES WITH READ LOCK while an INSERT DELAYED statement is in progress. (Bug #7823 (http://bugs.mysql.com/7823))
* Fixed a segmentation fault in mysqlcheck that occurred when the last table checked in –auto-repair mode returned an error (such as the table being a MERGE table). (Bug #9492 (http://bugs.mysql.com/9492))
* Fixed faulty display of TIMESTAMP columns retrieved as col_name+0 while the new system variable is set to 1. (Bug #8894 (http://bugs.mysql.com/8894))
* Queries containing CURRENT_USER() incorrectly were registered in the query cache. (Bug #9796 (http://bugs.mysql.com/9796))
* Fixed problems with static variables to allow building on Fedora Core 3. (Bug #6554 (http://bugs.mysql.com/6554))
* An UPDATE that updated only some of the columns in a multiple-column index could result in a loop. (Bug #8942 (http://bugs.mysql.com/8942))
* REPAIR TABLE did not invalidate query results in the query cache that were generated from the table. (Bug #8480 (http://bugs.mysql.com/8480))
* Fixed a bug that caused concurrent inserts to be allowed into the tables in the SELECT … UNION … part of INSERT … SELECT … UNION …. This could result in the incorrect order of queries in the binary log. (Bug #9922 (http://bugs.mysql.com/9922))
* Fixed a bug that under certain circumstances could allow a privilege escalation via database wildcards in GRANT. (Bug #3924 (http://bugs.mysql.com/3924), CAN-2004-0957 (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0957))
* <=> was not properly comparing NULL values in the WHERE clause of outer joins. (Bug #8711 (http://bugs.mysql.com/8711))
* InnoDB: Fixed a bug: MySQL-4.0.23 and 4.0.24 could complain that an InnoDB table created with MySQL-3.23.49 or earlier was in the new compact InnoDB table format of 5.0.3 or later, and InnoDB would refuse to use that table. (The same bug exists in 4.1.8 – 4.1.10.) There is nothing wrong with the table, it is mysqld that is in error. Workaround: wait that 4.0.25 or 4.1.11 is released before doing an upgrade, or dump the table and recreate it with any MySQL version >= 3.23.50 before upgrading to 4.0.23 or 4.0.24