Released on 3 Jun 2013
MySQL 5.1.70 Changelog

Bugs Fixed

  • Important Change; Replication: When the server was running with --binlog-ignore-db and SELECT DATABASE() returned NULL (that is, there was no currently selected database), statements using fully qualified table names in dbname.tblname format were not written to the binary log. This was because the lack of a currently selected database in such cases was treated as a match for any possible ignore option rather than for no such option; this meant that these statements were always ignored.

    Now, if there is no current database, a statement using fully qualified table names is always written to the binary log. (Bug #11829838, Bug #60188)

  • InnoDB: The fix for Bug #16722314 resulted in a linker error. (Bug #16798595)

  • InnoDB: Valgrind testing returned memory leak errors which resulted from a regression introduced by the fix for Bug #11753153. The dict_create_add_foreign_to_dictionary function would call pars_info_create but failed to call pars_info_free. (Bug #16754901)

  • InnoDB: Some characters in the identifier for a foreign key constraint are modified during table exports. (Bug #16722314, Bug #69062)

  • InnoDB: Crash recovery failed with a !recv_no_log_write assertion when reading a page. (Bug #16405422)

  • InnoDB: When tables are linked by foreign key constraints, loading one table would open other linked tables recursively. When numerous tables are linked by foreign key constraints, this would sometimes lead to a thread stack overflow causing the server to exit. Tables linked by foreign key constraints are now loaded iteratively. Cascade operations, which were also performed in a recursive manner, are now performed iteratively using an explicit stack. (Bug #16244691, Bug #65384)

  • Replication: Using the --replicate-* options (see Replication Slave Options and Variables) could in some cases lead to a memory leak on the slave. (Bug #16056813, Bug #67983)

  • Replication: The binary log contents got corrupted sometimes, because the function MYSQL_BIN_LOG::write_cache always thought it had reached the end-of-cache when the function my_b_fill() reported a '0,' while that could also mean an error had occurred. This fix makes sure that whenever my_b_fill() returns a '0,' an error check is performed on info->error. (Bug #14324766, Bug #60173)

  • The WKB reader for spatial operations could fail and cause a server exit. (Bug #16451878)

  • For debug builds, GROUP_CONCAT(... ORDER BY) within an ORDER BY clause could cause a server exit. (Bug #16347426)

  • A GROUP_CONCAT() invocation containing subquery having an outer reference caused the server to exit. (Bug #16347343)

  • If loose index scan was used on a query that used MIN(), a segmentation fault could occur. (Bug #16222245)

  • A prepared statement that used GROUP_CONCAT() and an ORDER BY clause that named multiple columns could cause the server to exit. (Bug #16075310)

  • ORDER BY MATCH ... AGAINST could cause a server exit. (Bug #16073689)

  • When a partition is missing, code in would retry 10 times and sleep for a microsecond each time while holding LOCK_open. The retry logic for partitioned tables was introduced as a fix for Bug#33349 but did not include a test case to validate it. This fix removes the retry logic for partitioned tables. If the problem reported in Bug#33349 reappears, a different solution will be explored. (Bug #15973904)

  • The mysql.server script exited with an error if the status command was executed with multiple servers running. (Bug #15852074)

  • When processing row-based-replication events in the old binary log format from prior to MySQL 5.1 GA builds, mysqlbinlog could result in out-of-bounds heap buffer reads and undefined behaviour. (Bug #14771299)

  • The mysql client allocated but did not free a string after reading each line in interactive mode, resulting in a memory leak. (Bug #14685362)

  • Grouping by an outer BLOB column in a subquery caused a server exit. (Bug #13966809, Bug #14700180)

  • The test for stack overrun did not work for recent gcc versions and could lead to server exit. (Bug #62856, Bug #13243248)

    References: See also Bug #42213.

  • The url columns in the mysql datatbase help tables were too short to hold some of the URLs in the help content. For new installations, these columns are now created as type TEXT to accommodate longer URLs.

    For upgrades, mysql_upgrade does not update the columns. Modify them manually using these statements:

    ALTER TABLE mysql.help_category MODIFY url TEXT NOT NULL;ALTER TABLE mysql.help_topic MODIFY url TEXT NOT NULL;

    (Bug #61520, Bug #12671635)

  • IF() function evaluations could produce different results when executed in a prepared versus nonprepared statement. (Bug #45370, Bug #11753852)