MySQL バージョン4.0系列としては約4ヶ月ぶりに新バージョンのリリースです。
すでにメンテナンスモードに入っているためか、変更項目の大部分がバグ修正となっています。
状況によって ANALYZE TABLE でMyISAM テーブルが壊れる件や
状況によって CREATE TABLE ... SELECT で mysqld サーバが落ちる件
などが修正されています。
また、InnoDB で テーブル間に外部キーが設定されている場合の DROP DATABASE 文の問題も解決されています。
これは、DROP DATABASE時にこれまで 外部キーを意識せずに 各テーブルの DROP が行われていたために 外部キー制約によって DROP できずに残るテーブルがあり得たものを、
今回の修正により、外部キー制約の確認をして適切な順序で DROP TABLE が行われるように修正されたものです。
以下チェンジログ:
---------
News from the ChangeLog 4.0.25:
■機能の追加と変更:
- 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.
■バグ修正:
- 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.
投稿者 | スレッド |
---|