Released on 3 Aug 2010
MySQL 5.1.50 Changelog
  • icc Notes

  • InnoDB Plugin Notes

  • Functionality Added or Changed

  • Bugs Fixed

icc Notes

  • This is the final release of MySQL 5.1 for which Generic Linux MySQL binary packages built with the icc compiler on x86 and x86_64 will be offered. These were previously produced as an alternative to our main packages built using gcc, as they provided noticeable performance benefits. In recent times the performance differences have diminished and build and runtime problems have surfaced, thus it is no longer viable to continue producing them.

    We continue to use the icc compiler to produce our distribution-specific RPM packages on ia64.

InnoDB Plugin Notes

  • InnoDB Plugin has been upgraded to version 1.0.11. This version is considered of General Availability (GA) quality.

    In this release, the InnoDB Plugin is included in source and binary distributions, except RHEL3, RHEL4, SuSE 9 (x86, x86_64, ia64), generic Linux RPM packages, and any builds produced with the icc compiler. It also does not work for FreeBSD 6 and HP-UX or for Linux on generic ia64.

Functionality Added or Changed

  • REPAIR TABLE and OPTIMIZE TABLE table now catch and throw any errors that occur while copying table statistics from the old corrupted file to newly created file. For example. if the user ID of the owner of the .frm, .MYD, or .MYI file is different from the user ID of the mysqld process, REPAIR TABLE and OPTIMIZE TABLE generate a "cannot change ownership of the file" error unless mysqld is started by the root user. (Bug #61598, Bug #13600058)

Bugs Fixed

  • Security Fix: A security bug was fixed. (Bug #49124)

  • InnoDB: The server could crash on shutdown, if started with --innodb-use-system-malloc=0. (Bug #55581, Bug #11762927)

  • InnoDB: For debug builds, the database server could crash when renaming a table that had active transactions. (Bug #54453)

  • InnoDB: The server could crash during the recovery phase of startup, if it previously crashed while inserting BLOB or other large columns that use off-page storage into an InnoDB table created with ROW_FORMAT=REDUNDANT or ROW_FORMAT=COMPACT. (Bug #54408)

  • InnoDB: For an InnoDB table created with ROW_FORMAT=COMPRESSED or ROW_FORMAT=DYNAMIC, a query using the READ UNCOMMITTED isolation level could cause the server to stop with an assertion error, if BLOB or other large columns that use off-page storage were being inserted at the same time. (Bug #54358)

  • Partitioning: UPDATE and INSERT statements affecting partitioned tables performed poorly when using row-based replication. (Bug #52517)

    References: This bug is a regression of Bug #39084.

  • Partitioning: INSERT ON DUPLICATE KEY UPDATE statements performed poorly on tables having many partitions. The handler function for reading a row from a specific index was not optimized in the partitioning handler. (Bug #52455)

  • Replication: When using the row-based logging format, a failed CREATE TABLE ... SELECT statement was written to the binary log, causing replication to break if the failed statement was later re-run on the master. In such cases, a DROP TABLE ... IF EXIST statement is now logged in the event that a CREATE TABLE ... SELECT fails. (Bug #55625)

  • GROUP BY operations used max_sort_length inconsistently. (Bug #55188)

  • Building MySQL on Solaris 8 x86 failed when using Sun Studio due to gcc inline assembly code. (Bug #55061)

  • In debug builds, an assertion could be raised when the server tried to send an OK packet to the client after having failed to detect errors during processing of the WHERE condition of an UPDATE statement. (Bug #54734)

  • A join with an aggregated function and impossible WHERE condition returned an extra row. (Bug #54416)

  • A client could supply data in chunks to a prepared statement parameter other than of type TEXT or BLOB using the mysql_stmt_send_long_data() C API function (or COM_STMT_SEND_LONG_DATA command). This led to a crash because other data types are not valid for long data. (Bug #54041)

  • mysql_secure_installation did not properly identify local accounts and could incorrectly remove nonlocal root accounts. (Bug #54004)

  • Portability problems in SHOW STATUS could lead to incorrect results on some platforms. (Bug #53493)

  • Builds of MySQL generated a large number of warnings. (Bug #53445)

  • With lower_case_table_names set to a nonzero value, searches for table or database names in INFORMATION_SCHEMA tables could produce incorrect results. (Bug #53095)

  • The ABI check for MySQL failed to compile with gcc 4.5. (Bug #52514)

  • mysql_secure_installation sometimes failed to locate the mysql client. (Bug #52274)

  • Reading a ucs2 data file with LOAD DATA INFILE was subject to three problems. 1) Incorrect parsing of the file as ucs2 data, resulting in incorrect length of the parsed string. This is fixed by truncating the invalid trailing bytes (incomplete multibyte characters) when reading from the file. 2) Reads from a proper ucs2 file did not recognize newline characters. This is fixed by first checking whether a byte is a newline (or any other special character) before reading it as a part of a multibyte character. 3) When using user variables to hold column data, the character set of the user variable was set incorrectly to the database charset. This is fixed by setting it to the character set specified in the LOAD DATA INFILE statement, if any. (Bug #51876)

  • Searches in INFORMATION_SCHEMA tables for rows matching a nonexistent database produced an error instead of an empty query result. (Bug #49542)

  • On FreeBSD, memory mapping for MERGE tables could fail if underlying tables were empty. (Bug #47139)

  • The my_like_range_xxx() functions returned badly formed maximum strings for Asian character sets, which caused problems for storage engines. (Bug #45012)

  • A debugging assertion could be raised after a write failure to a closed socket. (Bug #42496)

  • An assertion failure occurred within yaSSL for very long keys. (Bug #29784)

    References: See also Bug #53463.