Historial de Versiones de MySQL Server 5.0.24 (x64)

Functionality added or changed:

  • In the INFORMATION_SCHEMA.ROUTINES table the ROUTINE_DEFINITION column now is defined as NULL rather than NOT NULL. Also, NULL rather than the empty string is returned as the column value if the user does not have sufficient privileges to see the routine definition. (Bug #20230)
  • The LEFT() and RIGHT() functions return NULL if any argument is NULL. (Bug #11728)
  • The innodb_log_arch_dir system variable (which has been unused since MySQL 4.0.6) is now deprecated and should no longer be used. It will be removed in MySQL 5.1.
  • Program Database files (extension .pdb) are now included by default in Windows distributions. These can be used to help diagnose problems with mysqld and other tools. See Section 20.4.1, “Debugging a MySQL Server”.

Bugs fixed:

  • Security Fix: If a user has access to MyISAM table t, that user can create a MERGE table m that accesses t. However, if the user's privileges on t are subsequently revoked, the user can continue to access t by doing so through m. If this behavior is undesirable, you can start the server with the new --skip-merge option to disable the MERGE storage engine. (Bug #15195, CVE-2006-4031)
  • MySQL Cluster: The ndb_size.pl script did not account for TEXT and BLOB column values correctly. (Bug #21204)
  • MySQL Cluster: The repeated creating and dropping of a table would eventually lead to NDB Error 826, Too many tables and attributes ... Insufficient space. (Bug #20847)
  • Replication: A race condition during slave server shutdown caused an assert failure. (Bug #20850)
  • Replication: With the auto_increment_increment system variable set larger than 1, if the next generated AUTO_INCREMENT value would be larger than the column's maximum value, the value would be clipped down to that maximum value and inserted, even if the resulting value would not be in the generated sequence. This could cause problems for master-master replication. Now the server clips the value down to the previous value in the sequence, which correctly produces a duplicate-key error if that value already exists in the column. (Bug #20524)
  • Replication: If a table on a slave server had a higher AUTO_INCREMENT counter than the corresponding master table (even though all rows of the two tables were identical), in some cases REPLACE or INSERT ... ON DUPLICATE KEY UPDATE would not replicate properly using statement-based logging. (Different values would be inserted on the master and slave.) (Bug #20188)
  • Under heavy load (executing more than 1024 simultaneous complex queries), a problem in the code that handles internal temporary tables could lead to writing beyond allocated space and memory corruption.

Use of more than 1024 simultaneous cursors server wide also could lead to memory corruption. This applies to both stored procedure cursors and C API cursors. (Bug #21206)

  • Failure to account for a NULL table pointer on big-endian machines could cause a server crash during type conversion. (Bug #21135)
  • mysqldump sometimes did not select the correct database before trying to dump views from it, resulting in an empty result set that caused mysqldump to die with a segmentation fault. (Bug #21014)
  • A SELECT that used a subquery in the FROM clause that did not select from a table failed when the subquery was used in a join. (Bug #21002)
  • REPLACE ... SELECT for a view required the INSERT privilege for tables other than the table being modified. (Bug #20989)
  • Issuing a SHOW CREATE FUNCTION or SHOW CREATE PROCEDURE statement without sufficient privileges could crash the mysql client. (Bug #20664)
  • In a view defined with SQL SECURITY DEFINER, the CURRENT_USER() function returned the invoker, not the definer. (Bug #20570)
  • SELECT @@INSERT_ID displayed a value unrelated to a preceding SET INSERT_ID. (It returned LAST_INSERT_ID instead.) (Bug #20392)
  • The mysql client did not understand help commands that had spaces at the end. (Bug #20328)
  • mysqldump produced a malformed dump file when dumping multiple databases that contained views. (Bug #20221)
  • For a DATE parameter sent using a MYSQL_TIME data structure, mysql_stmt_execute() zeroed the hour, minute, and second members of the structure rather than treating them as read only. (Bug #20152)
  • Performing INSERT ... SELECT ... JOIN ... USING without qualifying the column names caused ERROR 1052 "column 'x' in field list is ambiguous" even in cases where the column references were unambiguous. (Bug #18080)
  • Using the extended syntax for TRIM()—that is, TRIM(... FROM ...)—in a SELECT statement defining a view caused an invalid syntax error when selecting from the view. (Bug #17526)
  • Assignments of values to variables of type TEXT were handled incorrectly in stored routines. (Bug #17225)
  • DATE_ADD() and DATE_SUB() returned NULL when the result date was on the day '9999-12-31'. (Bug #12356)
  • The DATA DIRECTORY table option did not work for TEMPORARY tables. (Bug #8706)
  • Bug#10952 may cause inadvertent data loss. A fix for this bug was included in MySQL 5.0.23, but the approach used caused a loss of intended functionality. Because of this, that fix has been reverted in MySQL 5.0.24. As a consequence, the risk of inadvertent data loss still exists (see Bug#10952).