Released on 6 Feb 2009
MySQL 5.0.78 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.76). 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

  • Important Change: When installing MySQL on Windows, it was possible to install multiple editions (Complete, and Essential, for example) of the same version of MySQL, leading to two separate entries in the installed packages which were impossible to isolate. This could lead to problems with installation and uninstallation. The MySQL installer on Windows no longers permits multiple installations of the same version of MySQL on a single machine. (Bug #4217)

  • MySQL Cluster; Packaging: Packages for MySQL Cluster were missing the and libndbclient.a files. (Bug #42278)

  • An optimization introduced for Bug #37553 required an explicit cast to be added for some uses of TIMEDIFF() because automatic casting could produce incorrect results. (It was necessary to use TIME(TIMEDIFF(...)).) (Bug #42525)

  • The SSL certificates included with MySQL distributions were regenerated because the previous ones had expired. (Bug #42366)

  • Dependent subqueries such as the following caused a memory leak proportional to the number of outer rows:

    SELECT COUNT(*) FROM t1, t2 WHERE t2.b  IN (SELECT DISTINCT t2.b FROM t2 WHERE t2.b = t1.a);

    (Bug #42037)

  • Some queries using NAME_CONST(.. COLLATE ...) led to a server crash due to a failed type cast. (Bug #42014)

  • On Mac OS X, some of the universal client libraries were not actually universal and were missing code for one or more architectures. (Bug #41940)

  • DATE_FORMAT() could cause a server crash for year-zero dates. (Bug #41470)

  • When substituting system constant functions with a constant result, the server was not expecting NULL function return values and could crash. (Bug #41437)

  • For a TIMESTAMP NOT NULL DEFAULT ... column, storing NULL as the return value from some functions caused a cannot be NULL error. NULL returns now correctly cause the column default value to be stored. (Bug #41370)

  • The Windows installer displayed incorrect product names in some images. (Bug #40845)

  • The query cache stored only partial query results if a statement failed while the results were being sent to the client. This could cause other clients to hang when trying to read the cached result. Now if a statement fails, the result is not cached. (Bug #40264)

  • The expression ROW(...) IN (SELECT ... FROM DUAL) always returned TRUE. (Bug #39069)

  • The greedy optimizer could cause a server crash due to improper handling of nested outer joins. (Bug #38795)

  • Use of COUNT(DISTINCT) prevented NULL testing in the HAVING clause. (Bug #38637)

  • Enabling the sync_frm system variable had no effect on the handling of .frm files for views. (Bug #38145)

  • The query cache stored packets containing the server status of the time when the cached statement was run. This might lead to an incorrect transaction status on the client side if a statement was cached during a transaction and later served outside a transaction context (or vice versa). (Bug #36326)

  • If the system time was adjusted backward during query execution, the apparent execution time could be negative. But in some cases these queries would be written to the slow query log, with the negative execution time written as a large unsigned number. Now statements with apparent negative execution time are not written to the slow query log. (Bug #35396)

  • For mysqld_multi, using the --mysqld=mysqld_safe option caused the --defaults-file and --defaults-extra-file options to behave the same way. (Bug #32136)

  • Attempts to open a valid MERGE table sometimes resulted in a ER_WRONG_MRG_TABLE error. This happened after failure to open an invalid MERGE table had also generated an ER_WRONG_MRG_TABLE error. (Bug #32047)

  • The mysql_change_user() C API function caused global Com_xxx status variable values to be incorrect. (Bug #31222)

  • For Solaris package installation using pkgadd, the postinstall script failed, causing the system tables in the mysql database not to be created. (Bug #31164)

  • When installing the Windows service, using quotation marks around command-line configuration parameters could cause the quotation marks to be incorrectly placed around the entire command-line option, and not just the value. (Bug #27535)