- News -
MySQL : MySQL 4.0.20 リリース
投稿者: webmaster 投稿日時: 2004-5-18 18:00:00 (9606 ヒット)

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

直前に 4.0.19 がリリースされましたが、致命的な問題(*1) があったために急遽、4.0.20 に差し替えられたようです。

シュするバグ (Bug #3596)

■4.0.20 での変更点
Functionality added or changed:

Phrase search in MATCH ... AGAINST ( ... IN BOOLEAN MODE) no longer matches partial words.
Bugs fixed:

- Fixed a bug in division / reporting incorrect metadata (number of digits after the decimal point). It can be seen, e.g. in CREATE TABLE t1 SELECT "0.01"/"3". (Bug #3612)

- Fixed a problem with non-working DROP DATABASE on some configurations (in particular, Linux 2.6.5 with ext3 are known to expose this bug). (Bug #3594)

- Fixed that in some replication error messages, a very long query caused the rest of the message to be invisible (truncated), by putting the query last in the message. (Bug #3357)

■4.0.19 での変更点
| Note: The MySQL 4.0.19 binaries were uploaded to the download
| mirrors on May, 10th. However, a potential crashing bug was found
| just before the 4.0.19 release was publicly announced and published
| from the 4.0 download pages at http://dev.mysql.com/.
| A fix for the bug was pushed into the MySQL source tree shortly after
| it could be reproduced and is included in MySQL 4.0.20. Users
| upgrading from MySQL 4.0.18 should upgrade directly to MySQL
| 4.0.20 or later.
| See (Bug #3596) for details (it was reported against MySQL-4.1, but
| was confirmed to affect 4.0.19 as well).

Functionality added or changed:

- If length of a timestamp field is defined as 19, the timestamp will be displayed as "YYYY-MM-DD HH:MM:SS. This is done to make it easier to use tables created in MySQL 4.1 to be used in MySQL 4.0.

- If you use RAID_CHUNKS with a value > 255 it will be set to 255. This was made to ensure that all raid directories are always 2 hex bytes. (Bug #3182)

- Changed that the optimizer will now consider the index specified in FORCE INDEX clause as a candidate to resolve ORDER BY as well.

- Non-standard behavior of UNION statements has changed to the standard ones. So far, a table name in the ORDER BY clause was tolerated. From now on a proper error message is issued (Bug #3064).

- Added max_insert_delayed_threads system variable as a synonym for max_delayed_threads.

- Added query_cache_wlock_invalidate system variable. It allow emulation of MyISAM table write-locking behavior, even for queries in the query cache. (Bug #2693)

- The keyword MASTER_SERVER_ID is not reserved anymore.

- The following is mainly relevant for Mac OS X users who use a case-insensitive filesystem. This is not relevant for Windows users as InnoDB in this case always stores file names in lower case: One can now force lower_case_table_names to 0 from the command line or a configuration file. This is useful with case-insensitive filesystems when you have previously not used lower_case_table_names=1 or lower_case_table_names=2 and your have already created InnoDB tables. With lower_case_table_names=0, InnoDB tables were stored in mixed case while setting lower_case_table_names <> 0 will now force it to lower case (to make the table names case insensitive). Because it's possible to crash MyISAM tables by referring to them with different case on a case-insensitive filesystem, we recommend that you use lower_case_table_names or lower_case_table_names=2 on such filesystems. The easiest way to convert to use lower_case_table_names=2 is to dump all your InnoDB tables with mysqldump, drop them and then restore them.

- Changed that the relay log is flushed to disk by the slave I/O thread every time it reads a relay log event. This reduces the risk of losing some part of the relay log in case of brutal crash.

- When a session having open temporary tables terminates, the statement automatically written to the binary log is now DROP TEMPORARY TABLE IF EXISTS instead of DROP TEMPORARY TABLE, for more robustness.

- Added option --replicate-same-server-id.

Bugs fixed:

- Added missing full-text variable ft_stopword_file to myisamchk.

- Don't allow stray ',' at the end of field specifications. (Bug #3481)

- INTERVAL now can handle big values for seconds, minutes and hours. (Bug #3498)

- Blank hostname did not work as documented for table and column privileges. Now it's works the same way as '%'. (Bug #3473)

- Fixed a harmless buffer overflow in `replace' utility. (Bug# 3541)

- Fixed SOUNDEX() to ignore non-alphabetic characters also in the beginning of the string. (Bug #3556)

- Fixed a bug in MATCH ... AGAINST() searches when another thread was doing concurrent inserts into the MyISAM table in question. The first --- full-text search -- query could return incorrect results in this case (e.g. ``phantom'' rows or not all matching rows, even an empty result set). The easiest way to check whether you are affected is to start `mysqld' with --skip-concurrent-insert switch and see if it helps.

- Fixed bug when doing DROP DATABASE on a directory containing non- MySQL files. Now a proper error message is returned.

- Fixed bug in ANALYZE TABLE on a BDB table inside a transaction that hangs server thread. (Bug #2342)

- Fixed a symlink vulnerability in `mysqlbug' script. (Bug #3284)

- Fixed core dump bug in SELECT DISTINCT where all selected parts where constants and there were hidden columns in the created temporary table. (Bug #3203)

- Fixed core dump bug in COUNT(DISTINCT) when there was a lot of values and one had a big value for max_heap_table_size.

- Fixed problem with multi-table-update and BDB tables. (Bug: #3098)

- Fixed memory leak when dropping database with RAID tables. (Bug #2882)

- Fixed core dump crash in replication during relay-log switch when the relay log went over max_relay_log_size and the slave thread did a flush_io_cache() at the same time.

- Fixed hangup bug when issuing multiple SLAVE START from different threads at the same time. (Bug #2921)

- Fixed bug when using DROP DATABASE with lower_case_table_names=2.

- Fixed wrong result in UNION when using lower_case_table_names=2. (Bug #2858)

- One can now kill threads that is 'stuck' in the join optimizer (can happen when there is MANY tables in the join in which case the optimizer can take really long time). (Bug #2825)

- Rollback DELETE and UPDATE statements if thread is killed. (Bug #2422)

- Ensure that all rows in an INSERT DELAYED statement is written at once if binary logging is enabled. (Bug #2491).

- Fixed bug in query cache statistic, more accurate formula linked statistic variables mentioned in the manual.

- Fixed a bug in parallel repair (myisamchk -p, myisam_repair_threads) - sometimes repair process failed to repair a table. (Bug #1334)

- Fixed bugs with names of tables, databases and columns that end to space (Bug #2985)

- Fixed a bug in multiple-table UPDATE statements involving at least one constant table. Bug was exhibited in allowing non matching row to be updated. (Bug #2996).

- Fixed all bugs in scripts for creating/upgrading system database (Bug #2874) Added tests which guarantee against such bugs in the future.

- Fixed bug in `mysql' command-line client in interpreting quotes within comments. (Bug #539)

- --set-character-set and --character-sets-dir options in `myisamchk' now work.

- Fixed a bug in mysqlbinlog that caused one pointer to be free'd twice in some cases.

- Fixed a bug in boolean full-text search, that sometimes could lead to false matches in queries with several levels of subexpressions using + operator (for example, MATCH ... AGAINST('+(+(word1 word2)) +word3*' IN BOOLEAN MODE).

- Fixed Windows-specific portability bugs in `myisam_ftdump'.

- Fixed a bug in multiple-table DELETE that was caused by foreign key constraints. If the order of the tables established by MySQL optimizer did not match parent-child order, no rows were deleted and no error message was provided. (Bug #2799)

- Fixed a few years old bug in the range optimizer that caused a segmentation fault on some very rare queries. (Bug #2698)

- Replication: If a client connects to a slave server and issues an administrative statement for a table (for example, OPTIMIZE TABLE or REPAIR TABLE), this could sometimes stop the slave SQL thread. This does not lead to any corruption, but you must use START SLAVE to get replication going again. (Bug #1858) The bug was accidentally not fixed in 4.0.17 as it was unfortunately earlier said.

- Fixed that when a Rotate event is found by the slave SQL thread in the middle of a transaction, the value of Relay_Log_Pos in SHOW SLAVE STATUS remains correct. (Bug #3017)

- Corrected the master's binary log position that InnoDB reports when it is doing a crash recovery on a slave server. (Bug #3015)

- Changed that when a DROP TEMPORARY TABLE statement is automatically written to the binary log when a session ends, the statement is recorded with an error code of value zero (this ensures that killing a SELECT on the master does not result in a superfluous error on the slave). (Bug #3063)

- Changed that when a thread handling INSERT DELAYED (also known as a delayed_insert thread) is killed, its statements are recorded with an error code of value zero (killing such a thread does not endanger replication, so we thus avoid a superfluous error on the slave). (Bug #3081)

- Fixed deadlock when two START SLAVE commands were run at the same time. (Bug #2921)

- Fixed that a statement never triggers a superfluous error on the slave, if it must be excluded given the replicate-* options. The bug was that if the statement had been killed on the master, the slave would stop. (Bug #2983)

- The --local-load option of mysqlbinlog now requires an argument.

- Fixed a segmentation fault when running LOAD DATA FROM MASTER after RESET SLAVE. (Bug #2922)

- Fixed a rare error condition that caused the slave SQL thread spuriously to print the message Binlog has bad magic number and stop when it was not necessary to do so. (Bug #3401)

- Fixed the column Exec_master_log_pos (and its disk image in the relay-log.info file) to be correct if the master had version 3.23 (it was too big by 6 bytes). This bug does not exist in the 5.0 version. (Bug #3400)

- Fixed that mysqlbinlog does not forget to print a USE command under rare circumstances where the binary log contained a LOAD DATA INFILE command. (Bug #3415)

- Fixed a memory corruption when replicating a LOAD DATA INFILE when the master had version 3.23. Some smaller problems remain in this setup, See section 6.7 Replication Features and Known Problems. (Bug #3422)

- Multiple-table DELETE statements were always replicated by the slave if there were some replicate-*-ignore-table options and no replicate-*-do-table options. (Bug #3461)

- Fixed a crash of the MySQL slave server when it was built with --with-debug and replicating itself. (BUG #3568)

印刷用ページ このニュースを友達に送る
投稿者 スレッド