Released on 24 Sep 2007
MySQL 5.1.22 Changelog
  • Functionality Added or Changed

  • Bugs Fixed

Functionality Added or Changed

  • There is a new innodb_autoinc_lock_mode system variable to configure the locking behavior that InnoDB uses for generating auto-increment values. The default behavior now is slightly different from before, which involves a minor incompatibility for multiple-row inserts that specify an explicit value for the auto-increment column in some but not all rows. See AUTO_INCREMENT Handling in InnoDB.

Bugs Fixed

  • MySQL Cluster; Replication: (Replication): Multi-master replication setups did not handle --log-slave-updates correctly. (Bug #30017)

  • MySQL Cluster: Backups of TIMESTAMP columns made with ndb_restore on a MySQL Cluster using data nodes hosts of one endian could not be used to restore the cluster's data to data node hosts of the other endian. (Bug #30134)

  • Replication: Row-based replication from a pre-5.1.22 MySQL Server to a MySQL 5.1.22 was unstable due to an uninitialized variable. (Bug #31076)

  • Replication: Operations that used the time zone replicated the time zone only for successful operations, but did not replicate the time zone for errors that need to know it. (Bug #29536)

  • For an InnoDB table if a SELECT was ordered by the primary key and also had a WHERE field = value clause on a different field that was indexed, a DESC order instruction would be ignored. (Bug #31001)

  • mysql_install_db could fail to find its message file. (Bug #30678)

  • Memory corruption occurred for some queries with a top-level OR operation in the WHERE condition if they contained equality predicates and other sargable predicates in disjunctive parts of the condition. (Bug #30396)

  • CONNECTION_ID() always returned 0 for the embedded server (libmysqld). (Bug #30389)

  • The server created temporary tables for filesort operations in the working directory, not in the directory specified by the tmpdir system variable. (Bug #30287)

  • Using KILL QUERY or KILL CONNECTION to kill a SELECT statement caused a server crash if the query cache was enabled. (Bug #30201)

  • mysqldump from the MySQL 5.1.21 distribution could not be used to create a dump from a MySQL 5.1.20 or older server. (Bug #30123)

  • Under some circumstances, a UDF initialization function could be passed incorrect argument lengths. (Bug #29804)

  • When using a combination of HANDLER... READ and DELETE on a table, MySQL continued to open new copies of the table every time, leading to an exhaustion of file descriptors. (Bug #29474)

    References: This bug was introduced by Bug #21587.

  • The mysql_list_fields() C API function incorrectly set MYSQL_FIELD::decimals for some view columns. (Bug #29306)

  • Tables using the InnoDB storage engine incremented AUTO_INCREMENT values incorrectly with ON DUPLICATE KEY UPDATE. (Bug #28781)

  • Nonrange queries of the form SELECT ... FROM ... WHERE keypart1=constant, ..., keypartN=constant ORDER BY ... FOR UPDATE sometimes were unnecessarily blocked waiting for a lock if another transaction was using SELECT ... FOR UPDATE on the same table. (Bug #28570)

  • On Windows, symbols for yaSSL and taocrypt were missing from mysqlclient.lib, resulting in unresolved symbol errors for clients linked against that library. (Bug #27861)

  • Read lock requests that were blocked by a pending write lock request were not permitted to proceed if the statement requesting the write lock was killed. (Bug #21281)