Newsletters older than 6 months may have links that are out of date. Please use the Search to check for updated links.
Please refer to our bug database at http://bugs.mysql.com/ for more details about the individual bugs fixed in this version.
Bugs fixed:
* `INSERT DELAYED ... SELECT...' could cause table corruption because tables were not locked properly. This is now fixed by ignoring `DELAYED' in this context. (Bug #1983)
* One can now configure MySQL as a Windows service as a normal user. (Bug #1802). Thanks to Richard Hansen for fixing this.
* Database names are now compared in lowercase in `ON' clauses when `lower_case_table_names' is set. (Bug #1736)
* `IGNORE ... LINES' option to `LOAD DATA INFILE' didn't work when used with fixed length rows. (Bug #1704)
* Fixed problem with `UNIX_TIMESTAMP()' for timestamps close to 0. (Bug #1998)
* Fixed problem with character values greater than 128 in the `QUOTE()' function. (Bug #1868)
* Fixed searching of `TEXT' with end space. (Bug #1651)
* Fixed caching bug in multiple-table updates where same table was used twice. (Bug #1711)
* Fixed directory permissions for the MySQL-server RPM documentation directory. (Bug #1672)
* Fixed `UPDATE REPLACE' on invalid enum value. (Bug #2023)
* `mysql' client program now correctly prints connection identifier returned by `mysql_thread_id()' as unsigned integer rather than as signed integer. (Bug #1951)
* `FOUND_ROWS()' could return incorrect number of rows after a query with an impossible `WHERE' condition. (Bug #1468)
* `SHOW DATABASES' no longer shows `.sym' files (on Windows) that do not point to a valid directory. (Bug #1385)
* Fixed a possible memory leak on Mac OS X when using the shared `libmysql.so' library. (from `pthread_key_create()'). (Bug #2061)
* Fixed bug in `UNION' statement with alias `*'. (Bug #1249)
* Fixed a bug in `DELETE ... ORDER BY ... LIMIT' where the rows where not deleted in the proper order. (Bug #1024, Bug #1697).
* Fixed serious problem with multi-threaded programs on Windows that used the embedded MySQL libraries. (Locks of tables were not handled correctly between different threads).
* Code cleanup: Fixed a few code defects (potential memory leaks, null pointer dereferences, uninitialized variables). Thanks to Reasoning Inc. for informing us about these findings.
* Fixed a buffer overflow error which occured with zero prepended values in some columns of the type `DECIMAL'. (Bug #2128)
* Filesort was never shown in `EXPLAIN' if query contained an `ORDER BY NULL' clause. (Bug #1335)
* Fixed invalidation of whole query cache on `DROP DATABASE'. (Bug #1898)
* Fixed bug in range optimizer that caused wrong results for some unlikely `AND'/`OR' queries. (Bug #1828)
* Fixed a crash in `ORDER BY' when ordering by expression and identifier. (Bug #1945)
* Fixed a crash in an open `HANDLER' when an `ALTER TABLE' was executed in a different connection. (Bug #1826)
* Fixed a bug in `trunc*' operator of full-text search which sometimes caused MySQL not to find all matched rows.
* Fixed bug prepending `0' characters to `DECIMAL' column values.
* Fixed optimizer bug, introduced in 4.0.16, when `REF' access plan was preferred to more efficient `RANGE' on another column.
* Fixed problem when installing a MySQL server as a Windows service using a command of the form `mysqld --install mysql --defaults-file=path-to-file'. (Bug #1643)
* Fixed an incorrect result from a query that uses only `const' tables (such as one-row tables) and non-constant expression (such as `RAND()'). (Bug #1271)
* Fixed bug when the optimizer did not take `SQL_CALC_FOUND_ROWS' into account if `LIMIT' clause was present. (Bug #1274)
* `mysqlbinlog' now asks for a password at the console when the `-p' or `--password' option is used with no argument. This is consistent with the way that other clients such `mysqladmin' and `mysqldump' already behave. *Note:* A consequence of this change is that it is no longer possible to invoke `mysqlbinlog' as `mysqlbinlog -p pass_val' (with a space between the `-p' option and the following password value). (Bug #1595)
* Fixed bug accidentally introduced in 4.0.16 where the slave SQL thread deleted its replicated temporary tables when `STOP SLAVE' was issued.
* In a "chain" replication setup `A->B->C', if 2 sessions on A updated temporary tables of the same name at the same time, the binary log of `B' became incorrect, resulting in `C' becoming confused. (Bug #1686)
* In a "chain" replication setup `A->B->C', if `STOP SLAVE' was issued on `B' while it was replicating a temporary table from `A', then when `START SLAVE' was issued on `B', the binary log of `B' became incorrect, resulting in `C' becoming confused. (Bug #1240)
* When `MASTER_LOG_FILE' and `MASTER_LOG_POS' were not specified, `CHANGE MASTER' used the coordinates of the slave I/O thread to set up replication, which broke replication if the slave SQL thread lagged behind the slave I/O thread. This caused the slave SQL thread to lose some events. The new behavior is to use the coordinates of the slave SQL thread instead. *Note `CHANGE MASTER TO': CHANGE MASTER TO. (Bug #1870)
* Now if integer is stored or converted to `TIMESTAMP' or `DATETIME' value checks of year, month, day, hour, minute and second ranges are performed and numbers representing illegal timestamps are converted to 0 value. This behavior is consistent with manual and with behavior of string to `TIMESTAMP'/`DATETIME' conversion. (Bug #1448)
* Fixed bug when `BIT_AND()' and `BIT_OR()' group functions returned incorrect value if `SELECT' used a temporary table and no rows were found. (Bug #1790).
* `BIT_AND()' is now unsigned in all contexts. This means that it will now return 18446744073709551615 (= 0xffffffffffffffff) instead of -1 if there were no rows in the result.
* Fixed bug with `BIT_AND()' still returning signed value for an empty set in some cases. (Bug #1972)
* Fixed bug with `^' (XOR) and `>>' (bit shift) still returning signed value in some cases. (Bug #1993)
* Replication: a rare race condition in the slave SQL thread, which could lead to a wrong complain that the relay log is corrupted. (Bug #2011)
* Replication: if an administrative command on a table (`OPTIMIZE TABLE', `REPAIR TABLE' etc) was run on the slave, this could sometimes stop the slave SQL thread (this did not led to any corruption; one just had to type `START SLAVE' to get replication going again). (Bug #1858)
* Replication: in the slave SQL thread, a multi-table `UPDATE' could produce a wrong complain that some record was not found in one table, if the `UPDATE' was preceded by a `INSERT ... SELECT'. (Bug #1701)
* Fixed deficiency in MySQL code which is responsible for scanning directories. This deficiency caused `SHOW TABLE STATUS' to be very slow for big number of tables in database even if single particular table were specified. (Bug #1952)