Released on 17 Jan 2007
MySQL 5.0.34 Changelog

This is a Monthly Rapid Update release of the MySQL Enterprise Server 5.0.

This section documents all changes and bug fixes that have been applied since the last MySQL Enterprise Server release (5.0.32).

  • Functionality Added or Changed

  • Bugs Fixed

Functionality Added or Changed

  • The --skip-thread-priority option now is enabled by default for binary Mac OS X distributions. Use of thread priorities degrades performance on Mac OS X. (Bug #18526)

  • Added the --disable-grant-options option to configure. If configure is run with this option, the --bootstrap, --skip-grant-tables, and --init-file options for mysqld are disabled and cannot be used. For Windows, the configure.js script recognizes the DISABLE_GRANT_OPTIONS flag, which has the same effect.

Bugs Fixed

  • MySQL Cluster: Hosts in clusters with large numbers of nodes could experience excessive CPU usage while obtaining configuration data. (Bug #25711)

  • MySQL Cluster: When a data node was shut down using the management client STOP command, a connection event (NDB_LE_Connected) was logged instead of a disconnection event (NDB_LE_Disconnected). (Bug #22773)

  • Cluster API: Invoking the NdbTransaction::execute() method using execution type Commit and abort option AO_IgnoreError could lead to a crash of the transaction coordinator (DBTC). (Bug #25090)

  • Cluster API: A unique index lookup on a nonexistent tuple could lead to a data node timeout (error 4012). (Bug #25059)

  • Referencing an ambiguous column alias in an expression in the ORDER BY clause of a query caused the server to crash. (Bug #25427)

  • Using a view in combination with a USING clause caused column aliases to be ignored. (Bug #25106)

  • A multiple-table DELETE QUICK could sometimes cause one of the affected tables to become corrupted. (Bug #25048)

  • An assertion failed incorrectly for prepared statements that contained a single-row uncorrelated subquery that was used as an argument of the IS NULL predicate. (Bug #25027)

  • Optimizations that are legal only for subqueries without tables and WHERE conditions were applied for any subquery without tables. (Bug #24670)

  • Some joins in which one of the joined tables was a view could return erroneous results or crash the server. (Bug #24345)

  • A view was not handled correctly if the SELECT part contained \Z. (Bug #24293)

  • The server was built even when configure was run with the --without-server option. (Bug #23973)

    References: See also Bug #32898.

  • OPTIMIZE TABLE tried to sort R-tree indexes such as spatial indexes, although this is not possible (see OPTIMIZE TABLE Syntax). (Bug #23578)

  • User-defined variables could consume excess memory, leading to a crash caused by the exhaustion of resources available to the MEMORY storage engine, due to the fact that this engine is used by MySQL for variable storage and intermediate results of GROUP BY queries. Where SET had been used, such a condition could instead give rise to the misleading error message You may only use constant expressions with SET, rather than Out of memory (Needed NNNNNN bytes). (Bug #23443)

  • A table created with the ROW_FORMAT = FIXED table option lost that option if an index was added or dropped with CREATE INDEX or DROP INDEX. (Bug #23404)

  • A deadlock could occur, with the server hanging on Closing tables, with a sufficient number of concurrent INSERT DELAYED, FLUSH TABLES, and ALTER TABLE operations. (Bug #23312)

  • A compressed MyISAM table that became corrupted could crash myisamchk and possibly the MySQL Server. (Bug #23139)

  • Changing the value of MI_KEY_BLOCK_LENGTH in myisam.h and recompiling MySQL resulted in a myisamchk that saw existing MyISAM tables as corrupt. (Bug #22119)

  • A crash of the MySQL Server could occur when unpacking a BLOB column from a row in a corrupted MyISAM table. This could happen when trying to repair a table using either REPAIR TABLE or myisamchk; it could also happen when trying to access such a broken row using statements like SELECT if the table was not marked as crashed. (Bug #22053)

  • The FEDERATED storage engine did not support the euckr character set. (Bug #21556)

  • mysqld_error.h was not installed when only the client libraries were built. (Bug #21265)

  • InnoDB: During a restart of the MySQL Server that followed the creation of a temporary table using the InnoDB storage engine, MySQL failed to clean up in such a way that InnoDB still attempted to find the files associated with such tables. (Bug #20867)

  • InnoDB: Optimizations removed in MySQL 5.0.28 were re-enabled except for files under the innobase/mem directory. (This is a fine-tuning of optimization disabling.) (Bug #19424)

  • Some CASE statements inside stored routines could lead to excessive resource usage or a crash of the server. (Bug #19194, Bug #24854)

  • Instance Manager could crash during shutdown. (Bug #19044)

  • The FEDERATED storage engine did not support the utf8 character set. (Bug #17044)

  • The optimizer removes expressions from GROUP BY and DISTINCT clauses if they happen to participate in expression = constant predicates of the WHERE clause, the idea being that, if the expression is equal to a constant, then it cannot take on multiple values. However, for predicates where the expression and the constant item are of different result types (for example, when a string column is compared to 0), this is not valid, and can lead to invalid results in such cases. The optimizer now performs an additional check of the result types of the expression and the constant; if their types differ, then the expression is not removed from the GROUP BY list. (Bug #15881)

  • Dropping a user-defined function sometimes did not remove the UDF entry from the mysql.proc table. (Bug #15439)

  • Inserting a row into a table without specifying a value for a BINARY(N) NOT NULL column caused the column to be set to spaces, not zeros. (Bug #14171)