Version Historie vonMySQL Server 5.1.53

Bugs fixed:

  • InnoDB Storage Engine: Security Fix: A failed CREATE TABLE statement for an InnoDB table could allocate memory that was never freed. (Bug #56947)
  • InnoDB Storage Engine: A followup fix to bug #54678. TRUNCATE TABLE could still cause a crash (assertion error) in the debug version of the server. (Bug #57700)
  • InnoDB Storage Engine: The InnoDB system tablespace could grow continually for a server under heavy load. (Bug #57611)
  • InnoDB Storage Engine: Turning off the innodb_stats_on_metadata option could prevent the ANALYZE TABLE statement from updating the cardinality statistics of InnoDB tables. (Bug #57252)
  • InnoDB Storage Engine: If the server crashed during an ALTER TABLE operation on an InnoDB table, examining the table through SHOW CREATE TABLE or querying the INFORMATION_SCHEMA tables could cause the server to stop with an assertion error. (Bug #56982)
  • InnoDB Storage Engine: A query for an InnoDB table could return the wrong value if a column value was changed to a different case, and the column had a case-insensitive index. (Bug #56680)
  • InnoDB Storage Engine: A large number of foreign key declarations could cause the output of the SHOW CREATE STATEMENT statement to be truncated. (Bug #56143)
  • InnoDB Storage Engine: A compilation problem affected the InnoDB source code on NetBSD/sparc64. (Bug #53916)

See also Bug #59327.

  • Replication: SET PASSWORD caused row-based replication to fail between a MySQL 5.1 master and a MySQL 5.5 slave.

This fix makes it possible to replicate SET PASSWORD correctly, using row-based replication between a master running MySQL 5.1.53 or a later MySQL 5.1 release to a slave running MySQL 5.5.7 or a later MySQL 5.5 release. (Bug #57098)
See also Bug #55452, Bug #57357.

  • Replication: An ALTER TABLE statement against a MyISAM table that altered a column without setting its size caused the binary log to become corrupted, leading to replication failure. (Bug #56226)
  • Replication: When STOP SLAVE is issued, the slave SQL thread rolls back the current transaction and stops immediately if the transaction updates only tables which use transactional storage engines are updated. Previously, this occurred even when the transaction contained CREATE TEMPORARY TABLE statements, DROP TEMPORARY TABLE statements, or both, although these statements cannot be rolled back. Because temporary tables persist for the lifetime of a user session (in the case, the replication user), they remain until the slave is stopped or reset. When the transaction is restarted following a subsequent START SLAVE statement, the SQL thread aborts with an error that a temporary table to be created (or dropped) already exists (or does not exist, in the latter case).

Following this fix, if an ongoing transaction contains CREATE TEMPORARY TABLE statements, DROP TEMPORARY TABLE statements, or both, the SQL thread now waits until the transaction ends, then stops. (Bug #56118, Bug #11763416)

  • Replication: If there exist both a temporary table and a non-temporary table having the same name, updates normally apply only to the temporary table, with the exception of a CREATE TABLE ... SELECT statement that creates a non-temporary table having the same name as an existing temporary table. When such a statement was replicated using the MIXED logging format, and the statement was unsafe for row-based logging, updates were misapplied to the temporary table. (Bug #55478)

See also Bug #47899, Bug #55709.

  • Replication: When a slave tried to execute a transaction larger than the slave's value for max_binlog_cache_size, it crashed. This was caused by an assertion that the server should roll back only the statement but not the entire transaction when the error ER_TRANS_CACHE_FULL occurred. However, the slave SQL thread always rolled back the entire transaction whenever any error occurred, regardless of the type of error. (Bug #55375)
  • Replication: When making changes to relay log settings using CHANGE MASTER TO, the I/O cache was not cleared. This could result in replication failure when the slave attempted to read stale data from the cache and then stopped with an assertion. (Bug #55263)
  • Replication: Trying to read from a binary log containing a log event of an invalid type caused the slave to crash. (Bug #38718)
  • Replication: When replicating the mysql.tables_priv table, the Grantor column was not replicated, and was thus left empty on the slave. (Bug #27606)
  • SET GLOBAL debug could cause a crash on Solaris if the server failed to open the trace file. (Bug #57274)
  • A SELECT statement could produce a different number of rows than a CREATE TABLE ... SELECT that was supposed to select the same rows. (Bug #56423)
  • On file systems with case insensitive file names, and lower_case_table_names=2, the server could crash due to a table definition cache inconsistency. (Bug #46941)
  • Handling of host name lettercase in GRANT statements was inconsistent. (Bug #36742)