Dear MySQL users,
MySQL Server 5.5.32 is a new version of the 5.5 production release of the world's most popular open source database. MySQL 5.5.32 is recommended for use on production systems. MySQL 5.5 includes several high-impact enhancements to improve the performance and scalability of the MySQL Database, taking advantage of the latest multi-CPU and multi-core hardware and operating systems. In addition, with release 5.5, InnoDB is now the default storage engine for the MySQL Database, delivering ACID transactions, referential integrity and crash recovery by default. MySQL 5.5 also provides a number of additional enhancements including: - Significantly improved performance on Windows, with various Windows specific features and improvements - Higher availability, with new semi-synchronous replication and Replication Heartbeat - Improved usability, with Improved index and table partitioning, SIGNAL/RESIGNAL support and enhanced diagnostics, including a new Performance Schema monitoring capability. For a more complete look at what's new in MySQL 5.5, please see the following resources: MySQL 5.5 is GA, Interview with Tomas Ulin: http://dev.mysql.com/tech-resources/interviews/thomas-ulin-mysql-55.html Documentation: http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html Whitepaper: What's New in MySQL 5.5: http://www.mysql.com/why-mysql/white-papers/whats-new-in-mysql-5-5/ If you are running a MySQL production level system, we would like to direct your attention to MySQL Enterprise Edition, which includes the most comprehensive set of MySQL production, backup, monitoring, modeling, development, and administration tools so businesses can achieve the highest levels of MySQL performance, security and uptime. http://mysql.com/products/enterprise/ For information on installing MySQL 5.5.32 on new servers, please see the MySQL installation documentation at http://dev.mysql.com/doc/refman/5.5/en/installing.html For upgrading from previous MySQL releases, please see the important upgrade considerations at: http://dev.mysql.com/doc/refman/5.5/en/upgrading.html MySQL Database 5.5.32 is available in source and binary form for a number of platforms from our download pages at: http://dev.mysql.com/downloads/mysql/ The following section lists the changes in the MySQL source code since the previous released version of MySQL 5.5. It may also be viewed online at: http://dev.mysql.com/doc/relnotes/mysql/5.5/en/news-5-5-32.html Enjoy! Changes in MySQL 5.5.32 (2013-06-03) Functionality Added or Changed * mysql_upgrade now verifies that the server version matches the version against which it was compiled, and exits if there is a mismatch. In addiion, a --version-check option permits specifying whether to enable version checking (the default), or disable checking if given as --skip-version-checking. (Bug #16500013) 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: After a clean shutdown, InnoDB does not check .ibd file headers at startup. As a result, in a crash recovery scenario, InnoDB could load a corrupted tablespace file. This fix implements consistency and status checks to avoid loading corrupted files. (Bug #16720368) * InnoDB: The page_zip_available function would count some fields twice. (Bug #16463505) * InnoDB: In debug builds, an insert would fail with an invalid assertion: sync_thread_levels_g(array, level - 1, TRUE). (Bug #16409715) * InnoDB: Multiple concurrent calls to dict_update_statistics() would result in unnecessary server load. (Bug #16400412) * InnoDB: Crash recovery would fail with a !recv_no_log_write assertion when reading a page. (Bug #16405422) * InnoDB: When calling the lock_rec_block_validate() function after releasing the kernel mutex, there is a chance the lock might be invalid and result in a Valgrind error due to an invalid read on lock->index. This fix copies the lock->index when the kernel mutex is being held and passes the lock->index to lock_rec_block_validate(). (Bug #16268289) * InnoDB: When a transaction is in READ COMMITTED isolation level, gap locks are still taken in the secondary index when a row is inserted. This occurs when the secondary index is scanned for duplicates. The function row_ins_scan_sec_index_for_duplicate() always calls the function row_ins_set_shared_rec_lock() with LOCK_ORDINARY irrespective of the transaction isolation level. This fix modifies the row_ins_scan_sec_index_for_duplicate() function to call row_ins_set_shared_rec_lock() with LOCK_ORDINARY or LOCK_REC_NOT_GAP, based on the transaction isolation level. (Bug #16133801) * InnoDB: Starting mysqld with --innodb_log_buffer_size=50GB failed to allocate memory and returned NULL. For non-debug builds there was no check in place and a segmentation fault occurred. This fix adds a log message stating that memory failed to be allocated, and adds an assertion. (Bug #16069598) * InnoDB: When UNIV_DEBUG is enabled in debug builds, buf_validate() is often called which sometimes results in false alarms in tests on semaphore wait timeout. This fix increases counter values to reduce false alarms. (Bug #16068056) * InnoDB: The explain_filename function, which provides information about a partition by parsing the file name, would return an error when attempting to parse a file name with no partition information. (Bug #16051728) * InnoDB: For UPDATE statements in which an error occurred, it was possible for a temporary file opened during the update not to be closed. (Bug #15978766) * InnoDB: An overflow would occur for innodb_row_lock_time_max and innodb_row_lock_current_waits. This fix modifies code logic in storage/innobase/srv/srv0srv.c. (Bug #16005310) * Replication: Point-in-time recovery could fail when trying to restore a single database from a binary log in row-based format using mysqlbinlog with the --database option. (Bug #16698172) * Replication: When used with the options --dump-slave --include-master-host-port, mysqldump printed the port number within quotation marks, as if it were a string value rather than an integer. (Bug #16615117) * Replication: Running the server with both the --log-slave-updates and --replicate-wild-ignore-table options in some cases caused updates to user variables not to be logged. (Bug #16541422) * Replication: Following disconnection from the master, the slave could under certain conditions report erroneously on reconnection that it had received a packet that was larger than slave_max_allowed_packet, causing replication to fail. (Bug #16438800, Bug #68490) * Replication: When semisynchronous replication was enabled, the automatic dropping on the master of an event created using ON COMPLETION NOT PRESERVE caused the master to fail. (Bug #15948818, Bug #67276) * Replication: Setting a SET column to NULL inside a stored procedure caused replication to fail. (Bug #14593883, Bug #66637) * Replication: When replicating to a BLACKHOLE table using the binary logging format, updates and deletes cannot be applied and so are skipped. Now a warning is generated for this whenever it occurs. Note binlog_format=STATEMENT is recommended when replicating to tables that use the BLACKHOLE storage engine. (Bug #13004581) * The WKB reader for spatial operations could fail and cause a server exit. (Bug #16451878) * EXPORT_SET() or MAKE_SET() with many COUNT(*) arguments could cause a server exit. (Bug #16359402) * Several scripts in the sql-bench directory that were supposed to be executable did not have the executable access bit set. (Bug #16395606) * For debug builds, DBUG_EXPLAIN resulted in a buffer overflow when the debug system variable value was more than 255 characters. (Bug #16402143) * thread_pool_high_priority_connection could not be set at server startup. (Bug #16310373) * Oracle RPM packages were unusable by yum due to issues with the obsoletes line in the .spec file causing yum to interpret the package as obsoleting itself. (Bug #16298542) * A GROUP_CONCAT() invocation containing subquery having an outer reference caused the server to exit. (Bug #16347343) * For debug builds, GROUP_CONCAT(... ORDER BY) within an ORDER BY clause could cause a server exit. (Bug #16347426) * If loose index scan was used on a query that used MIN(), a segmentation fault could occur. (Bug #16222245) * If multiple statements were sent in a single request, the audit log plugin logged only the last one. Now it logs each statement separately. (Bug #16169063) * 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 ha_innodb.cc 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) * A query with a union and a join could crash the parser. (Bug #14786792, Bug #16076289) * Installation using Solaris packages ran mysql_install_db during upgrade operations (this should occur only for new installations). (Bug #14747671, Bug #16534721) * 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) * INSERT ... ON DUPLICATE KEY UPDATE on a view could cause a server exit. (Bug #14261010) * Grouping by an outer BLOB column in a subquery caused a server exit. (Bug #13966809, Bug #14700180) * The server could exit due to improper handling of the error from an invalid comparison. (Bug #13009341) * The CMake check for unsigned time_t failed on all platforms. (Bug #11766815) * On 64-bit Mac OS X systems, CMake used x86 rather than x86_64 when determining the machine type. (Bug #58462, Bug #11765489) * The parser rejected legal queries that involved a UNION where the right hand side query term has a table in parenthese. (Bug #54382, Bug #11761854) * 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 Loose Index Scan was used to evaluate a query that compared an integer column to an integer specified as a quoted string (for example, col_name = '1'), the query could return incorrect results. (Bug #68473, Bug #16394084) * IF() function evaluations could produce different results when executed in a prepared versus nonprepared statement. (Bug #45370, Bug #11753852) * It is now possible to suppress installation of the mysql-test directory after compiling MySQL from source by invoking CMake with the INSTALL_MYSQLTESTDIR option explicitly set to empty: cmake . -DINSTALL_MYSQLTESTDIR= Previously, attempts to do this resulted in an error. (Bug #58615, Bug #11765629) * Using range access with an index prefix could produce incorrect results. (Bug #68750, Bug #16540042) * MD5() code did not properly initialize one of its data structures. (Bug #68909, Bug #16626742) * When specified in an option file, the plugin-dir client option was ignored. (Bug #68800, Bug #16680313) * If an UPDATE containing a subquery caused a deadlock inside InnoDB, the deadlock was not properly handled by the SQL layer. The SQL layer then tried to unlock the row after InnoDB rolled back the transaction, raising an assertion inside InnoDB. (Bug #69127, Bug #16757869) On behalf of Oracle MySQL RE Team Ramesh Maddali -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/mysql