Newsletters older than 6 months may have links that are out of date. Please use the Search to check for updated links.
The following issues have been resolved in 3.23.58.
* Fixed buffer overflow in SET PASSWORD which could potentially be exploited by MySQL users with root privileges to execute random code or to gain shell access (thanks to Jedi/Sector One for spotting and reporting this one).
* Fixed server crash on `FORCE INDEX' in a query that contained "Range checked for each record" in the `EXPLAIN' output. (Bug #1172)
* Fixed table/column grant handling - proper sort order was not honored. (Bug #928)
* Fixed rare bug in MYISAM introduced in 4.0.3 where the index file header was not updated directly after an `UPDATE' of split dynamic rows. The symptom was that the table had a corrupted delete-link if mysqld was shut down or the table was checked directly after the update.
* Fixed `Can't unlock file' error when running `myisamchk --sort-index' on Windows. (Bug #1119)
* Fixed possible deadlock when changing `key_buffer_size' while the key cache was actively used. (Bug #1088)
* Fixed overflow bug in `MyISAM' and `ISAM' when a row is updated in a table with a large number of columns and at least one `BLOB/TEXT' column.
* Fixed incorrect result when doing `UNION' and `LIMIT #,#' when one didn't use braces around the `SELECT' parts.
* Fixed incorrect result when doing `UNION' and `ORDER BY .. LIMIT #' when one didn't use braces around the `SELECT' parts.
* Fixed problem with `SELECT SQL_CALC_FOUND_ROWS ... UNION ALL ... LIMIT #' where `FOUND_ROWS()' returned incorrect number of rows.
* Fixed unlikely stack bug when having a BIG expression of type `1+1-1+1-1...' in certain combinations. (Bug #871)
* Fixed the bug that sometimes prevented a table with a `FULLTEXT' index from being marked as "analyzed".
* Fixed MySQL so that the field length (in C API) for the second column in `SHOW CREATE TABLE' is always larger than the data length. The only known application that was affected by the old behaviour was Borland dbExpress, which truncated the output from the command. (Bug #1064)
* Fixed crash in comparisons of strings using the `tis620' character set. (Bug #1116)
* Fixed `ISAM' bug in `MAX()' optimisation.
* `myisamchk --sort-records=N' no longer marks table as crashed if sorting failed because of an inappropriate key. (Bug #892)
* Fixed a minor bug in `MyISAM' compressed table handling that sometimes made it impossible to repair compressed table in "Repair by sort" mode. "Repair with keycache" (`myisamchk --safe-recover') worked, though. (Bug #1015)
* Fixed bug in propagating the version number to the manual included in the distribution files. (Bug #1020)
* Fixed key sorting problem (a `PRIMARY' key declared for a column that is not explicitly marked `NOT NULL' was sorted after a `UNIQUE' key for a `NOT NULL' column).
* Fixed the result of `INTERVAL' when applied to a `DATE' value. (Bug #792)
* Fixed compiling of the embedded server library in the RPM spec file. (Bug #959)
* Added some missing files to the RPM spec file and fixed some RPM building errors that occurred on Red Hat Linux 9. (Bug #998)
* Fixed incorrect `XOR' evaluation in `WHERE' clause. (Bug #992)
* Fixed bug with processing in query cache merged tables constructed from more then 255 tables. (Bug #930)
* Fixed incorrect results from outer join query (e.g. `LEFT JOIN') when `ON' condition is always false, and range search in used. (Bug #926)
* Fixed a bug causing incorrect results from `MATCH ... AGAINST()' in some joins. (Bug #942)
* `MERGE' tables do not ignore "Using index" (from `EXPLAIN' output) anymore.
* Fixed a bug that prevented an empty table from being marked as "analyzed". (Bug #937)
* Fixed `myisamchk --sort-records' crash when used on compressed table.
* Fixed slow (as compared to 3.23) `ALTER TABLE' and related commands such as `CREATE INDEX'. (Bug #712)
* Fixed segmentation fault resulting from `LOAD DATA FROM MASTER' when the master was running without the `--log-bin' option. (Bug #934)
* Fixed a security bug: A server compiled without SSL support still allowed connections by users that had the `REQUIRE SSL' option specified for their accounts.
* Fixed a random bug: Sometimes the slave would replicate `GRANT' or `REVOKE' queries even if it was configured to exclude the `mysql' database from replication (for example, using `replicate-wild-ignore-table=mysql.%'). (Bug #980)
* The `Last_errno' and `Last_error' fields in the output of `SHOW SLAVE STATUS' are now cleared by `CHANGE MASTER' and when the slave SQL thread starts. (Bug #986)
* A documentation mistake: It said that `RESET SLAVE' does not change connection information (master host, port, user, and password), whereas it does. The statement resets these to the startup options (`master-host' etc) if there were some. (Bug #985)
* `SHOW SLAVE STATUS' now shows correct information (master host, port, user, and password) after `RESET SLAVE' (that is, it shows the new values, which are copied from the startup options if there were some). (Bug #985)
* Disabled propagation of the original master's log position for events because this caused unexpected values for `Exec_master_log_pos' and problems with `MASTER_POS_WAIT()' in A->B->C replication setup. (Bug #1086)
* Fixed a segfault in `mysqlbinlog' when `--position=x' was used with `x' being between a `Create_file' event and its fellow `Append_block', `Exec_load' or `Delete_file' events. (Bug #1091)
* `mysqlbinlog' printed superfluous warnings when using `--database', which caused syntax errors when piped to `mysql'. (Bug #1092)
* Made `mysqlbinlog --database' filter `LOAD DATA INFILE' too (previously, it filtered all queries except `LOAD DATA INFILE'). (Bug #1093)
* `mysqlbinlog' in some cases forgot to put a leading `'#'' in front of the original `LOAD DATA INFILE' (this command is displayed only for information, not to be run; it is later reworked to `LOAD DATA LOCAL' with a different filename, for execution by `mysql'). (Bug #1096)
* `binlog-do-db' and `binlog-ignore-db' incorrectly filtered `LOAD DATA INFILE' (it was half-written to the binary log). This resulted in a corrupted binary log, which could cause the slave to stop with an error. (Bug #1100)
* When, in a transaction, a transactional table (such as an `InnoDB' table) was updated, and later in the same transaction a non-transactional table (such as a `MyISAM' table) was updated using the updated content of the transactional table (with `INSERT ... SELECT' for example), the queries were written to the binary log in an incorrect order. (Bug #873)
* When, in a transaction, `INSERT ... SELECT' updated a non-transactional table, and `ROLLBACK' was issued, no error was returned to the client. Now the client is warned that some changes could not be rolled back, as this was already the case for normal `INSERT'. (Bug #1113)
* Fixed a potential bug: When `STOP SLAVE' was run while the slave SQL thread was in the middle of a transaction, and then `CHANGE MASTER' was used to point the slave to some non-transactional statement, the SQL slave thread could get confused (because it would still think, from the past, that it was in a transaction).
* `mysqldump' now correctly quotes all identifiers when communicating with the server. This assures that during the dump process, `mysqldump' will never send queries to the server that result in a syntax error. This problem is *not* related to the `mysqldump' program's output, which was not changed. (Bug #1148)
* Change result set metadata information so that `MIN()' and `MAX()' report that they can return `NULL' (this is true because an empty set will return `NULL'). (Bug #324)
* A `GRANT' command that creates an anonymous user (that is, an account with an empty username) no longer requires `FLUSH PRIVILEGES' for the account to be recognized by the server. (Bug #473)
* `CHANGE MASTER' now flushes `relay-log.info'. Previously this was deferred to the next run of `START SLAVE', so if `mysqld' was shutdown on the slave after `CHANGE MASTER' without having run `START SLAVE', the relay log's name and position were lost. At restart they were reloaded from `relay-log.info', thus reverting to their old (incorrect) values from before `CHANGE MASTER' and leading to error messages (as the old relay log did not exist any more) and the slave threads refusing to start. (Bug #858)
Please refer to our bug database at http://bugs.mysql.com/ for more details about the individual bugs fixed in this version.