Released on 13 Aug 2008
MySQL 5.0.68 Changelog

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

This section documents all changes and bugfixes that have been applied since the last MySQL Enterprise Server release (5.0.66a). If you would like to receive more fine-grained and personalized update alerts about fixes that are relevant to the version and features you use, please consider subscribing to MySQL Enterprise (a commercial MySQL offering). For more details please see

Bugs Fixed

  • Security Enhancement: The server consumed excess memory while parsing statements with hundreds or thousands of nested boolean conditions (such as OR (OR ... (OR ... ))). This could lead to a server crash or incorrect statement execution, or cause other client statements to fail due to lack of memory. The latter result constitutes a denial of service. (Bug #38296)

  • Incompatible Change: SHOW STATUS took a lot of CPU time for calculating the value of the Innodb_buffer_pool_pages_latched status variable. Now this variable is calculated and included in the output of SHOW STATUS only if the UNIV_DEBUG symbol is defined at MySQL build time. (Bug #36600)

  • Server-side cursors were not initialized properly, which could cause a server crash. (Bug #38486)

  • Queries containing a subquery with DISTINCT and ORDER BY could cause a server crash. (Bug #38191)

  • For InnoDB tables, ORDER BY ... DESC sometimes returned results in ascending order. (Bug #37830)

  • Nesting of IF() inside of SUM() could cause an extreme server slowdown. (Bug #37662)

  • If the server failed to expire binary log files at startup, it could crash. (Bug #37027)

  • The UUID() function returned UUIDs with the wrong time; this was because the offset for the time part in UUIDs was miscalculated. (Bug #35848)

  • Freeing of an internal parser stack during parsing of complex stored programs caused a server crash. (Bug #35577, Bug #37269, Bug #37228)

  • Index scans performed with the sort_union() access method returned wrong results, caused memory to be leaked, and caused temporary files to be deleted when the limit set by sort_buffer_size was reached. (Bug #35477, Bug #35478)

  • If the server crashed with an InnoDB error due to unavailability of undo slots, errors could persist during rollback when the server was restarted: There are two UNDO slot caches (for INSERT and UPDATE). If all slots end up in one of the slot caches, a request for a slot from the other slot cache failed. This can happen if the request is for an UPDATE slot and all slots are in the INSERT slot cache, or vice versa. (Bug #35352)

  • For InnoDB tables, ALTER TABLE DROP failed if the name of the column to be dropped began with foreign. (Bug #35220)

  • Using OPTIMIZE TABLE as the first statement on an InnoDB table with an AUTO_INCREMENT column could cause a server crash. (Bug #34286)

  • mysql_install_db failed if the server was running with an SQL mode of TRADITIONAL. This program now resets the SQL mode internally to avoid this problem. (Bug #34159)

  • Cached queries that used 256 or more tables were not properly cached, so that later query invalidation due to a TRUNCATE TABLE for one of the tables caused the server to hang. (Bug #33362)

  • mysql_upgrade attempted to use the /proc file system even on systems that do not have it. (Bug #31605)

  • On NetWare, mysql_install_db could appear to execute normally even if it failed to create the initial databases. (Bug #30129)

  • The Serbian translation for the ER_INCORRECT_GLOBAL_LOCAL_VAR error was corrected. (Bug #29738)

  • In some cases, the parser interpreted the ; character as the end of input and misinterpreted stored program definitions. (Bug #26030)

  • The FLUSH PRIVILEGES statement did not produce an error when it failed. (Bug #21226)