Released on 1 Mar 2010
MySQL 5.1.45 Changelog
  • InnoDB Plugin Notes

  • Functionality Added or Changed

  • Bugs Fixed

InnoDB Plugin Notes

  • This release includes InnoDB Plugin 1.0.6. This version is considered of Release Candidate (RC) quality.

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

Functionality Added or Changed

  • mysqltest has a new --max-connections option to set a higher number of maximum permitted server connections than the default 128. This option can also be passed using (Bug #51135)

  • has a new --portbase option and a corresponding MTR_PORT_BASE environment variable for setting the port range, as an alternative to the existing --build-thread option. (Bug #50182)

  • now has a --gprof option that runs the server through the gprof profiler, much the same way the currently supported --gcov option runs it through gcov. (Bug #49345)

  • mysqltest now has a lowercase_result command that converts the output of the next statement to lowercase. This is useful for test cases where the lettercase may vary between platforms. (Bug #48863)

  • mysqltest now has a remove_files_wildcard command that removes files matching a pattern from a directory. (Bug #39774)

Bugs Fixed

  • InnoDB: SHOW INNODB STATUS could display incorrect information about deadlocks, when the deadlock detection routine stops early (to avoid excessive CPU usage). (Bug #49001)

  • Partitioning: Attempting to drop a partitioned table from one connection while waiting for the completion of an ALTER TABLE that had been issued from a different connection, and that changed the storage engine used by the table, could cause the server to crash. (Bug #42438)

  • Replication: Adding an index to a table on the master caused the slave to stop logging slow queries to the slow query log. (Bug #50620)

  • Replication: Queries written to the slow query log on the master were not written to the slow query log on the slave. (Bug #23300)

    References: See also Bug #48632.

  • mysqld_multi failed due to a syntax error in the script. (Bug #51468)

  • Referring to a subquery result in a HAVING clause could produce incorrect results. (Bug #50995)

  • The optimizer normally prefers use of filesort plus the join cache to a full index scan. But this combination was used even if the index is clustered, in which case, the clustered index scan can be faster. (Bug #50843)

  • For debug builds, SHOW BINARY LOGS raised an assertion if binary logging was not enabled. (Bug #50780)

  • The server did not recognize that the stored procedure cache became invalid if a view was created or modified within a procedure, resulting in a crash. (Bug #50624)

  • Incorrect handling of BIT columns in temporary tables could lead to spurious duplicate-key errors. (Bug #50591)

  • The second or subsequent invocation of a stored procedure containing DROP TRIGGER could cause a server crash. (Bug #50423)

  • Full-text queries that used the truncation operator (*) could enter an infinite loop. (Bug #50351)

  • For debug builds, an assertion was incorrectly raised in the optimizer when matching ORDER BY expressions. (Bug #50335)

  • Queries optimized with GROUP_MIN_MAX did not clean up KEYREAD optimizations properly, causing subsequent queries to return incomplete rows. (Bug #49902)

  • For dynamic format MyISAM tables containing LONGTEXT columns, a bulk INSERT ... ON DUPLICATE KEY UPDATE or bulk REPLACE could cause corruption. (Bug #49628)

  • For debug builds, with sql_safe_updates enabled, a multiple-table UPDATE with the IGNORE modifier could raise an assertion. (Bug #49534)

  • EXPLAIN EXTENDED crashed trying to print column names for a subquery in the FROM clause when the table had gone out of scope. (Bug #49487)

  • For InnoDB tables, the test for using an index for ORDER BY sorting did not distinguish between primary keys and secondary indexes and expected primary key values to be concatenated to index values the way they are to secondary key values. (Bug #49324)

  • mysqltest no longer permits you to execute an SQL statement on a connection after doing a send command, unless you do a reap first. This was previously accepted but could produce unpredictable results. (Bug #49269)

  • For debug builds on Windows, warnings about incorrect use of debugging directives were written to the error log. The directives were rewritten to eliminate these messages. (Bug #49025)

  • An .ARZ file missing from the database directory caused the server to crash. (Bug #48757)

  • Running SHOW CREATE TABLE on a view v1 that contained a function which accessed another view v2 could trigger a infinite loop if the view referenced within the function (v2) caused a warning to be raised while being opened. (Bug #48449)

  • Invalid memory reads could occur following a query that referenced a MyISAM table multiple times with a write lock. (Bug #48438)

  • For debug builds, creating a view containing a row constructor raised an assertion. (Bug #48294)

  • Slow CALL statements were not always logged to the slow query log because execution time for multiple-statement stored procedures was assessed incorrectly. (Bug #47905)

  • For debug builds, killing a SELECT retrieving from a view that was processing a function raised an assertion. (Bug #47736)

  • Failure to open a view with a nonexistent DEFINER was improperly handled and the server crashed later attempting to lock the view. (Bug #47734)

  • If EXPLAIN encountered an error in the query, a memory leak occurred. (Bug #45989)

  • Grouping by a subquery in a query with a DISTINCT aggregate function led to incorrect and unordered grouping values. (Bug #45640)

  • Propagation of a large unsigned numeric constant in WHERE expressions could lead to incorrect results. This also affected EXPLAIN EXTENDED, which printed incorrect numeric constants in such transformed WHERE expressions. (Bug #45360)

  • Valgrind warnings about uninitialized variables in optimizer code were corrected. (Bug #45195)

  • flush_cache_records() did not correctly check for errors that should cause statement execution to stop, leading to a server crash. (Bug #39022)

  • InnoDB logged an error repeatedly trying to load a page into the buffer pool, filling the error log and using excessive disk space. Now the number of attempts is limited to 100, after which the operation aborts with a message. (Bug #38901)

  • When building MySQL when using a different target directory (for example using the VPATH environment variable), the build of the embedded readline component failed. (Bug #35250)

  • INSERT INTO ... VALUES(DEFAULT) failed to insert the correct value for ENUM columns. For MyISAM tables, an empty value was inserted. For CSV tables, the table became corrupt. (Bug #33717)