<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Marketgrid Consulting Blog &#187; MySQL Community Server</title>
	<atom:link href="http://www.marketgrid.com/blog/tag/mysql-community-server/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.marketgrid.com/blog</link>
	<description>MySQL, website development and performance news</description>
	<lastBuildDate>Mon, 09 Jan 2012 12:39:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>MySQL Community Server 5.5.15</title>
		<link>http://www.marketgrid.com/blog/2011/07/mysql-community-server-5-5-15/</link>
		<comments>http://www.marketgrid.com/blog/2011/07/mysql-community-server-5-5-15/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 14:58:28 +0000</pubDate>
		<dc:creator>Phil Smith</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MySQL Community Server]]></category>

		<guid isPermaLink="false">http://www.marketgrid.com/blog/?p=573</guid>
		<description><![CDATA[MySQL 5.5.15 is a new version of the 5.5 production release of the world&#8217;s most popular open source database. MySQL 5.5.15 is recommended for use on production systems. &#160; 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 [...]]]></description>
			<content:encoded><![CDATA[<p>MySQL 5.5.15 is a new version of the 5.5 production release of the world&#8217;s most popular open source database. MySQL 5.5.15 is recommended for use on production systems.</p>
<p>&nbsp;</p>
<p>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</p>
<p>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.</p>
<p>&nbsp;</p>
<p>MySQL 5.5 also provides a number of additional enhancements including:</p>
<p>&nbsp;</p>
<p>- Significantly improved performance on Windows, with various Windows specific features and improvements</p>
<p>- Higher availability, with new semi-synchronous replication and Replication Heart Beat</p>
<p>- Improved usability, with Improved index and table partitioning, SIGNAL/RESIGNAL support and enhanced diagnostics, including a new Performance Schema monitoring capability.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The following section lists the changes in the MySQL source code since the previous released version of MySQL 5.5.</p>
<p>&nbsp;</p>
<h2>Changes in MySQL 5.5.15 (28 July 2011)</h2>
<p>Functionality Added or Changed</p>
<p>&nbsp;</p>
<p>* The undocumented &#8211;all option for perror is deprecated and</p>
<p>will be removed in MySQL 5.6.</p>
<p>&nbsp;</p>
<p>Bugs Fixed</p>
<p>&nbsp;</p>
<p>* InnoDB Storage Engine: A failed CREATE INDEX operation for an</p>
<p>InnoDB table could result in some memory being allocated but</p>
<p>not freed. This memory leak could affect tables created with</p>
<p>the ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED setting. (Bug</p>
<p>#12699505)</p>
<p>&nbsp;</p>
<p>* Partitioning: Auto-increment columns of partitioned tables</p>
<p>were checked even when they were not being written to. In</p>
<p>debug builds, this could lead to a server crash. (Bug</p>
<p>#11765667, Bug #58655)</p>
<p>&nbsp;</p>
<p>* Partitioning: The UNIX_TIMESTAMP() function was not treated as</p>
<p>a monotonic function for purposes of partition pruning. (Bug</p>
<p>#11746819, Bug #28928)</p>
<p>&nbsp;</p>
<p>* Compiling the server with maintainer mode enabled failed for</p>
<p>gcc 4.6 or higher. (Bug #12727287)</p>
<p>&nbsp;</p>
<p>* The option-parsing code for empty strings leaked memory. (Bug</p>
<p>#12589928)</p>
<p>&nbsp;</p>
<p>* Previously, an inappropriate error message was produced if a</p>
<p>multiple-table update for an InnoDB table with a clustered</p>
<p>primary key would update a table through multiple aliases, and</p>
<p>perform an update that may physically move the row in at least</p>
<p>one of these aliases. Now the error message is: Primary</p>
<p>key/partition key update is not permitted since the table is</p>
<p>updated both as &#8216;tbl_name1&#8242; and &#8216;tbl_name2&#8242; (Bug #11882110)</p>
<p>See also Bug #11764529.</p>
<p>&nbsp;</p>
<p>* Replication: If a LOAD DATA INFILE statement&#8212;replicated</p>
<p>using statement-based replication&#8212;featured a SET clause, the</p>
<p>name-value pairs were regenerated using a method</p>
<p>(Item::print()) intended primarily for generating output for</p>
<p>statements such as EXPLAIN EXTENDED, and which cannot be</p>
<p>relied on to return valid SQL. This could in certain cases</p>
<p>lead to a crash on the slave.</p>
<p>To fix this problem, the server now names each value in its</p>
<p>original, user-supplied form, and uses that to create LOAD</p>
<p>DATA INFILE statements for statement-based replication. (Bug</p>
<p>#60580, Bug #11902767)</p>
<p>See also Bug #34283, Bug #11752526, Bug #43746.</p>
<p>&nbsp;</p>
<p>* ALTER TABLE {MODIFY|CHANGE} &#8230; FIRST did nothing except</p>
<p>rename columns if the old and new versions of the table had</p>
<p>exactly the same structure with respect to column data types.</p>
<p>As a result, the mapping of column name to column data was</p>
<p>incorrect. The same thing happened for ALTER TABLE DROP COLUMN</p>
<p>&#8230; ADD COLUMN statements intended to produce a new version of</p>
<p>the table with exactly the same structure as the old version.</p>
<p>(Bug #61493, Bug #12652385)</p>
<p>&nbsp;</p>
<p>* Incorrect handling of metadata locking for FLUSH TABLES WITH</p>
<p>READ LOCK for statements requiring prelocking caused two</p>
<p>problems:</p>
<p>&nbsp;</p>
<p>+ Execution of any data-changing statement that required</p>
<p>prelocking (that is, involved a stored function or</p>
<p>trigger) as part of a transaction slowed down somewhat</p>
<p>all subsequent statements in the transaction. Performance</p>
<p>in a transaction that periodically involved such</p>
<p>statements gradually degraded over time.</p>
<p>&nbsp;</p>
<p>+ Execution of any data-changing statement that required</p>
<p>prelocking as part of a transaction prevented a</p>
<p>concurrent FLUSH TABLES WITH READ LOCK from proceeding</p>
<p>until the end of the transaction rather than at the end</p>
<p>of the particular statement.</p>
<p>(Bug #61401, Bug #12641342)</p>
<p>&nbsp;</p>
<p>* The fractional part of the &#8220;Queries per second&#8221; value could be</p>
<p>displayed incorrectly in MySQL status output (for example, in</p>
<p>the output from mysqladmin status or the mysql STATUS</p>
<p>command). (Bug #61205, Bug #12565712)</p>
<p>&nbsp;</p>
<p>* LOAD DATA INFILE incorrectly parsed relative data file path</p>
<p>names that ascended more than three levels in the file system</p>
<p>and as a consequence was unable to find the file. (Bug #60987,</p>
<p>Bug #12403662)</p>
<p>&nbsp;</p>
<p>* For unknown users, the native password plugin reported</p>
<p>incorrectly that no password had been specified even when it</p>
<p>had. (Bug #59792, Bug #11766641)</p>
<p>&nbsp;</p>
<p>* For MyISAM tables, attempts to insert incorrect data into an</p>
<p>indexed GEOMETRY column could result in table corruption. (Bug</p>
<p>#57323, Bug #11764487)</p>
<p>&nbsp;</p>
<p>* In debug builds, Field_new_decimal::store_value() was subject</p>
<p>to buffer overflows. (Bug #55436, Bug #11762799)</p>
<p>&nbsp;</p>
<p>* A race condition between loading a stored routine using the</p>
<p>name qualified by the database name and dropping that database</p>
<p>resulted in a spurious error message: The table mysql.proc is</p>
<p>missing, corrupt, or contains bad data (Bug #47870, Bug</p>
<p>#11756013)</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketgrid.com/blog/2011/07/mysql-community-server-5-5-15/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Community Server 5.5.13</title>
		<link>http://www.marketgrid.com/blog/2011/06/mysql-community-server-5-5-13/</link>
		<comments>http://www.marketgrid.com/blog/2011/06/mysql-community-server-5-5-13/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 08:40:27 +0000</pubDate>
		<dc:creator>Phil Smith</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MySQL Community Server]]></category>

		<guid isPermaLink="false">http://www.marketgrid.com/blog/?p=556</guid>
		<description><![CDATA[MySQL 5.5.13 is a new version of the 5.5 production release of the world&#8217;s most popular open source database. MySQL 5.5.13 is recommended for use on production systems. &#160; 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 [...]]]></description>
			<content:encoded><![CDATA[<p>MySQL 5.5.13 is a new version of the 5.5 production release of the</p>
<p>world&#8217;s most popular open source database. MySQL 5.5.13 is recommended</p>
<p>for use on production systems.</p>
<p>&nbsp;</p>
<p>MySQL 5.5 includes several high-impact enhancements to improve the</p>
<p>performance and scalability of the MySQL Database, taking advantage of</p>
<p>the latest multi-CPU and multi-core hardware and operating systems. In</p>
<p>addition, with release 5.5, InnoDB is now the default storage engine for</p>
<p>the MySQL Database, delivering ACID transactions, referential integrity</p>
<p>and crash recovery by default.</p>
<p>&nbsp;</p>
<p>MySQL 5.5 also provides a number of additional enhancements including:</p>
<p>&nbsp;</p>
<p>- Significantly improved performance on Windows, with various Windows specific features and improvements</p>
<p>- Higher availability, with new semi-synchronous replication and Replication Heart Beat</p>
<p>- Improved usability, with Improved index and table partitioning, SIGNAL/RESIGNAL support and enhanced diagnostics, including a new Performance Schema monitoring capability.</p>
<p>&nbsp;</p>
<p>Changes in MySQL 5.5.13 :</p>
<p>&nbsp;</p>
<p>Note:</p>
<p>&nbsp;</p>
<p>Very old (MySQL 4.0) clients are not working temporarily due to a</p>
<p>problem discovered after the release of MySQL 5.5.12. We are</p>
<p>looking at fixing the problem.</p>
<p>&nbsp;</p>
<p>Bugs fixed:</p>
<p>&nbsp;</p>
<p>* InnoDB Storage Engine: If the server crashed while an XA</p>
<p>transaction was prepared but not yet committed, the</p>
<p>transaction could remain in the system after restart, and</p>
<p>cause a subsequent shutdown to hang. (Bug #11766513, Bug</p>
<p>#59641)</p>
<p>&nbsp;</p>
<p>* InnoDB Storage Engine: Similar problem to the foreign key</p>
<p>error in bug #11831040 / 60196 / 60909, but with a different</p>
<p>root cause and occurring on Mac OS X. With the setting</p>
<p>lower_case_table_names=2, inserts into InnoDB tables covered</p>
<p>by foreign key constraints could fail after a server restart.</p>
<p>&nbsp;</p>
<p>* Partitioning: The internal get_partition_set() function did</p>
<p>not take into account the possibility that a key specification</p>
<p>could be NULL in some cases. (Bug #12380149)</p>
<p>&nbsp;</p>
<p>* Partitioning: When executing a row-ordered retrieval index</p>
<p>merge, the partitioning handler used memory from that</p>
<p>allocated for the table, rather than that allocated to the</p>
<p>query, causing table object memory not to be freed until the</p>
<p>table was closed. (Bug #11766249, Bug #59316)</p>
<p>&nbsp;</p>
<p>* Replication: A spurious error malformed binlog: it does not</p>
<p>contain any Format_description_log_event&#8230; was generated when</p>
<p>mysqlbinlog was invoked using &#8211;base64-output=decode-row and</p>
<p>&#8211;start-position=pos, where pos is a point in the binary log</p>
<p>past the format description log event. However, there is</p>
<p>nothing unsafe about not printing the format description log</p>
<p>event, so the error has been removed for this case. (Bug</p>
<p>#12354268)</p>
<p>&nbsp;</p>
<p>* Replication: Typographical errors appeared in the text of</p>
<p>several replication error messages. (The word &#8220;position&#8221; was</p>
<p>misspelled as &#8220;postion&#8221;.) (Bug #11762616, Bug #55229)</p>
<p>&nbsp;</p>
<p>* Assignments to NEW.var_name within triggers, where var_name</p>
<p>had a BLOB or TEXT type, were not properly handled and</p>
<p>produced incorrect results. (Bug #12362125)</p>
<p>&nbsp;</p>
<p>* XA COMMIT could fail to clean up the error state if it</p>
<p>discovered that the current XA transaction had to be rolled</p>
<p>back. Consequently, the next XA transaction could raise an</p>
<p>assertion when it checked for proper cleanup of the previous</p>
<p>transaction. (Bug #12352846)</p>
<p>&nbsp;</p>
<p>* An internal client macro reference was removed from the</p>
<p>client_plugin.h header file. This reference made the file</p>
<p>unusable. (Bug #60746, Bug #12325444)</p>
<p>&nbsp;</p>
<p>* The server consumed memory for repeated invocation of some</p>
<p>stored procedures, which was not released until the connection</p>
<p>terminated. (Bug #60025, Bug #11848763)</p>
<p>&nbsp;</p>
<p>* The server did not check for certain invalid out of order</p>
<p>sequences of XA statements, and these sequences raised an</p>
<p>assertion. (Bug #59936, Bug #11766752, Bug #12348348)</p>
<p>&nbsp;</p>
<p>* With the conversion from GNU autotools to CMake for</p>
<p>configuring MySQL, the USE_SYMDIR preprocessor symbol was</p>
<p>omitted. This caused failure of symbolic links (described at</p>
<p>Section 7.11.3.1, &#8220;Using Symbolic Links&#8221;). (Bug #59408, Bug</p>
<p>#11766320)</p>
<p>&nbsp;</p>
<p>* The incorrect max_length value for YEAR values could be used</p>
<p>in temporary result tables for UNION, leading to incorrect</p>
<p>results. (Bug #59343, Bug #11766270)</p>
<p>&nbsp;</p>
<p>* In Item_func_in::fix_length_and_dec(), a Valgrind warning for</p>
<p>uninitialized values was corrected. (Bug #59270, Bug</p>
<p>#11766212)</p>
<p>&nbsp;</p>
<p>* In ROUND() calculations, a Valgrind warning for uninitialized</p>
<p>memory was corrected. (Bug #58937, Bug #11765923)</p>
<p>&nbsp;</p>
<p>* Valgrind warnings caused by comparing index values to an</p>
<p>uninitialized field were corrected. (Bug #58705, Bug</p>
<p>#11765713)</p>
<p>&nbsp;</p>
<p>* LOAD DATA INFILE errors could leak I/O cache memory. (Bug</p>
<p>#58072, Bug #11765141)</p>
<p>&nbsp;</p>
<p>* For LOAD DATA INFILE, multibyte character sequences could be</p>
<p>pushed onto a stack too small to accommodate them. (Bug</p>
<p>#58069, Bug #11765139)</p>
<p>&nbsp;</p>
<p>* Internal Performance Schema header files were unnecessarily</p>
<p>installed publicly. (Bug #53281)</p>
<p>&nbsp;</p>
<p>* On Linux, the mysql client built using the bundled libedit did</p>
<p>not read ~/.editrc. (Bug #49967, Bug #11757855)</p>
<p>&nbsp;</p>
<p>* The optimizer sometimes incorrectly processed HAVING clauses</p>
<p>for queries that did not also have an ORDER BY clause. (Bug</p>
<p>#48916, Bug #11756928)</p>
<p>&nbsp;</p>
<p>* PROCEDURE ANALYZE() could leak memory for NULL results, and</p>
<p>could return incorrect results if used with a LIMIT clause.</p>
<p>(Bug #48137, Bug #11756242)</p>
<p>&nbsp;</p>
<p>* With DISTINCT CONCAT(col,&#8230;) returned incorrect results when</p>
<p>the arguments to CONCAT() were columns with an integer data</p>
<p>type declared with a display width narrower than the values in</p>
<p>the column. (For example, if an INT(1) column contain 1111.)</p>
<p>(Bug #4082)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketgrid.com/blog/2011/06/mysql-community-server-5-5-13/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Community Server 5.6.2 (Bugs)</title>
		<link>http://www.marketgrid.com/blog/2011/04/mysql-community-server-5-6-2-bugs/</link>
		<comments>http://www.marketgrid.com/blog/2011/04/mysql-community-server-5-6-2-bugs/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 11:13:31 +0000</pubDate>
		<dc:creator>Phil Smith</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[MySql 5.6]]></category>
		<category><![CDATA[MySQL Community Server]]></category>

		<guid isPermaLink="false">http://www.marketgrid.com/blog/?p=533</guid>
		<description><![CDATA[Bugs fixed: &#160; * Performance: InnoDB Storage Engine: An UPDATE statement for an InnoDB table could be slower than necessary if it changed a column covered by a prefix index, but did not change the prefix portion of the value. The fix improves performance for InnoDB 1.1 in MySQL 5.5 and higher, and the InnoDB [...]]]></description>
			<content:encoded><![CDATA[<p>Bugs fixed:</p>
<p>&nbsp;</p>
<p>* Performance: InnoDB Storage Engine: An UPDATE statement for an</p>
<p>InnoDB table could be slower than necessary if it changed a</p>
<p>column covered by a prefix index, but did not change the</p>
<p>prefix portion of the value. The fix improves performance for</p>
<p>InnoDB 1.1 in MySQL 5.5 and higher, and the InnoDB Plugin for</p>
<p>MySQL 5.1. (Bug #58912, Bug #11765900)</p>
<p>&nbsp;</p>
<p>* Incompatible Change: When auto_increment_increment is greater</p>
<p>than one, values generated by a bulk insert that reaches the</p>
<p>maximum column value could wrap around rather producing an</p>
<p>overflow error.</p>
<p>As a consequence of the fix, it is no longer possible for an</p>
<p>auto-generated value to be equal to the maximum BIGINT</p>
<p>UNSIGNED value. It is still possible to store that value</p>
<p>manually, if the column can accept it. (Bug #39828, Bug</p>
<p>#11749800)</p>
<p>&nbsp;</p>
<p>* Important Change: Partitioning: Date and time functions used</p>
<p>as partitioning functions now have the types of their operands</p>
<p>checked; use of a value of the wrong type is now disallowed in</p>
<p>such cases. In addition, EXTRACT(WEEK FROM col), where col is</p>
<p>a DATE or DATETIME column, is now disallowed altogether</p>
<p>because its return value depends on the value of the</p>
<p>default_week_format system variable. (Bug #54483, Bug</p>
<p>#11761948)</p>
<p>See also Bug #57071, Bug #11764255.</p>
<p>&nbsp;</p>
<p>* Important Change: Replication: The CHANGE MASTER TO statement</p>
<p>required the value for RELAY_LOG_FILE to be an absolute path,</p>
<p>while the MASTER_LOG_FILE path could be relative.</p>
<p>The inconsistent behavior is resolved by permitting relative</p>
<p>paths for RELAY_LOG_FILE, and by using the same basename for</p>
<p>RELAY_LOG_FILE as for MASTER_LOG_FILE. For more information,</p>
<p>see Section 12.5.2.1, &#8220;CHANGE MASTER TO Syntax.&#8221; (Bug #12190,</p>
<p>Bug #11745232)</p>
<p>&nbsp;</p>
<p>* Partitioning: InnoDB Storage Engine: The partitioning handler</p>
<p>did not pass locking information to a table&#8217;s storage engine</p>
<p>handler. This caused high contention and thus slower</p>
<p>performance when working with partitioned InnoDB tables. (Bug</p>
<p>#59013)</p>
<p>&nbsp;</p>
<p>* InnoDB Storage Engine: The presence of a double quotation mark</p>
<p>inside the COMMENT field for a column could prevent a foreign</p>
<p>key constraint from being created properly. (Bug #59197, Bug</p>
<p>#11766154)</p>
<p>&nbsp;</p>
<p>* InnoDB Storage Engine: It was not possible to query the</p>
<p>information_schema.innodb_trx table while other connections</p>
<p>were running queries involving BLOB types. (Bug #55397, Bug</p>
<p>#11762763)</p>
<p>&nbsp;</p>
<p>* Partitioning: Failed ALTER TABLE &#8230; PARTITION statements</p>
<p>could cause memory leaks. (Bug #56380, Bug #11763641)</p>
<p>See also Bug #46949, Bug #11755209, Bug #56996, Bug #11764187.</p>
<p>&nbsp;</p>
<p>* Replication: When using the statement-based logging format,</p>
<p>INSERT ON DUPLICATE KEY UPDATE and INSERT IGNORE statements</p>
<p>affecting transactional tables that did not fail were not</p>
<p>written to the binary log if they did not insert any rows.</p>
<p>(With statement-based logging, all successful statements</p>
<p>should be logged, whether they do or do not cause any rows to</p>
<p>be changed.) (Bug #59338, Bug #11766266)</p>
<p>&nbsp;</p>
<p>* Replication: Formerly, STOP SLAVE stopped the slave I/O thread</p>
<p>first and then stopped the slave SQL thread; thus, it was</p>
<p>possible for the I/O thread to stop after replicating only</p>
<p>part of a transaction which the SQL thread was executing, in</p>
<p>which case&#8212;if the transaction could not be rolled back</p>
<p>safely&#8212;the SQL thread could hang.</p>
<p>Now, STOP SLAVE stops the slave SQL thread first and then</p>
<p>stops the I/O thread; this guarantees that the I/O thread can</p>
<p>fetch any remaining events in the transaction that the SQL</p>
<p>thread is executing, so that the SQL thread can finish the</p>
<p>transaction if it cannot be rolled back safely. (Bug #58546,</p>
<p>Bug #11765563)</p>
<p>&nbsp;</p>
<p>* Replication: mysqlbinlog printed USE statements to its output</p>
<p>only when the default database changed between events. To</p>
<p>illustrate how this could cause problems, suppose that a user</p>
<p>issued the following sequence of statements:</p>
<p>CREATE DATABASE mydb;</p>
<p>USE mydb;</p>
<p>CREATE TABLE mytable (column_definitions);</p>
<p>DROP DATABASE mydb;</p>
<p>CREATE DATABASE mydb;</p>
<p>USE mydb;</p>
<p>CREATE TABLE mytable (column_definitions);</p>
<p>When played back using mysqlbinlog, the second CREATE TABLE</p>
<p>statement failed with Error: No Database Selected because the</p>
<p>second USE statement was not played back, due to the fact that</p>
<p>a database other than mydb was never selected.</p>
<p>This fix insures that mysqlbinlog outputs a USE statement</p>
<p>whenever it reads one from the binary log. (Bug #50914, Bug</p>
<p>#11758677)</p>
<p>&nbsp;</p>
<p>* Replication: The &#8211;help text for mysqlbinlog now indicates</p>
<p>that the &#8211;verbose (-v) option outputs pseudo-SQL that is not</p>
<p>necessarily valid SQL and cannot be guaranteed to work</p>
<p>verbatim in MySQL clients. (Bug #47557, Bug #11755743)</p>
<p>&nbsp;</p>
<p>* An assertion was raised if an XA COMMIT was issued when an XA</p>
<p>transaction had already encountered an error (such as a</p>
<p>deadlock) that required the transaction to be rolled back.</p>
<p>(Bug #59986, Bug #11766788)</p>
<p>&nbsp;</p>
<p>* On some systems, debug builds of comp_err.c could fail due to</p>
<p>an uninitialized variable. (Bug #59906, Bug #11766729)</p>
<p>&nbsp;</p>
<p>* Attempting to create a spatial index on a CHAR column longer</p>
<p>than 31 bytes led to an assertion failure if the server was</p>
<p>compiled with safemutex support. (Bug #59888, Bug #11766714)</p>
<p>&nbsp;</p>
<p>* Aggregation followed by a subquery could produce an incorrect</p>
<p>result. (Bug #59839, Bug #11766675)</p>
<p>&nbsp;</p>
<p>* The Performance Schema did not update status handler status</p>
<p>variables, so SHOW STATUS LIKE &#8216;%handler%&#8217; produced</p>
<p>undercounted values. (Bug #59799, Bug #11766645)</p>
<p>&nbsp;</p>
<p>* Internally, XOR items partially behaved like functions and</p>
<p>partially as conditions. This resulted in inconsistent</p>
<p>handling and crashes. The issue is fixed by consistently</p>
<p>treating XOR items as functions. (Bug #59793, Bug #11766642)</p>
<p>&nbsp;</p>
<p>* An incorrect character set pointer passed to</p>
<p>my_strtoll10_mb2() caused an assertion to be raised. (Bug</p>
<p>#59648, Bug #11766519)</p>
<p>&nbsp;</p>
<p>* DES_DECRYPT() could crash if the argument was not produced by</p>
<p>DES_ENCRYPT(). (Bug #59632, Bug #11766505)</p>
<p>&nbsp;</p>
<p>* The server and client did not always properly negotiate</p>
<p>authentication plugin names. (Bug #59453, Bug #11766356)</p>
<p>&nbsp;</p>
<p>* &#8211;autocommit=ON did not work (it set the global autocommit</p>
<p>value to 0, not 1). (Bug #59432, Bug #11766339)</p>
<p>&nbsp;</p>
<p>* mysqldump did not quote database names in ALTER DATABASE</p>
<p>statements in its output, which could cause an error at reload</p>
<p>time for database names containing a dash. (Bug #59398, Bug</p>
<p>#11766310)</p>
<p>&nbsp;</p>
<p>* If filesort fell back to an ordinary sort/merge, it could fail</p>
<p>to handle memory correctly. (Bug #59331, Bug #11766260)</p>
<p>&nbsp;</p>
<p>* Comparisons of aggregate values with TIMESTAMP values were</p>
<p>incorrect. (Bug #59330, Bug #11766259)</p>
<p>&nbsp;</p>
<p>* The &#8220;greedy&#8221; query plan optimizer failed to consider the size</p>
<p>of intermediate query results when calculating the cost of a</p>
<p>query. This could result in slowly executing queries when</p>
<p>there are much faster execution plans available. (Bug #59326,</p>
<p>Bug #11766256)</p>
<p>&nbsp;</p>
<p>* A query of the following form returned an incorrect result,</p>
<p>where the values for col_name in the result set were entirely</p>
<p>replaced with NULL values:</p>
<p>SELECT DISTINCT col_name &#8230; ORDER BY col_name DESC;</p>
<p>(Bug #59308, Bug #11766241)</p>
<p>&nbsp;</p>
<p>* The MYSQL_HOME environment variable was being ignored. (Bug</p>
<p>#59280, Bug #11766219)</p>
<p>&nbsp;</p>
<p>* SHOW PRIVILEGES did not display a row for the PROXY privilege.</p>
<p>(Bug #59275, Bug #11766216)</p>
<p>&nbsp;</p>
<p>* SHOW PROFILE could truncate source file names or fail to show</p>
<p>function names. (Bug #59273, Bug #11766214)</p>
<p>&nbsp;</p>
<p>* For DIV expressions, assignment of the result to multiple</p>
<p>variables could cause a server crash. (Bug #59241, Bug</p>
<p>#11766191)</p>
<p>See also Bug #8457, Bug #11745058.</p>
<p>&nbsp;</p>
<p>* MIN(year_col) could return an incorrect result in some cases.</p>
<p>(Bug #59211, Bug #11766165)</p>
<p>&nbsp;</p>
<p>* With index condition pushdown enabled, a join could produce an</p>
<p>extra row due to parts of the select condition for the second</p>
<p>table in the join not being evaluated. (Bug #59186, Bug</p>
<p>#11766144)</p>
<p>&nbsp;</p>
<p>* DELETE or UPDATE statements could fail if they used DATE or</p>
<p>DATETIME values with a year, month, or day part of zero. (Bug</p>
<p>#59173)</p>
<p>&nbsp;</p>
<p>* The ESCAPE clause for the LIKE operator allows only</p>
<p>expressions that evaluate to a constant at execution time, but</p>
<p>aggregate functions were not being rejected. (Bug #59149, Bug</p>
<p>#11766110)</p>
<p>&nbsp;</p>
<p>* Valgrind warnings about uninitialized variables were</p>
<p>corrected. (Bug #59145, Bug #11766106)</p>
<p>&nbsp;</p>
<p>* Memory leaks detected by Valgrind, some of which could cause</p>
<p>incorrect query results, were corrected. (Bug #59110, Bug</p>
<p>#11766075)</p>
<p>&nbsp;</p>
<p>* mysqlslap failed to check for a NULL return from</p>
<p>mysql_store_result() and crashed trying to process the result</p>
<p>set. (Bug #59109, Bug #11766074)</p>
<p>&nbsp;</p>
<p>* There was an erroneous restriction on file attributes for LOAD</p>
<p>DATA INFILE. (Bug #59085, Bug #11766052)</p>
<p>&nbsp;</p>
<p>* SHOW CREATE TRIGGER failed if there was a temporary table with</p>
<p>the same name as the trigger subject table. (Bug #58996, Bug</p>
<p>#11765972)</p>
<p>&nbsp;</p>
<p>* The DEFAULT_CHARSET and DEFAULT_COLLATION CMake options did</p>
<p>not work. (Bug #58991, Bug #11765967)</p>
<p>&nbsp;</p>
<p>* In a subquery, a UNION with no referenced tables (or only a</p>
<p>reference to the virtual table dual) did not allow an ORDER BY</p>
<p>clause. (Bug #58970, Bug #11765950)</p>
<p>&nbsp;</p>
<p>* OPTIMIZE TABLE for an InnoDB table could raise an assertion if</p>
<p>the operation failed because it had been killed. (Bug #58933,</p>
<p>Bug #11765920)</p>
<p>&nbsp;</p>
<p>* If max_allowed_packet was set larger than 16MB, the server</p>
<p>failed to reject too-large packets with &#8220;Packet too large&#8221;</p>
<p>errors. (Bug #58887, Bug #11765878)</p>
<p>&nbsp;</p>
<p>* With index condition pushdown enabled, incorrect results were</p>
<p>returned for queries on MyISAM tables involving HAVING and</p>
<p>LIMIT, when the column in the WHERE condition contained NULL.</p>
<p>(Bug #58838, Bug #11765835)</p>
<p>&nbsp;</p>
<p>* An uninitialized variable for the index condition pushdown</p>
<p>access method could result in a server crash or Valgrind</p>
<p>warnings. (Bug #58837, Bug #11765834)</p>
<p>&nbsp;</p>
<p>* A NOT IN predicate with a subquery containing a HAVING clause</p>
<p>could retrieve too many rows, when the subquery itself</p>
<p>returned NULL. (Bug #58818, Bug #11765815)</p>
<p>&nbsp;</p>
<p>* Running a query against an InnoDB table twice, first with</p>
<p>index condition pushdown enabled and then with it disabled,</p>
<p>could produce different results. (Bug #58816, Bug #11765813)</p>
<p>&nbsp;</p>
<p>* An assertion was raised if a stored routine had a DELETE</p>
<p>IGNORE statement that failed but due to the IGNORE had not</p>
<p>reported any error. (Bug #58709, Bug #11765717)</p>
<p>&nbsp;</p>
<p>* WHERE conditions of the following forms were evaluated</p>
<p>incorrectly and could return incorrect results:</p>
<p>WHERE null-valued-const-expression NOT IN (subquery)</p>
<p>WHERE null-valued-const-expression IN (subquery) IS UNKNOWN</p>
<p>(Bug #58628, Bug #11765642)</p>
<p>&nbsp;</p>
<p>* Issuing EXPLAIN EXTENDED for a query that would use condition</p>
<p>pushdown could cause mysqld to crash. (Bug #58553, Bug</p>
<p>#11765570)</p>
<p>&nbsp;</p>
<p>* An OUTER JOIN query using WHERE column IS NULL could return an</p>
<p>incorrect result. (Bug #58490, Bug #11765513)</p>
<p>&nbsp;</p>
<p>* Starting the server with the &#8211;defaults-file=file_name option,</p>
<p>where the file name had no extension, caused a server crash.</p>
<p>(Bug #58455, Bug #11765482)</p>
<p>&nbsp;</p>
<p>* Outer joins with an empty table could produce incorrect</p>
<p>results. (Bug #58422, Bug #11765451)</p>
<p>&nbsp;</p>
<p>* In debug builds, SUBSTRING_INDEX(FORMAT(&#8230;), FORMAT(&#8230;))</p>
<p>could cause a server crash. (Bug #58371, Bug #11765406)</p>
<p>&nbsp;</p>
<p>* When mysqladmin was run with the &#8211;sleep and &#8211;count options,</p>
<p>it went into an infinite loop executing the specified command.</p>
<p>(Bug #58221, Bug #11765270)</p>
<p>&nbsp;</p>
<p>* Some string manipulating SQL functions use a shared string</p>
<p>object intended to contain an immutable empty string. This</p>
<p>object was used by the SQL function SUBSTRING_INDEX() to</p>
<p>return an empty string when one argument was of the wrong</p>
<p>datatype. If the string object was then modified by the SQL</p>
<p>function INSERT(), undefined behavior ensued. (Bug #58165, Bug</p>
<p>#11765225)</p>
<p>&nbsp;</p>
<p>* Condition pushdown optimization could push down conditions</p>
<p>with incorrect column references. (Bug #58134, Bug #11765196)</p>
<p>&nbsp;</p>
<p>* injector::transaction did not have support for rollback. (Bug</p>
<p>#58082, Bug #11765150)</p>
<p>&nbsp;</p>
<p>* Parsing nested regular expressions could lead to recursion</p>
<p>resulting in a stack overflow crash. (Bug #58026, Bug</p>
<p>#11765099)</p>
<p>&nbsp;</p>
<p>* The fix for Bug#25192 caused load_defaults() to add an</p>
<p>argument separator to distinguish options loaded from</p>
<p>configure files from those provided on the command line,</p>
<p>whether or not the application needed it. (Bug #57953, Bug</p>
<p>#11765041)</p>
<p>See also Bug #11746296.</p>
<p>&nbsp;</p>
<p>* The mysql client went into an infinite loop if the standard</p>
<p>input was a directory. (Bug #57450, Bug #11764598)</p>
<p>&nbsp;</p>
<p>* If a multiple-table update updated a row through two aliases</p>
<p>and the first update physically moved the row, the second</p>
<p>update failed to locate the row. This resulted in different</p>
<p>errors depending on storage engine, although these errors did</p>
<p>not accurately describe the problem:</p>
<p>&nbsp;</p>
<p>+ MyISAM: Got error 134 from storage engine</p>
<p>&nbsp;</p>
<p>+ InnoDB: Can&#8217;t find record in &#8216;tbl&#8217;</p>
<p>For MyISAM, which is nontransactional, the update executed</p>
<p>first was performed but the second was not. In addition, for</p>
<p>two equal multiple-table update statements, one could succeed</p>
<p>and the other fail depending on whether the record actually</p>
<p>moved, which is inconsistent.</p>
<p>Now such an update returns an error if it will update a table</p>
<p>through multiple aliases, and perform an update that may</p>
<p>physically more the row in at least one of these aliases. (Bug</p>
<p>#57373, Bug #11764529, Bug #55385, Bug #11762751)</p>
<p>&nbsp;</p>
<p>* SHOW WARNINGS output following EXPLAIN EXTENDED could include</p>
<p>unprintable characters. (Bug #57341, Bug #11764503)</p>
<p>&nbsp;</p>
<p>* Outer joins on a unique key could return incorrect results.</p>
<p>(Bug #57034, Bug #11764219)</p>
<p>&nbsp;</p>
<p>* For a query that used a subquery that included GROUP BY inside</p>
<p>a &lt; ANY() construct, no rows were returned when there should</p>
<p>have been. (Bug #56690, Bug #11763918)</p>
<p>&nbsp;</p>
<p>* Some RPM installation scripts used a hardcoded value for the</p>
<p>data directory, which could result in a failed installation</p>
<p>for users who have a nonstandard data directory location. The</p>
<p>same was true for other configuration values such as the PID</p>
<p>file name. (Bug #56581, Bug #11763817)</p>
<p>&nbsp;</p>
<p>* On FreeBSD and OpenBSD, the server incorrectly checked the</p>
<p>range of the system date, causing legal values to be rejected.</p>
<p>(Bug #55755, Bug #11763089)</p>
<p>&nbsp;</p>
<p>* If one connection locked the mysql.func table using either</p>
<p>FLUSH TABLES WITH READ LOCK or LOCK TABLE mysql.func WRITE and</p>
<p>a second connection tried to either create or drop a UDF</p>
<p>function, a deadlock occurred when the first connection tried</p>
<p>to use a UDF function. (Bug #53322, Bug #11760878)</p>
<p>&nbsp;</p>
<p>* DISTINCT aggregates on DECIMAL UNSIGNED fields could trigger</p>
<p>an assertion. (Bug #52171, Bug #11759827)</p>
<p>&nbsp;</p>
<p>* On FreeBSD, if mysqld was killed with a SIGHUP signal, it</p>
<p>could corrupt InnoDB .ibd files. (Bug #51023, Bug #11758773)</p>
<p>&nbsp;</p>
<p>* An assertion could be raised if -1 was inserted into an</p>
<p>AUTO_INCREMENT column by a statement writing more than one</p>
<p>row. (Bug #50619, Bug #11758417)</p>
<p>&nbsp;</p>
<p>* A query that contained an aggregate function but no GROUP BY</p>
<p>clause was implicitly grouped. But implicitly grouped queries</p>
<p>return zero or one row, so ordering does not make sense. (Bug</p>
<p>#47853)</p>
<p>&nbsp;</p>
<p>* The parser failed to initialize some internal objects</p>
<p>properly, which could cause a server crash in the cleanup</p>
<p>phase after statement execution. (Bug #47511, Bug #11755703)</p>
<p>&nbsp;</p>
<p>* When CASE &#8230; WHEN arguments had different character sets,</p>
<p>8-bit values could be referenced as utf16 or utf32 values,</p>
<p>causing an assertion to be raised. (Bug #44793, Bug #11753363)</p>
<p>&nbsp;</p>
<p>* When using ExtractValue() or UpdateXML(), if the XML to be</p>
<p>read contained an incomplete XML comment, MySQL read beyond</p>
<p>the end of the XML string when processing, leading to a crash</p>
<p>of the server. (Bug #44332, Bug #11752979)</p>
<p>&nbsp;</p>
<p>* Bitmap functions used in one thread could change bitmaps used</p>
<p>by other threads, causing an assertion to be raised. (Bug</p>
<p>#43152, Bug #11752069)</p>
<p>&nbsp;</p>
<p>* DATE_ADD() and DATE_SUB() return a string if the first</p>
<p>argument is a string, but incorrectly returned a binary</p>
<p>string. Now they return a character string with a collation of</p>
<p>connection_collation. (Bug #31384, Bug #11747221)</p>
<p>&nbsp;</p>
<p>* Incompatible Change: Replication: The behavior of INSERT</p>
<p>DELAYED statements when using statement-based replication has</p>
<p>changed as follows:</p>
<p>Previously, when using binlog_format=STATEMENT, a warning was</p>
<p>issued in the client when executing INSERT DELAYED; now, no</p>
<p>warning is issued in such cases.</p>
<p>Previously, when using binlog_format=STATEMENT, INSERT DELAYED</p>
<p>was logged as INSERT DELAYED; now, it is logged as an INSERT,</p>
<p>without the DELAYED option.</p>
<p>However, when binlog_format=STATEMENT, INSERT DELAYED</p>
<p>continues to be executed as INSERT (without the DELAYED</p>
<p>option). The behavior of INSERT DELAYED remains unchanged when</p>
<p>using binlog_format=ROW: INSERT DELAYED generates no warnings,</p>
<p>is executed as INSERT DELAYED, and is logged using the</p>
<p>row-based format.</p>
<p>This change also affects binlog_format=MIXED, because INSERT</p>
<p>DELAYED is no longer considered unsafe. Now, when the logging</p>
<p>format is MIXED, no switch to row-based logging occurs. This</p>
<p>means that the statement is logged as a simple INSERT (that</p>
<p>is, without the DELAYED option), using the statement-based</p>
<p>logging format. (Bug #54579, Bug #11762035)</p>
<p>See also Bug #56678, Bug #11763907, Bug #57666.</p>
<p>This regression was introduced by Bug #39934, Bug #11749859.</p>
<p>&nbsp;</p>
<p>* Incompatible Change: Replication: When determining whether to</p>
<p>replicate a CREATE DATABASE, DROP DATABASE, or ALTER DATABASE</p>
<p>statement, database-level options now take precedence over any</p>
<p>&#8211;replicate-wild-do-table options. In other words, when trying</p>
<p>to replicate one of these statements,</p>
<p>&#8211;replicate-wild-do-table options are now checked if and only</p>
<p>if there are no database-level options that apply to the</p>
<p>statement. (Bug #46110, Bug #11754498)</p>
<p>&nbsp;</p>
<p>* Incompatible Change: Starvation of FLUSH TABLES WITH READ LOCK</p>
<p>statements occurred when there was a constant load of</p>
<p>concurrent DML statements in two or more connections. Deadlock</p>
<p>occurred when a connection that had some table open through a</p>
<p>HANDLER statement tried to update data through a DML statement</p>
<p>while another connection tried to execute FLUSH TABLES WITH</p>
<p>READ LOCK concurrently.</p>
<p>These problems resulted from the global read lock</p>
<p>implementation, which was reimplemented with the following</p>
<p>consequences:</p>
<p>&nbsp;</p>
<p>+ To solve deadlock in event-handling code that was exposed</p>
<p>by this patch, the LOCK_event_metadata mutex was replaced</p>
<p>with metadata locks on events. As a result, DDL</p>
<p>operations on events are now prohibited under LOCK</p>
<p>TABLES. This is an incompatible change.</p>
<p>&nbsp;</p>
<p>+ The global read lock (FLUSH TABLES WITH READ LOCK) no</p>
<p>longer blocks DML and DDL on temporary tables. Before</p>
<p>this patch, server behavior was not consistent in this</p>
<p>respect: In some cases, DML/DDL statements on temporary</p>
<p>tables were blocked; in others, they were not. Since the</p>
<p>main use cases for FLUSH TABLES WITH READ LOCK are</p>
<p>various forms of backups and temporary tables are not</p>
<p>preserved during backups, the server now consistently</p>
<p>allows DML/DDL on temporary tables under the global read</p>
<p>lock.</p>
<p>&nbsp;</p>
<p>+ The set of thread states has changed:</p>
<p>o Waiting for global metadata lock is replaced by</p>
<p>Waiting for global read lock.</p>
<p>o Previously, Waiting for release of readlock was used</p>
<p>to indicate that DML/DDL statements were waiting for</p>
<p>release of a read lock and Waiting to get readlock</p>
<p>was used to indicate that FLUSH TABLES WITH READ</p>
<p>LOCK was waiting to acquire a global read lock. Now</p>
<p>Waiting for global read lock is used for both cases.</p>
<p>o Previously, Waiting for release of readlock was used</p>
<p>for all statements that caused an explicit or</p>
<p>implicit commit to indicate that they were waiting</p>
<p>for release of a read lock and Waiting for all</p>
<p>running commits to finish was used by FLUSH TABLES</p>
<p>WITH READ LOCK. Now Waiting for commit lock is used</p>
<p>for both cases.</p>
<p>o There are two other new states, Waiting for trigger</p>
<p>metadata lock and Waiting for event metadata lock.</p>
<p>(Bug #57006, Bug #11764195, Bug #54673, Bug #11762116)</p>
<p>&nbsp;</p>
<p>* Incompatible Change: CREATE TABLE statements (including CREATE</p>
<p>TABLE &#8230; LIKE) are now prohibited whenever a LOCK TABLES</p>
<p>statement is in effect. (Bug #42546, Bug #11751609)</p>
<p>&nbsp;</p>
<p>* InnoDB Storage Engine: Replication: If the master had</p>
<p>innodb_file_per_table=OFF, innodb_file_format=Antelope (and</p>
<p>innodb_strict_mode=OFF), or both, certain CREATE TABLE</p>
<p>options, such as KEY_BLOCK_SIZE, were ignored. This could</p>
<p>allow master to avoid raising ER_TOO_BIG_ROWSIZE errors.</p>
<p>However, the ignored CREATE TABLE options were still written</p>
<p>into the binary log, so that, if the slave had</p>
<p>innodb_file_per_table=ON and innodb_file_format=Barracuda, it</p>
<p>could encounter an ER_TOO_BIG_ROWSIZE error while executing</p>
<p>the record from the log, causing the slave SQL thread to abort</p>
<p>and replication to fail.</p>
<p>In the case where the master was running MySQL 5.1 and the</p>
<p>slave was MySQL 5.5 (or later), the failure occurred when both</p>
<p>master and slave were running with default values for</p>
<p>innodb_file_per_table and innodb_file_format. This could cause</p>
<p>problems during upgrades.</p>
<p>To address this issue, the default values for</p>
<p>innodb_file_per_table and innodb_file_format are reverted to</p>
<p>the MySQL 5.1 default values&#8212;that is, OFF and Antelope,</p>
<p>respectively. (Bug #56318, Bug #11763590)</p>
<p>&nbsp;</p>
<p>* InnoDB Storage Engine: With binary logging enabled, InnoDB</p>
<p>could halt during crash recovery with a message referring to a</p>
<p>transaction ID of 0. (Bug #54901, Bug #11762323)</p>
<p>&nbsp;</p>
<p>* Replication: Due to changes made in MySQL 5.5.3, settings made</p>
<p>in the binlog_cache_size and max_binlog_cache_size server</p>
<p>system variables affected both the binary log statement cache</p>
<p>(also introduced in that version) and the binary log</p>
<p>transactional cache (formerly known simply as the binary log</p>
<p>cache). This meant that the resources used as a result of</p>
<p>setting either or both of these variables were double the</p>
<p>amount expected. To rectify this problem, these variables now</p>
<p>affect only the transactional cache. The fix for this issue</p>
<p>also introduces two new system variables</p>
<p>binlog_stmt_cache_size and max_binlog_stmt_cache_size, which</p>
<p>affect only the binary log statement cache.</p>
<p>In addition, the Binlog_cache_use status variable was</p>
<p>incremented whenever either cache was used, and</p>
<p>Binlog_cache_disk_use was incremented whenever the disk space</p>
<p>from either cache was used, which caused problems with</p>
<p>performance tuning of the statement and transactional caches,</p>
<p>because it was not possible to determine which of these was</p>
<p>being exceeded when attempting to troubleshoot excessive disk</p>
<p>seeks and related problems. This issue is solved by changing</p>
<p>the behavior of these two status variables such that they are</p>
<p>incremented only in response to usage of the binary log</p>
<p>transactional cache, as well as by introducing two new status</p>
<p>variables Binlog_stmt_cache_use and</p>
<p>Binlog_stmt_cache_disk_use, which are incremented only by</p>
<p>usage of the binary log statement cache.</p>
<p>For more information, see Section 15.1.3.4, &#8220;System variables</p>
<p>used with the binary log,&#8221; and Section 5.1.6, &#8220;Server Status</p>
<p>Variables.&#8221; (Bug #57275, Bug #11764443)</p>
<p>&nbsp;</p>
<p>* Replication: The Binlog_cache_use and Binlog_cache_disk_use</p>
<p>status variables were incremented twice by a change to a table</p>
<p>using a transactional storage engine. (Bug #56343, Bug</p>
<p>#11763611)</p>
<p>&nbsp;</p>
<p>* Replication: When STOP SLAVE is issued, the slave SQL thread</p>
<p>rolls back the current transaction and stops immediately if</p>
<p>the transaction updates only tables which use transactional</p>
<p>storage engines are updated. Previously, this occurred even</p>
<p>when the transaction contained CREATE TEMPORARY TABLE</p>
<p>statements, DROP TEMPORARY TABLE statements, or both, although</p>
<p>these statements cannot be rolled back. Because temporary</p>
<p>tables persist for the lifetime of a user session (in the</p>
<p>case, the replication user), they remain until the slave is</p>
<p>stopped or reset. When the transaction is restarted following</p>
<p>a subsequent START SLAVE statement, the SQL thread aborts with</p>
<p>an error that a temporary table to be created (or dropped)</p>
<p>already exists (or does not exist, in the latter case).</p>
<p>Following this fix, if an ongoing transaction contains CREATE</p>
<p>TEMPORARY TABLE statements, DROP TEMPORARY TABLE statements,</p>
<p>or both, the SQL thread now waits until the transaction ends,</p>
<p>then stops. (Bug #56118, Bug #11763416)</p>
<p>&nbsp;</p>
<p>* Replication: When an error occurred in the generation of the</p>
<p>name for a new binary log file, the error was logged but not</p>
<p>shown to the user. (Bug #46166, Bug #11754544)</p>
<p>See also Bug #37148, Bug #11748696, Bug #40611, Bug #11750196,</p>
<p>Bug #43929, Bug# 11752675, Bug #51019, Bug #11758769.</p>
<p>&nbsp;</p>
<p>* Replication: When lower_case_table_names was set to 1 on the</p>
<p>slave, but not on the master, names of databases in replicated</p>
<p>statements were not converted, causing replication to fail on</p>
<p>slaves using case-sensitive file systems. This occurred for</p>
<p>both statement-based and row-based replication.</p>
<p>In addition, when using row-based replication with</p>
<p>lower_case_table_names set to 1 on the slave only, names of</p>
<p>tables were also not converted, also causing replication</p>
<p>failure on slaves using case-sensitive file systems. (Bug</p>
<p>#37656)</p>
<p>&nbsp;</p>
<p>* A Valgrind failure occurred in fn_format when called from</p>
<p>archive_discover. (Bug #58205, Bug #11765259)</p>
<p>&nbsp;</p>
<p>* Passing a string that was not null-terminated to UpdateXML()</p>
<p>or ExtractValue() caused the server to fail with an assertion.</p>
<p>(Bug #57279, Bug #11764447)</p>
<p>&nbsp;</p>
<p>* In bootstrap mode, the server could not execute statements</p>
<p>longer than 10,000 characters. (Bug #55817, Bug #11763139)</p>
<p>&nbsp;</p>
<p>* NULL values were not grouped properly for some joins</p>
<p>containing GROUP BY. (Bug #45267, Bug #11753766)</p>
<p>&nbsp;</p>
<p>* A HAVING clause could be lost if an index for ORDER BY was</p>
<p>available, incorrectly permitting additional rows to be</p>
<p>returned. (Bug #45227, Bug #11753730)</p>
<p>&nbsp;</p>
<p>* The optimizer could underestimate the memory required for</p>
<p>column descriptors during join processing and cause memory</p>
<p>corruption or a server crash. (Bug #42744, Bug #11751763)</p>
<p>&nbsp;</p>
<p>* The server returned incorrect results for WHERE &#8230; OR &#8230;</p>
<p>GROUP BY queries against InnoDB tables. (Bug #37977, Bug</p>
<p>#11749031)</p>
<p>&nbsp;</p>
<p>* An incorrectly checked XOR subquery optimization resulted in</p>
<p>an assertion failure. (Bug #37899, Bug #11748998)</p>
<p>&nbsp;</p>
<p>* A query that could use one index to produce the desired</p>
<p>ordering and another index for range access with index</p>
<p>condition pushdown could cause a server crash. (Bug #37851,</p>
<p>Bug #11748981)</p>
<p>&nbsp;</p>
<p>* With index condition pushdown enabled, InnoDB could crash due</p>
<p>to a mismatch between what pushdown code expected to be in a</p>
<p>record versus what was actually there. (Bug #36981, Bug</p>
<p>#11748647)</p>
<p>&nbsp;</p>
<p>* The range optimizer ignored conditions on inner tables in</p>
<p>semi-join IN subqueries, causing the optimizer to miss good</p>
<p>query execution plans. (Bug #35674, Bug #11748263)</p>
<p>&nbsp;</p>
<p>* A server crash or memory overrun could occur with a dependent</p>
<p>subquery and joins. (Bug #34799, Bug #11748009)</p>
<p>&nbsp;</p>
<p>* Selecting from a view that referenced the same table in the</p>
<p>FROM clause and an IN clause caused a server crash. (Bug</p>
<p>#33245)</p>
<p>&nbsp;</p>
<p>* Deeply nested subqueries could cause stack overflow or a</p>
<p>server crash. (Bug #32680, Bug #11747503)</p>
<p>&nbsp;</p>
<p>* The server crashed on optimization of queries that compared an</p>
<p>indexed DECIMAL column with a string value. (Bug #32262, Bug</p>
<p>#11747426)</p>
<p>&nbsp;</p>
<p>* The server crashed on optimizations that used the range</p>
<p>checked for each record access method. (Bug #32229, Bug</p>
<p>#11747417)</p>
<p>&nbsp;</p>
<p>* If the optimizer used a Multi-Range Read access method for</p>
<p>index lookups, incorrect results could occur for rows that</p>
<p>contained any of the BLOB or TEXT data types. (Bug #30622, Bug</p>
<p>#11747076)</p>
<p>&nbsp;</p>
<p>* Compared to MySQL 5.1, the optimizer failed to use join</p>
<p>buffering for certain queries, resulting in slower performance</p>
<p>for those queries. (Bug #30363, Bug #11747028)</p>
<p>&nbsp;</p>
<p>* For Multi-Range Read scans used to resolve LIMIT queries,</p>
<p>failure to close the scan caused file descriptor leaks for</p>
<p>MyISAM tables. (Bug #30221, Bug #11746994)</p>
<p>&nbsp;</p>
<p>* SHOW CREATE DATABASE did not account for the value of the</p>
<p>lower_case_table_names system variable. (Bug #21317, Bug</p>
<p>#11745926)</p>
<p>&nbsp;</p>
<p>* InnoDB Storage Engine: The server could crash on shutdown, if</p>
<p>started with &#8211;innodb-use-system-malloc=0. (Bug #55581, Bug</p>
<p>#11762927)</p>
<p>&nbsp;</p>
<p>* Replication: The unused and deprecated server options</p>
<p>&#8211;init-rpl-role and &#8211;rpl-recovery-rank, as well as the unused</p>
<p>and deprecated status variable Rpl_status, have been removed.</p>
<p>(Bug #54649, Bug #11762095)</p>
<p>See also Bug #34437, Bug #11747900, Bug #34635, Bug #11747961.</p>
<p>&nbsp;</p>
<p>* Replication: The flag stating whether a user value was signed</p>
<p>or unsigned (unsigned_flag) could sometimes change between the</p>
<p>time that the user value was recorded for logging purposes and</p>
<p>the time that the value was actually written to the binary</p>
<p>log, which could lead to inconsistency. Now unsigned_flag is</p>
<p>copied when the user variable value is copied, and the copy of</p>
<p>unsigned_flag is then used for logging. (Bug #51426, Bug</p>
<p>#11759138)</p>
<p>See also Bug #49562, Bug #11757508.</p>
<p>&nbsp;</p>
<p>* The embedded server could crash when determining which</p>
<p>directories to search for option files. (Bug #55062, Bug</p>
<p>#11762465)</p>
<p>&nbsp;</p>
<p>* Performance Schema code was subject to a buffer overflow. (Bug</p>
<p>#53363)</p>
<p>&nbsp;</p>
<p>* On Windows, an IPv6 connection to the server could not be made</p>
<p>using an IPv4 address or host name. (Bug #52381, Bug</p>
<p>#11760016)</p>
<p>&nbsp;</p>
<p>* Subquery execution for EXPLAIN could be done incorrectly and</p>
<p>raise an assertion. (Bug #52317, Bug #11759957)</p>
<p>&nbsp;</p>
<p>* There was a mixup between GROUP BY and ORDER BY concerning</p>
<p>which indexes should be considered or permitted during query</p>
<p>optimization. (Bug #52081, Bug #11759746)</p>
<p>&nbsp;</p>
<p>* On Windows, the my_rename() function failed to check whether</p>
<p>the source file existed. (Bug #51861, Bug #11759540)</p>
<p>&nbsp;</p>
<p>* The ref column of EXPLAIN output for subquery lines could be</p>
<p>missing information. (Bug #50257, Bug #11758106)</p>
<p>&nbsp;</p>
<p>* Passwords for CREATE USER statements were written to the</p>
<p>binary log in plaintext rather than in ciphertext. (Bug</p>
<p>#50172)</p>
<p>&nbsp;</p>
<p>* The BLACKHOLE storage engine failed to load on Solaris and</p>
<p>OpenSolaris if DTrace probes had been enabled. (Bug #47748,</p>
<p>Bug #11755909)</p>
<p>&nbsp;</p>
<p>* Some error messages included a literal mysql database name</p>
<p>rather than a parameter for the database name. (Bug #46792,</p>
<p>Bug #11755079)</p>
<p>&nbsp;</p>
<p>* In the ER_TABLEACCESS_DENIED_ERROR error message, the command</p>
<p>name parameter could be truncated. (Bug #45355, Bug #11753840)</p>
<p>&nbsp;</p>
<p>* On Windows, mysqlslap crashed for attempts to connect using</p>
<p>shared memory. (Bug #31173, Bug #11747181)</p>
<p>&nbsp;</p>
<p>* To forestall the occurrence of possible relocation errors in</p>
<p>the future, libmysys, libmystrings, and libdbug have been</p>
<p>changed from normal libraries to &#8220;noinst&#8221; libtool helper</p>
<p>libraries, and are no longer installed as separate libraries.</p>
<p>(Bug #29791, Bug #11746931)</p>
<p>&nbsp;</p>
<p>* A suboptimal query execution plan could be chosen when there</p>
<p>were several possible range and ref accesses. Now preference</p>
<p>is given to the keys that match the most parts and choosing</p>
<p>the best one among them. (Bug #26106, Bug #11746406)</p>
<p>&nbsp;</p>
<p>* Searches for data on a partial index for a column using the</p>
<p>UTF8 character set would fail. (Bug #24858)</p>
<p>&nbsp;</p>
<p>* For queries with GROUP BY, FORCE INDEX was not ignored as it</p>
<p>should have been when it would result in a more expensive</p>
<p>query execution plan. (Bug #18144, Bug #11745649)</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketgrid.com/blog/2011/04/mysql-community-server-5-6-2-bugs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Community Server 5.6.2</title>
		<link>http://www.marketgrid.com/blog/2011/04/mysql-community-server-5-6-2/</link>
		<comments>http://www.marketgrid.com/blog/2011/04/mysql-community-server-5-6-2/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 09:13:15 +0000</pubDate>
		<dc:creator>Phil Smith</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[MySql 5.6]]></category>
		<category><![CDATA[MySQL Community Server]]></category>

		<guid isPermaLink="false">http://www.marketgrid.com/blog/?p=531</guid>
		<description><![CDATA[MySQL Server 5.6.2 (Milestone Release) is a new version of the world&#8217;s most popular open source database. &#160; The new features in these releases are of beta quality. As with any other pre-production release, caution should be taken when installing on production level systems or systems with critical data. &#160; Note that 5.6.2 includes all [...]]]></description>
			<content:encoded><![CDATA[<p>MySQL Server 5.6.2 (Milestone Release) is a new version of the world&#8217;s most popular open source database.</p>
<p>&nbsp;</p>
<p>The new features in these releases are of beta quality. As with any other pre-production release, caution should be taken when installing on production level systems or systems with critical data.</p>
<p>&nbsp;</p>
<p>Note that 5.6.2 includes all features in MySQL 5.5. For an overview of</p>
<p>what&#8217;s new in MySQL 5.6, please see the section &#8220;What Is New in MySQL</p>
<p>5.6&#8243; below, or view it online at  http://dev.mysql.com/doc/refman/5.6/en/mysql-nutshell.html</p>
<p>&nbsp;</p>
<p>For information on installing MySQL 5.6.2 on new servers, please see the</p>
<p>MySQL installation documentation at  http://dev.mysql.com/doc/refman/5.6/en/installing.html</p>
<p>&nbsp;</p>
<p>For upgrading from previous MySQL releases, please see the important</p>
<p>upgrade considerations at  http://dev.mysql.com/doc/refman/5.6/en/upgrading-from-previous-series.html</p>
<p>&nbsp;</p>
<p>Please note that *downgrading* from these releases to a previous release</p>
<p>series is not supported.</p>
<p>&nbsp;</p>
<p>MySQL Server 5.6 is available in source and binary form for a number of</p>
<p>platforms from the &#8220;Development Releases&#8221; selection of the download</p>
<p>pages at  http://dev.mysql.com/downloads/mysql/</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The list of all &#8220;Bugs Fixed&#8221; for 5.6.2 may also be viewed online at</p>
<p>&nbsp;</p>
<p>http://dev.mysql.com/doc/refman/5.6/en/news-5-6-2.html</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>D.1.2. Changes in MySQL 5.6.2 (11 April 2011)</p>
<p>&nbsp;</p>
<p>Explicit Partition Selection</p>
<p>&nbsp;</p>
<p>* Partitioning: It is now possible to select one or more</p>
<p>partitions or subpartitions when querying from a partitioned</p>
<p>table. In addition, many data modification statements (DELETE,</p>
<p>INSERT, REPLACE, UPDATE, LOAD DATA, and LOAD XML) that act on</p>
<p>partitioned tables also now support explicit partition</p>
<p>selection. For example, assume we have a table named t with</p>
<p>some integer column named c, and t has 4 partitions named p0,</p>
<p>p1, p2, and p3. Then the query SELECT * FROM t PARTITION (p0,</p>
<p>p1) WHERE c &lt; 5 returns rows only in partitions p0 and p1 that</p>
<p>match the WHERE condition, while partitions p2 and p3 are not</p>
<p>checked.</p>
<p>For additional information and examples, see Section 16.5,</p>
<p>&#8220;Partition Selection,&#8221; as well as the descriptions of the</p>
<p>statements just listed.</p>
<p>&nbsp;</p>
<p>Row Image Control</p>
<p>&nbsp;</p>
<p>* Replication: Added the binlog_row_image server system</p>
<p>variable, which can be used to enable row image control for</p>
<p>row-based replication. This means that you can potentially</p>
<p>save disk space, network resources, and memory usage by the</p>
<p>MySQL Server by logging only those columns that are required</p>
<p>for uniquely identifying rows, or which are actually changed</p>
<p>on each row, as opposed to logging all columns for each and</p>
<p>every row change event. In addition, you can use a &#8220;noblob&#8221;</p>
<p>mode where all columns, except for unneeded BLOB or TEXT</p>
<p>columns, are logged.</p>
<p>For more information, see Section 15.1.3.4, &#8220;System variables</p>
<p>used with the binary log.&#8221; (Bug #47200, Bug #11755426, Bug</p>
<p>#47303, Bug #56917, Bug #11755426, Bug #11755513, Bug</p>
<p>#11764116)</p>
<p>&nbsp;</p>
<p>Crash-Safe Binary Log</p>
<p>&nbsp;</p>
<p>* Replication: Support for checksums when writing and reading</p>
<p>the binary log is added to the MySQL Server. Writing checksums</p>
<p>into the binary log is disabled by default; it can be enabled</p>
<p>by starting the server with the &#8211;binlog-checksum option. To</p>
<p>cause the server to read checksums from the binary log, start</p>
<p>the server with the &#8211;master-verify-checksum option. The</p>
<p>&#8211;slave-sql-verify-checksum option causes the slave to read</p>
<p>checksums from the relay log.</p>
<p>&nbsp;</p>
<p>* Replication: The MySQL Server now records and reads back only</p>
<p>complete events or transactions to and from the binary log. By</p>
<p>default, the server now logs the length of the event as well</p>
<p>as the event itself and uses this information to verify that</p>
<p>the event was written correctly to the log. A master also uses</p>
<p>by default this value to verify events when reading from the</p>
<p>binary log.</p>
<p>If you enable writing of checksums (using the binlog_checksum</p>
<p>system variable), the master can use these instead by enabling</p>
<p>the master_verify_checksum system variable. The slave I/O</p>
<p>thread also verifies events received from the master. You can</p>
<p>cause the slave SQL thread to use checksums (if available) as</p>
<p>well, when reading from the relay log, by enabling the</p>
<p>slave_sql_verify_checksum system variable on the slave.</p>
<p>&nbsp;</p>
<p>Slave Log Tables</p>
<p>&nbsp;</p>
<p>* Replication: It is now possible to write information about the</p>
<p>slave connection to the master and about the slave&#8217;s execution</p>
<p>point within the relay log to tables rather than files.</p>
<p>Logging of master connection information and of slave relay</p>
<p>log information to tables can be done independently of one</p>
<p>another; this is controlled by the &#8211;master-info-repository</p>
<p>and &#8211;relay-log-info-repository server options. When</p>
<p>&#8211;master-info-repository is set to TABLE, connection</p>
<p>information is logged in the slave_master_info table in the</p>
<p>mysql system database. When &#8211;relay-log-info-repository is set</p>
<p>to TABLE, relay log information is logged to the</p>
<p>slave_relay_log_info table, also in the mysql database.</p>
<p>&nbsp;</p>
<p>Globally Unique Server IDs</p>
<p>&nbsp;</p>
<p>* Replication: Implemented globally unique IDs for MySQL</p>
<p>servers. A UUID is now obtained automatically when the MySQL</p>
<p>server starts. The server first checks for a UUID written in</p>
<p>the auto.cnf file (in the server&#8217;s data directory), and uses</p>
<p>this UUID if found. Otherwise, the server generates a new UUID</p>
<p>and saves it to this file (and creates the file if it does not</p>
<p>already exist). This UUID is available as the server_uuid</p>
<p>system variable.</p>
<p>MySQL replication masters and slaves know each other&#8217;s UUIDs.</p>
<p>The value of a slave&#8217;s UUID can be read on the master as the</p>
<p>system variable slave_uuid, as well as in the output of SHOW</p>
<p>SLAVE HOSTS. After a slave is started (with START SLAVE), the</p>
<p>value of the master&#8217;s UUID is available on the slave as the</p>
<p>master_uuid system variable, as well as in the output of SHOW</p>
<p>SLAVE STATUS.</p>
<p>For more information, see Section 15.1.3, &#8220;Replication and</p>
<p>Binary Logging Options and Variables.&#8221; (Bug #33815, Bug</p>
<p>#11747723)</p>
<p>See also Bug #16927, Bug #11745543.</p>
<p>&nbsp;</p>
<p>Optimizer Features</p>
<p>&nbsp;</p>
<p>* The optimizer now more efficiently handles queries (and</p>
<p>subqueries) of the following form:</p>
<p>SELECT &#8230; FROM single_table &#8230; ORDER BY non_index_column</p>
<p>[DESC] LIMIT N;</p>
<p>That type of query is common in web applications that display</p>
<p>only a few rows from a larger result set. For example:</p>
<p>SELECT col1, &#8230; FROM t1 &#8230; ORDER BY name LIMIT 10;</p>
<p>SELECT col1, &#8230; FROM t1 &#8230; ORDER BY RAND() LIMIT 15;</p>
<p>If the sort elements for N rows are small enough to fit in the</p>
<p>sort buffer, which has a size of sort_buffer_size, the server</p>
<p>can avoid using a merge file and perform the sort entirely in</p>
<p>memory. For details, see Section 7.2.1.3, &#8220;Optimizing LIMIT</p>
<p>Queries.&#8221;</p>
<p>&nbsp;</p>
<p>* The optimizer implements Disk-Sweep Multi-Range Read. Reading</p>
<p>rows using a range scan on a secondary index can result in</p>
<p>many random disk accesses to the base table when the table is</p>
<p>large and not stored in the storage engine&#8217;s cache. With the</p>
<p>Disk-Sweep Multi-Range Read (MRR) optimization, MySQL tries to</p>
<p>reduce the number of random disk access for range scans by</p>
<p>first scanning the index only and collecting the keys for the</p>
<p>relevant rows. Then the keys are sorted and finally the rows</p>
<p>are retrieved from the base table using the order of the</p>
<p>primary key. The motivation for Disk-sweep MRR is to reduce</p>
<p>the number of random disk accesses and instead achieve a more</p>
<p>sequential scan of the base table data. For more information,</p>
<p>see Section 7.13.10, &#8220;Multi-Range Read Optimization.&#8221;</p>
<p>&nbsp;</p>
<p>* The optimizer implements Index Condition Pushdown (ICP), an</p>
<p>optimization for the case where MySQL retrieves rows from a</p>
<p>table using an index. Without ICP, the storage engine</p>
<p>traverses the index to locate rows in the base table and</p>
<p>returns them to the MySQL server which evaluates the WHERE</p>
<p>condition for the rows. With ICP enabled, and if parts of the</p>
<p>WHERE condition can be evaluated by using only fields from the</p>
<p>index, the MySQL server pushes this part of the WHERE</p>
<p>condition down to the storage engine. The storage engine then</p>
<p>evaluates the pushed index condition by using the index entry</p>
<p>and only if this is satisfied is base row be read. ICP can</p>
<p>reduce the number of accesses the storage engine has to do</p>
<p>against the base table and the number of accesses the MySQL</p>
<p>server has to do against the storage engine. For more</p>
<p>information, see Section 7.13.4, &#8220;Index Condition Pushdown</p>
<p>Optimization.&#8221;</p>
<p>&nbsp;</p>
<p>Performance Schema Notes</p>
<p>&nbsp;</p>
<p>* The Performance Schema has these additions:</p>
<p>&nbsp;</p>
<p>+ The Performance Schema now has tables that contain</p>
<p>summaries for table and index I/O wait events, as</p>
<p>generated by the wait/io/table/sql/handler instrument:</p>
<p>o table_io_waits_summary_by_table aggregates table I/O</p>
<p>wait events. The grouping is by table.</p>
<p>o table_io_waits_summary_by_index_usage aggregates</p>
<p>table index I/O wait events. The grouping is by</p>
<p>table index.</p>
<p>The information in these tables can be used to assess the</p>
<p>impact of table I/O performed by applications. For</p>
<p>example, it is possible to see which tables are used and</p>
<p>which indexes are used (or not used), or to identify</p>
<p>bottlenecks on a table when multiple applications access</p>
<p>it. The results may be useful to change how applications</p>
<p>issue queries against a database, to minimize application</p>
<p>footprint on the server and to improve application</p>
<p>performance and scalability.</p>
<p>A change that accompanies the new tables is that the</p>
<p>events_waits_current table now has an INDEX_NAME column</p>
<p>to identify which index was used for that operation that</p>
<p>generated the event. The same is true of the</p>
<p>event-history tables, events_waits_history, and</p>
<p>events_waits_history_long.</p>
<p>&nbsp;</p>
<p>+ The Performance Schema now has an instrument named</p>
<p>wait/lock/table/sql/handler in the setup_instruments</p>
<p>table for instrumenting table lock wait events. It</p>
<p>differs from wait/io/table/sql/handler, which instruments</p>
<p>table I/O. This enables independent instrumentation of</p>
<p>table I/O and table locks.</p>
<p>Accompanying the new instrument, the Performance Schema</p>
<p>has a table named table_lock_waits_summary_by_table that</p>
<p>aggregates table lock wait events, as generated by the</p>
<p>new instrument. The grouping is by table.</p>
<p>The information in this table may be used to assess the</p>
<p>impact of table locking performed by applications. The</p>
<p>results may be useful to change how applications issue</p>
<p>queries against the database and use table locks, to</p>
<p>minimize the application footprint on the server and to</p>
<p>improve application performance and scalability. For</p>
<p>example, an application locking tables for a long time</p>
<p>may negatively affect other applications, and the</p>
<p>instrumentation makes this visible.</p>
<p>&nbsp;</p>
<p>+ To selectively control which tables are instrumented for</p>
<p>I/O and locking, use the setup_objects table. See Section</p>
<p>19.3.1.2, &#8220;Pre-Filtering by Object.&#8221;</p>
<p>&nbsp;</p>
<p>+ The setup_consumers table contents have changed.</p>
<p>Previously, the table used a &#8220;flat&#8221; structure with a</p>
<p>one-to-one correspondence between consumer name and</p>
<p>destination table. This has been replaced with a</p>
<p>hierarchy of consumer settings that enable progressively</p>
<p>finer control of which destinations receive events. The</p>
<p>previous xxx_summary_xxx consumers no longer exist.</p>
<p>Instead, the Performance Schema maintains appropriate</p>
<p>summaries automatically for the levels are which settings</p>
<p>in the consumer hierarchy are enabled. For example, if</p>
<p>only the top-level (global) consumer is enabled, only</p>
<p>global summaries are maintained. Others, such as</p>
<p>thread-level summaries, are not. See Section 19.3.1.4,</p>
<p>&#8220;Pre-Filtering by Consumer.&#8221; In addition, optimizations</p>
<p>have been added to reduce Performance Schema overhead.</p>
<p>&nbsp;</p>
<p>+ It is now possible to filter events by object using the</p>
<p>new setup_objects table. Currently, this table can be</p>
<p>used to selectively instrument tables, based on schema</p>
<p>names and/or table names. See Section 19.3.1.2,</p>
<p>&#8220;Pre-Filtering by Object.&#8221; A new table,</p>
<p>objects_summary_global_by_type, summarizes events for</p>
<p>objects.</p>
<p>&nbsp;</p>
<p>+ It is now possible to filter events by thread, and the</p>
<p>Performance Schema collects more information for each</p>
<p>thread. A new table, setup_actors, can be used to</p>
<p>selectively instrument user connections, based on the</p>
<p>user name and/or host name of each connecting session.</p>
<p>The threads table, which contains a row for each active</p>
<p>server thread, was extended with several new columns.</p>
<p>With these additions, the information available in</p>
<p>threads is like that available from the</p>
<p>INFORMATION_SCHEMA.PROCESSLIST table or the output from</p>
<p>SHOW PROCESSLIST. Thus, all three serve to provide</p>
<p>information for thread-monitoring purposes. Use of</p>
<p>threads differs from use of the other two thread</p>
<p>information sources in these ways:</p>
<p>o Access to threads does not require a mutex and has</p>
<p>minimal impact on server performance.</p>
<p>INFORMATION_SCHEMA.PROCESSLIST and SHOW PROCESSLIST</p>
<p>have negative performance consequences because they</p>
<p>require a mutex.</p>
<p>o threads provides additional information for each</p>
<p>thread, such as whether it is a foreground or</p>
<p>background thread, and the location within the</p>
<p>server associated with the thread.</p>
<p>o threads provides information about background</p>
<p>threads. This means that threads can be used to</p>
<p>monitor activity the other thread information</p>
<p>sources cannot.</p>
<p>o You can control which threads are monitored by</p>
<p>setting the INSTRUMENTED column or by using the</p>
<p>setup_actors table.</p>
<p>For these reasons, DBAs who perform server monitoring</p>
<p>using INFORMATION_SCHEMA.PROCESSLIST or SHOW PROCESSLIST</p>
<p>may wish to monitor using threads instead.</p>
<p>&nbsp;</p>
<p>If you upgrade to this release of MySQL from an earlier</p>
<p>version, you must run mysql_upgrade (and restart the server)</p>
<p>to incorporate these changes into the performance_schema</p>
<p>database.</p>
<p>For more information, see Chapter 19, &#8220;MySQL Performance</p>
<p>Schema.&#8221;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Functionality added or changed:</p>
<p>&nbsp;</p>
<p>* Incompatible Change: The following obsolete constructs have</p>
<p>been removed. Where alternatives are shown, applications</p>
<p>should be updated to use them.</p>
<p>&nbsp;</p>
<p>+ The FLUSH MASTER and FLUSH SLAVE statements. Use the</p>
<p>RESET MASTER and RESET SLAVE statements instead.</p>
<p>&nbsp;</p>
<p>+ The &#8211;log server option and the log system variable.</p>
<p>Instead, use the &#8211;general_log option to enable the</p>
<p>general query log and the &#8211;general_log_file=file_name</p>
<p>option to set the general query log file name.</p>
<p>&nbsp;</p>
<p>+ The &#8211;log-slow-queries server option and the</p>
<p>log_slow_queries system variable. Instead, use the</p>
<p>&#8211;slow_query_log option to enable the slow query log and</p>
<p>the &#8211;slow_query_log_file=file_name option to set the</p>
<p>slow query log file name.</p>
<p>&nbsp;</p>
<p>+ The &#8211;one-thread server option. Use</p>
<p>&#8211;thread_handling=no-threads instead.</p>
<p>&nbsp;</p>
<p>+ The &#8211;skip-thread-priority server option.</p>
<p>&nbsp;</p>
<p>+ The engine_condition_pushdown system variable. Use the</p>
<p>engine_condition_pushdown flag of the optimizer_switch</p>
<p>variable instead.</p>
<p>&nbsp;</p>
<p>+ The have_csv, have_innodb, have_ndbcluster</p>
<p>(<a href="http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-sys">http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-sys</a></p>
<p>tem-variables.html#sysvar_have_ndbcluster), and</p>
<p>have_partitioning system variables. Use SHOW ENGINES</p>
<p>instead.</p>
<p>&nbsp;</p>
<p>+ The sql_big_tables system variable. Use big_tables</p>
<p>instead.</p>
<p>&nbsp;</p>
<p>+ The sql_low_priority_updates system variable. Use</p>
<p>low_priority_updates instead.</p>
<p>&nbsp;</p>
<p>+ The sql_max_join_size system variable. Use max_join_size</p>
<p>instead.</p>
<p>&nbsp;</p>
<p>+ The SLAVE START and SLAVE STOP statements. Use the START</p>
<p>SLAVE and STOP SLAVE statements instead.</p>
<p>&nbsp;</p>
<p>+ The ONE_SHOT modifier for the SET statement.</p>
<p>&nbsp;</p>
<p>* Important Change: Replication: Replication filtering options</p>
<p>such as &#8211;replicate-do-db, &#8211;replicate-rewrite-db, and</p>
<p>&#8211;replicate-do-table were not consistent with one another in</p>
<p>regard to case sensitivity. Now all &#8211;replicate-* options</p>
<p>follow the same rules for case sensitivity applying to names</p>
<p>of databases and tables elsewhere in the MySQL server,</p>
<p>including the effects of the lower_case_table_names system</p>
<p>variable. (Bug #51639, Bug #11759334)</p>
<p>&nbsp;</p>
<p>* Important Change: Replication: Added the MASTER_RETRY_COUNT</p>
<p>option to the CHANGE MASTER TO statement, and a corresponding</p>
<p>Master_Retry_Count column to the output of SHOW SLAVE STATUS.</p>
<p>The option sets the value shown in this column.</p>
<p>MASTER_RETRY_COUNT is intended eventually to replace the older</p>
<p>&#8211;master-retry-count server option, and is now the preferred</p>
<p>method for setting the maximum number of times that the slave</p>
<p>may attempt to reconnect after losing its connection to the</p>
<p>master. (Bug #44209, Bug #11752887, Bug #44486, Bug #11753110)</p>
<p>&nbsp;</p>
<p>* Important Change: Replication: Added the</p>
<p>&#8211;binlog-rows-query-log-events option for mysqld. Using this</p>
<p>option causes a server logging in row-based mode to write</p>
<p>informational rows query log events (SQL statements, for</p>
<p>debugging and other purposes) to the binary log. MySQL server</p>
<p>and MySQL programs from MySQL 5.6.2 and later normally ignore</p>
<p>such events, so that they do not pose an issue when reading</p>
<p>the binary log. mysqld and mysqlbinlog from previous MySQL</p>
<p>releases cannot read such events in the binary log, and fail</p>
<p>if they attempt to do so. For this reason, you should never</p>
<p>prepare logs for a MySQL 5.6.1 or earlier replication slave</p>
<p>server (or other reader such as mysqlbinlog) with this option</p>
<p>enabled on the master. (Bug #11758695, Bug #50935, Bug</p>
<p>#11758695)</p>
<p>&nbsp;</p>
<p>* Replication: SHOW SLAVE STATUS now displays the actual number</p>
<p>of retries for each connection attempt made by the I/O thread.</p>
<p>(Bug #56416, Bug #11763675)</p>
<p>&nbsp;</p>
<p>* Replication: Added the Slave_last_heartbeat status variable,</p>
<p>which shows when a replication slave last received a heartbeat</p>
<p>signal. The value is displayed using TIMESTAMP format. (Bug</p>
<p>#45441)</p>
<p>&nbsp;</p>
<p>* Replication: Timestamps have been added to the output of SHOW</p>
<p>SLAVE STATUS to show when the most recent I/O and SQL thread</p>
<p>errors occurred. The Last_IO_Error column is now prefixed with</p>
<p>the timestamp for the most recent I/O error, and</p>
<p>Last_SQL_Error shows the timestamp for the most recent SQL</p>
<p>thread error. The timestamp values use the format YYMMDD</p>
<p>HH:MM:SS in both of these columns. For more information, see</p>
<p>Section 12.4.5.35, &#8220;SHOW SLAVE STATUS Syntax.&#8221; (Bug #43535,</p>
<p>Bug #11752361)</p>
<p>&nbsp;</p>
<p>* Replication: On MySQL replication slaves having multiple</p>
<p>network interfaces, it is now possible to set which interface</p>
<p>to use for connecting to the master using the</p>
<p>MASTER_BIND=&#8217;interface&#8217; option in a CHANGE MASTER TO</p>
<p>statement.</p>
<p>The value set by this option can be seen in the Master_Bind</p>
<p>column of the output from SHOW SLAVE STATUS or the Bind column</p>
<p>of the mysql.slave_master_info table. (Bug #25939, Bug</p>
<p>#11746389)</p>
<p>&nbsp;</p>
<p>* Replication: Added the log_bin_basename system variable, which</p>
<p>contains the complete filename and path to the binary log</p>
<p>file. (The log_bin system variable shows only whether or not</p>
<p>binary logging is enabled; log_bin_basename, however, reflects</p>
<p>the name set with the &#8211;log-bin server option.) Also added</p>
<p>relay_log_basename system variable, which shows the filename</p>
<p>and complete path to the relay log file.</p>
<p>See also Bug #19614, Bug #11745759.</p>
<p>&nbsp;</p>
<p>* Changes to replication in MySQL 5.6 make mysqlbinlog output</p>
<p>generated by the &#8211;base64-output=ALWAYS option unusable.</p>
<p>ALWAYS is now an invalid value for this option. If the option</p>
<p>is given without a value, the effect is now the same as</p>
<p>&#8211;base64-output=AUTO rather than &#8211;base64-output=ALWAYS.</p>
<p>See also Bug #28760, Bug #11746794.</p>
<p>&nbsp;</p>
<p>* Replication: The SHOW SLAVE STATUS statement now has a</p>
<p>Master_Info_File field indicating the location of the</p>
<p>master.info file. (Bug #50316, Bug #11758151)</p>
<p>&nbsp;</p>
<p>* Replication: MySQL now supports delayed replication such that</p>
<p>a slave server deliberately lags behind the master by at least</p>
<p>a specified amount of time. The default delay is 0 seconds.</p>
<p>Use the new MASTER_DELAY option for CHANGE MASTER TO to set</p>
<p>the delay to N seconds:</p>
<p>CHANGE MASTER TO MASTER_DELAY = N;</p>
<p>An event received from the master is not executed until at</p>
<p>least N seconds later than its execution on the master.</p>
<p>START SLAVE and STOP SLAVE take effect immediately and ignore</p>
<p>any delay. RESET SLAVE resets the delay to 0.</p>
<p>SHOW SLAVE STATUS has three new fields that provide</p>
<p>information about the delay:</p>
<p>&nbsp;</p>
<p>+ SQL_Delay: The number of seconds that the slave must lag</p>
<p>the master.</p>
<p>&nbsp;</p>
<p>+ SQL_Remaining_Delay: When Slave_SQL_Running_State is</p>
<p>Waiting until MASTER_DELAY seconds after master executed</p>
<p>event, this field contains the number of seconds left of</p>
<p>the delay. At other times, this field is NULL.</p>
<p>&nbsp;</p>
<p>+ Slave_SQL_Running_State: The state of the SQL thread</p>
<p>(analogous to Slave_IO_State). The value is identical to</p>
<p>the State value of the SQL thread as displayed by SHOW</p>
<p>PROCESSLIST.</p>
<p>When the slave SQL thread is waiting for the delay to elapse</p>
<p>before executing an event, SHOW PROCESSLIST displays its State</p>
<p>value as Waiting until MASTER_DELAY seconds after master</p>
<p>executed event.</p>
<p>The relay-log.info file now contains the delay value, so the</p>
<p>file format has changed. See Section 15.2.2.2, &#8220;Slave Status</p>
<p>Logs.&#8221; In particular, the first line of the file now indicates</p>
<p>how many lines are in the file. If you downgrade a slave</p>
<p>server to a version older than MySQL 5.6, the older server</p>
<p>will not read the file correctly. To address this, modify the</p>
<p>file in a text editor to delete the initial line containing</p>
<p>the number of lines.</p>
<p>The introduction of delayed replication entails these</p>
<p>restrictions:</p>
<p>&nbsp;</p>
<p>+ Previously the BINLOG statement could execute all types</p>
<p>of events. Now it can execute only format description</p>
<p>events and row events.</p>
<p>&nbsp;</p>
<p>+ The output from mysqlbinlog &#8211;base64-output=ALWAYS cannot</p>
<p>be parsed. ALWAYS becomes an invalid value for this</p>
<p>option in 5.6.1.</p>
<p>For additional information, see Section 15.3.9, &#8220;Delayed</p>
<p>Replication.&#8221; (Bug #28760, Bug #11746794)</p>
<p>&nbsp;</p>
<p>* The Performance Schema now includes instrumentation for table</p>
<p>input and output. Instrumented operations include row-level</p>
<p>accesses to persistent base tables or temporary tables.</p>
<p>Operations that affect rows are fetch, insert, update, and</p>
<p>delete. For a view, waits are associated with base tables</p>
<p>referenced by the view.</p>
<p>&nbsp;</p>
<p>InnoDB Configurable Data Dictionary cache</p>
<p>&nbsp;</p>
<p>* InnoDB Storage Engine: InnoDB now uses the table_cache option</p>
<p>value as a guide to remove table metadata from memory when</p>
<p>many different InnoDB tables are accessed. InnoDB table</p>
<p>metadata is removed using a variation of the LRU algorithm.</p>
<p>(Parent and child tables in foreign key relationships are</p>
<p>exempted from removal.) (Bug #20877, Bug #11745884)</p>
<p>&nbsp;</p>
<p>INFORMATION_SCHEMA Table for InnoDB Metrics</p>
<p>&nbsp;</p>
<p>* InnoDB Storage Engine: A new INFORMATION_SCHEMA table,</p>
<p>INNODB_METRICS, lets you query low-level InnoDB performance</p>
<p>information, getting cumulative counts, averages, and min/max</p>
<p>values for internal aspects of the storage engine operation.</p>
<p>You can start, stop, and reset the metrics counters using the</p>
<p>configuration variables innodb_monitor_enable,</p>
<p>innodb_monitor_disable, innodb_monitor_reset, and</p>
<p>innodb_monitor_reset_all.</p>
<p>&nbsp;</p>
<p>INFORMATION_SCHEMA Tables for InnoDB Buffer Pool Information</p>
<p>&nbsp;</p>
<p>* InnoDB Storage Engine: The new INFORMATION_SCHEMA tables</p>
<p>INNODB_BUFFER_PAGE, INNODB_BUFFER_PAGE_LRU, and</p>
<p>INNODB_BUFFER_POOL_STATS display InnoDB buffer pool</p>
<p>information for tuning on large-memory or highly loaded</p>
<p>systems.</p>
<p>&nbsp;</p>
<p>INFORMATION_SCHEMA Tables for InnoDB Data Dictionary</p>
<p>&nbsp;</p>
<p>* InnoDB Storage Engine: The InnoDB data dictionary, containing</p>
<p>metadata about InnoDB tables, columns, indexes, and foreign</p>
<p>keys, is available for SQL queries through a set of</p>
<p>INFORMATION_SCHEMA tables.</p>
<p>&nbsp;</p>
<p>Persistent InnoDB Optimizer Statistics</p>
<p>&nbsp;</p>
<p>* InnoDB Storage Engine: The optimizer statistics for InnoDB</p>
<p>tables can now persist across server restarts, producing more</p>
<p>stable query performance. You can also control the amount of</p>
<p>sampling done to estimate cardinality for each index,</p>
<p>resulting in more accurate optimizer statistics.</p>
<p>&nbsp;</p>
<p>* InnoDB Storage Engine: InnoDB can optionally log details about</p>
<p>all deadlocks that occur, to assist with troubleshooting and</p>
<p>diagnosis. This feature is controlled by the</p>
<p>innodb_print_all_deadlocks configuration option. (Bug #1784,</p>
<p>, Bug #11744783, Bug #17572)</p>
<p>&nbsp;</p>
<p>* InnoDB Storage Engine: A separate InnoDB thread (page_cleaner)</p>
<p>now handles the flushing of dirty pages that was formerly done</p>
<p>by the InnoDB master thread.</p>
<p>&nbsp;</p>
<p>* InnoDB Storage Engine: The configuration option</p>
<p>innodb_purge_threads can now be set to a value higher than 1.</p>
<p>&nbsp;</p>
<p>* InnoDB Storage Engine: The InnoDB kernel mutex has been split</p>
<p>into several mutexes and rw-locks, for improved concurrency.</p>
<p>&nbsp;</p>
<p>* Windows provides APIs based on UTF-16LE for reading from and</p>
<p>writing to the console. MySQL now supports a utf16le character</p>
<p>set for UTF-16LE, so the mysql client for Windows has been</p>
<p>modified to provide improved Unicode support by using these</p>
<p>APIs.</p>
<p>To take advantage of this change, you must run mysql within a</p>
<p>console that uses a compatible Unicode font and set the</p>
<p>default character set to a Unicode character set that is</p>
<p>supported for communication with the server. For instructions,</p>
<p>see Section 4.5.1.6.1, &#8220;Unicode Support on Windows.&#8221;</p>
<p>&nbsp;</p>
<p>* Several changes were made to optimizer-related system</p>
<p>variables:</p>
<p>&nbsp;</p>
<p>+ The optimizer_switch system variable has new</p>
<p>engine_condition_pushdown and index_condition_pushdown</p>
<p>flags to control whether storage engine condition</p>
<p>pushdown and index condition pushdown optimizations are</p>
<p>used. The engine_condition_pushdown system variable now</p>
<p>is deprecated. For information about condition pushdown,</p>
<p>see Section 7.13.3, &#8220;Engine Condition Pushdown</p>
<p>Optimization,&#8221; and Section 7.13.4, &#8220;Index Condition</p>
<p>Pushdown Optimization.&#8221;</p>
<p>&nbsp;</p>
<p>+ The optimizer_switch system variable has new mrr and</p>
<p>mrr_cost_based flags to control use of the Multi-Range</p>
<p>Read optimization. The optimizer_use_mrr system variable</p>
<p>has been removed. For information about Multi-Range Read,</p>
<p>see Section 7.13.10, &#8220;Multi-Range Read Optimization.&#8221;</p>
<p>&nbsp;</p>
<p>+ The join_cache_level system variable has been renamed to</p>
<p>optimizer_join_cache_level. This enables SHOW VARIABLES</p>
<p>LIKE &#8216;optimizer%&#8217; to show more optimizer-related</p>
<p>settings.</p>
<p>&nbsp;</p>
<p>* In MySQL 5.5, setting optimizer_search_depth to the deprecated</p>
<p>value of 63 switched to the algorithm used in MySQL 5.0.0 (and</p>
<p>previous versions) for performing searches. The value of 63 is</p>
<p>now treated as invalid.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>* The Unicode implementation has been extended to a utf16le</p>
<p>character set, which corresponds to the UTF-16LE encoding of</p>
<p>the Unicode character set. This is similar to utf16 (UTF16)</p>
<p>but is little-endian rather than big-endian.</p>
<p>utf16le has two collations available:</p>
<p>&nbsp;</p>
<p>+ utf16le_general_ci: The default collation, case sensitive</p>
<p>(similar to utf16_general_ci.</p>
<p>&nbsp;</p>
<p>+ utf16le_bin: Case sensitive, with by-codepoint comparison</p>
<p>that provides the same order as utf16_bin.</p>
<p>There are some limitations on the use of utf16le. With the</p>
<p>exception of the item regarding user-defined collations, these</p>
<p>are the same as the limitations on ucs2, utf16, and utf32.</p>
<p>&nbsp;</p>
<p>+ utf16le cannot be used as a client character set, which</p>
<p>means that it also does not work for SET NAMES or SET</p>
<p>CHARACTER SET.</p>
<p>&nbsp;</p>
<p>+ It is not possible to use LOAD DATA INFILE to load data</p>
<p>files that use utf16le.</p>
<p>&nbsp;</p>
<p>+ FULLTEXT indexes cannot be created on a column that uses</p>
<p>utf16le. However, you can perform IN BOOLEAN MODE</p>
<p>searches on the column without an index.</p>
<p>&nbsp;</p>
<p>+ The use of ENCRYPT() with utf16le is not recommended</p>
<p>because the underlying system call expects a string</p>
<p>terminated by a zero byte.</p>
<p>&nbsp;</p>
<p>+ It is not possible to create user-defined UCA collations</p>
<p>for utf16le because there is no utf16le_unicode_ci</p>
<p>collation, which would serve as the basis for such</p>
<p>collations.</p>
<p>&nbsp;</p>
<p>* Unicode collation names now may include a version number to</p>
<p>indicate the Unicode Collation Algorithm (UCA) version on</p>
<p>which the collation is based. Initial collations thus created</p>
<p>use version UCA 5.2.0. For example, utf8_unicode_520_ci is</p>
<p>based on UCA 5.2.0. UCA-based Unicode collation names that do</p>
<p>not include a version number are based on version 4.0.0.</p>
<p>LOWER() and UPPER() perform case folding according to the</p>
<p>collation of their argument. A character that has uppercase</p>
<p>and lowercase versions only in a Unicode version more recent</p>
<p>than 4.0.0 will be converted by these functions only if the</p>
<p>argument has a collation that uses a recent enough UCA</p>
<p>version.</p>
<p>The LDML rules for creating user-defined collations are</p>
<p>extended to permit an optional version attribute in</p>
<p>&lt;collation&gt; tags to indicate the UCA version on which the</p>
<p>collation is based. If the version attribute is omitted, its</p>
<p>default value is 4.0.0. See Section 9.4.4, &#8220;Adding a UCA</p>
<p>Collation to a Unicode Character Set.&#8221;</p>
<p>&nbsp;</p>
<p>* Croatian collations were added for Unicode character sets:</p>
<p>utf8_croatian_ci, ucs2_croatian_ci, utf8mb4_croatian_ci,</p>
<p>utf16_croatian_ci, and utf32_croatian_ci. Thee collations have</p>
<p>tailoring for Croatian letters: ÄŒ, Ä†, DÅ¾, Ä, Lj, Nj, Å , Å½.</p>
<p>They are based on Unicode 4.0.</p>
<p>&nbsp;</p>
<p>* Vietnamese collations were added for the Unicode character</p>
<p>sets. Those based on Unicode Collation Algorithm 5.2.0 have</p>
<p>names of the form xxx_vietnamese_520_ci (for example,</p>
<p>utf8_vietnamese_520_ci). Those based on Unicode Collation</p>
<p>Algorithm 4.0.0 have names of the form xxx_vietnamese_ci (for</p>
<p>example, utf8_vietnamese_ci). These collations are the same as</p>
<p>the corresponding xxx_unicode_520_ci and xxx_unicode_ci</p>
<p>collations except for precomposed characters which are</p>
<p>accented versions of &#8220;A&#8221;, &#8220;D&#8221;, &#8220;E&#8221;, &#8220;O&#8221;, and &#8220;U&#8221;. There is no</p>
<p>change to ideographic characters derived from Chinese. There</p>
<p>are no digraphs.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>* The Unicode character sets now have a xxx_german2_ci collation</p>
<p>that provides DIN-2 (phone book) ordering (for example,</p>
<p>utf8_german2_ci). See Section 9.1.14.1, &#8220;Unicode Character</p>
<p>Sets.&#8221;</p>
<p>&nbsp;</p>
<p>* The Romansh locale &#8216;rm_CH&#8217; is now a permissible value for the</p>
<p>lc_time_names system variable. (Bug #50915, Bug #11758678)</p>
<p>&nbsp;</p>
<p>* Partitioning: It is now possible to exchange a partition of a</p>
<p>partitioned table or a subpartition of a subpartitioned table</p>
<p>with a nonpartitioned table that otherwise has the same</p>
<p>structure using the ALTER TABLE &#8230; EXCHANGE PARTITION</p>
<p>statement. This can be used, for example, for importing and</p>
<p>exporting partitions.</p>
<p>For more information and examples, see Section 16.3.3,</p>
<p>&#8220;Exchanging Partitions and Subpartitions with Tables.&#8221;</p>
<p>&nbsp;</p>
<p>* The mysql_upgrade, mysqlbinlog, mysqlcheck, mysqlimport,</p>
<p>mysqlshow, and mysqlslap clients now have &#8211;default-auth and</p>
<p>&#8211;plugin-dir options for specifying which authentication</p>
<p>plugin and plugin directory to use. (Bug #58139, Bug #11765201)</p>
<p>&nbsp;</p>
<p>* mysqlbinlog now has a &#8211;binlog-row-event-max-size option to</p>
<p>enable large row events to be read from binary log files. (Bug</p>
<p>#49932)</p>
<p>&nbsp;</p>
<p>* mysqlbinlog now has the capability to back up a binary log in</p>
<p>its original binary format. When invoked with the</p>
<p>&#8211;read-from-remote-server and &#8211;raw options, mysqlbinlog</p>
<p>connects to a server, requests the log files, and writes</p>
<p>output files in the same format as the originals. See Section</p>
<p>4.6.7.3, &#8220;Using mysqlbinlog to Back Up Binary Log Files.&#8221;</p>
<p>&nbsp;</p>
<p>* mysqldump now has an &#8211;add-drop-trigger option which adds a</p>
<p>DROP TRIGGER IF EXISTS statement before each dumped trigger</p>
<p>definition. (Bug #34325, Bug #11747863)</p>
<p>&nbsp;</p>
<p>* mysqldump &#8211;xml now displays comments from column definitions.</p>
<p>(Bug #13618, Bug #11745324)</p>
<p>&nbsp;</p>
<p>* A new SQL function, WEIGHT_STRING(), returns the weight string</p>
<p>for an input string. The weight string represents the sorting</p>
<p>and comparison value of the input string.</p>
<p>&nbsp;</p>
<p>* MySQL distributions now include auth_socket, a server-side</p>
<p>authentication plugin that authenticates clients that connect</p>
<p>from the local host through the Unix socket file. The plugin</p>
<p>uses the SO_PEERCRED socket option to obtain information about</p>
<p>the user running the client program (and thus can be built</p>
<p>only on systems that support this option. For a connection to</p>
<p>succeed, the plugin requires a match between the login name of</p>
<p>the connecting client user and the MySQL user name presented</p>
<p>by the client program. For more information, see Section</p>
<p>5.5.6.1.4, &#8220;The Socket Peer-Credential Authentication Plugin.&#8221;</p>
<p>(Bug #59017, Bug #11765993)</p>
<p>&nbsp;</p>
<p>* Boolean system variables can be enabled at run time by setting</p>
<p>them to the value ON or OFF, but previously this did not work</p>
<p>at server startup. Now at startup such variables can be</p>
<p>enabled by setting them to ON or TRUE, or disabled by setting</p>
<p>them to OFF or FALSE. Any other nonnumeric variable is</p>
<p>invalid. (Bug #46393, Bug #11755200)</p>
<p>See also Bug #11754743, Bug #51631.</p>
<p>&nbsp;</p>
<p>* Previously, for queries that were aborted due to a sort</p>
<p>problem, the server wrote the message Sort aborted to the</p>
<p>error log. Now the server writes more information to provide a</p>
<p>more specific message, such as:</p>
<p>Sort aborted: Out of memory (Needed 24 bytes)</p>
<p>Out of sort memory, consider increasing server sort buffer size</p>
<p>Sort aborted: Out of sort memory, consider increasing</p>
<p>server sort buffer size</p>
<p>Sort aborted: Incorrect number of arguments for FUNCTION</p>
<p>test.f1; expected 0, got 1</p>
<p>In addition, if the server was started with &#8211;log-warnings=2,</p>
<p>the server write information about the host, user, and query.</p>
<p>(Bug #36022, Bug #11748358)</p>
<p>&nbsp;</p>
<p>* Previously, for queries that were aborted due to a sort</p>
<p>problem or terminated with KILL in the middle of a sort, the</p>
<p>server wrote the message Sort aborted to the error log. Now</p>
<p>the server writes more information about the cause of the</p>
<p>error. These causes include:</p>
<p>Insufficient disk space in tmpdir prevented tmpfile from</p>
<p>being created</p>
<p>Insufficient memory for sort_buffer_size to be allocated</p>
<p>Somebody ran KILL id in the middle of a filesort</p>
<p>The server was shutdown while some queries were sorting</p>
<p>A transaction got rolled back or aborted due to lock wait</p>
<p>timeout or deadlock</p>
<p>Unexpected errors, such as source table or even tmp table was</p>
<p>corrupt processing of a subquery failed which was also sorting</p>
<p>(Bug #30771, Bug #11747102)</p>
<p>&nbsp;</p>
<p>* The undocumented SHOW NEW MASTER statement has been removed.</p>
<p>&nbsp;</p>
<p>* MySQL distributions now include mysql_clear_password, a</p>
<p>client-side authentication plugin that sends the password to</p>
<p>the server without hashing or encryption. Although this is</p>
<p>insecure, and thus appropriate precautions should be taken</p>
<p>(such as using an SSL connection), the plugin is useful in</p>
<p>conjunction with server-side plugins that must have access to</p>
<p>the original password in clear text. For more information, see</p>
<p>Section 5.5.6.1.3, &#8220;The Clear Text Client-Side Authentication</p>
<p>Plugin.&#8221;</p>
<p>&nbsp;</p>
<p>* A new plugin service, my_plugin_log_service, enables plugins</p>
<p>to report errors and specify error messages. The server writes</p>
<p>the messages to the error log. See Section 21.2.6, &#8220;MySQL</p>
<p>Services for Plugins.&#8221;</p>
<p>&nbsp;</p>
<p>* There is now a bind_address system variable containing the</p>
<p>value of the &#8211;bind-address option. This enables the address</p>
<p>to be accessed at runtime. (Bug #44355, Bug #11752999)</p>
<p>&nbsp;</p>
<p>* &#8220;Unknown table&#8221; error messages that included only the table</p>
<p>name now include the database name as well. (Bug #34750, Bug</p>
<p>#11747993)</p>
<p>&nbsp;</p>
<p>* Previously, EXPLAIN output for a large union truncated the</p>
<p>UNION RESULT row at the end of the list as follows if the</p>
<p>string became too large:</p>
<p>&lt;union1,2,3,4,&#8230;&gt;</p>
<p>To make it easier to understand the union boundaries,</p>
<p>truncation now occurs in the middle of the string:</p>
<p>&lt;union1,2,3,&#8230;,9&gt;</p>
<p>(Bug #30597, Bug #11747073)</p>
<p>&nbsp;</p>
<p>* The OpenGIS specification defines functions that test the</p>
<p>relationship between two geometry values. MySQL originally</p>
<p>implemented these functions such that they used object</p>
<p>bounding rectangles and returned the same result as the</p>
<p>corresponding MBR-based functions. Corresponding versions are</p>
<p>now available that use precise object shapes. These versions</p>
<p>are named with an ST_ prefix. For example, Contains() uses</p>
<p>object bounding rectangles, whereas ST_Contains() uses object</p>
<p>shapes. For more information, see Section 11.17.5.4.2,</p>
<p>&#8220;Functions That Test Spatial Relationships Between</p>
<p>Geometries.&#8221;</p>
<p>There are also now ST_ aliases for existing spatial functions</p>
<p>that were already exact. For example, ST_IsEmpty() is an alias</p>
<p>for IsEmpty() (Bug #4249, Bug #11744883)</p>
<p>&nbsp;</p>
<p>* TO_BASE64() and FROM_BASE64() functions are now available to</p>
<p>perform encoding to and from base-64 strings.</p>
<p>&nbsp;</p>
<p>* The Block Nested-Loop (BNL) Join algorithm previously used</p>
<p>only for inner joins has been extended and can be employed for</p>
<p>outer join operations, including nested outer joins. For more</p>
<p>information, see Section 7.13.11, &#8220;Block Nested-Loop Joins.&#8221;</p>
<p>In conjunction with this work, there is a new system variable,</p>
<p>optimizer_join_cache_level, that controls how join buffering</p>
<p>is done.</p>
<p>&nbsp;</p>
<p>* A &#8211;bind-address option has been added to a number of MySQL</p>
<p>client programs: mysql, mysqldump, mysqladmin, mysqlbinlog,</p>
<p>mysqlcheck, mysqlimport, and mysqlshow. This is for use on a</p>
<p>computer having multiple network interfaces, and enables you</p>
<p>to choose which interface is used to connect to the MySQL</p>
<p>server.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketgrid.com/blog/2011/04/mysql-community-server-5-6-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Community Server 5.5.11</title>
		<link>http://www.marketgrid.com/blog/2011/04/mysql-community-server-5-5-11/</link>
		<comments>http://www.marketgrid.com/blog/2011/04/mysql-community-server-5-5-11/#comments</comments>
		<pubDate>Thu, 07 Apr 2011 13:31:19 +0000</pubDate>
		<dc:creator>Phil Smith</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[MySQL 5.5]]></category>
		<category><![CDATA[MySQL Community Server]]></category>

		<guid isPermaLink="false">http://www.marketgrid.com/blog/?p=525</guid>
		<description><![CDATA[MySQL 5.5.11 is a new version of the 5.5 production release of the world&#8217;s most popular open source database. MySQL 5.5.11 is recommended for use on production systems. &#160; 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 [...]]]></description>
			<content:encoded><![CDATA[<p>MySQL 5.5.11 is a new version of the 5.5 production release of the world&#8217;s most popular open source database. MySQL 5.5.11 is recommended for use on production systems.</p>
<p>&nbsp;</p>
<p>MySQL 5.5 includes several high-impact enhancements to improve the</p>
<p>performance and scalability of the MySQL Database, taking advantage of</p>
<p>the latest multi-CPU and multi-core hardware and operating systems. In</p>
<p>addition, with release 5.5, InnoDB is now the default storage engine for</p>
<p>the MySQL Database, delivering ACID transactions, referential integrity</p>
<p>and crash recovery by default.</p>
<p>&nbsp;</p>
<p>MySQL 5.5 also provides a number of additional enhancements including:</p>
<p>&nbsp;</p>
<p>- Significantly improved performance on Windows, with various Windows specific features and improvements</p>
<p>- Higher availability, with new semi-synchronous replication and Replication Heart Beat</p>
<p>- Improved usability, with Improved index and table partitioning, SIGNAL/RESIGNAL support and enhanced diagnostics, including a new Performance Schema monitoring capability.</p>
<p>&nbsp;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>&nbsp;</p>
<p>D.1.2. Changes in MySQL 5.5.11 (07 April 2011):</p>
<p>&nbsp;</p>
<p>Functionality added or changed:</p>
<p>&nbsp;</p>
<p>* The undocumented SHOW NEW MASTER statement has been removed.</p>
<p>&nbsp;</p>
<p>Bugs fixed:</p>
<p>&nbsp;</p>
<p>* Partitioning: A problem with a previous fix for poor</p>
<p>performance of INSERT ON DUPLICATE KEY UPDATE statements on</p>
<p>tables having many partitions caused the handler function for</p>
<p>reading a row from a specific index to fail to store the ID of</p>
<p>the partition last used. This caused some statements to fail</p>
<p>with Can&#8217;t find record errors. (Bug #59297, Bug #11766232)</p>
<p>&nbsp;</p>
<p>* On some systems, debug builds of comp_err.c could fail due to</p>
<p>an uninitialized variable. (Bug #59906, Bug #11766729)</p>
<p>&nbsp;</p>
<p>* The server read one byte too many when trying to process an</p>
<p>XML string lacking a closing quote (&#8216;) or double quote (&#8220;)</p>
<p>character used as an argument for UpdateXML() or</p>
<p>ExtractValue(). (Bug #59901, Bug #11766725)</p>
<p>See also Bug #44332.</p>
<p>&nbsp;</p>
<p>* Aggregation followed by a subquery could produce an incorrect</p>
<p>result. (Bug #59839, Bug #11766675)</p>
<p>&nbsp;</p>
<p>* mysqldump did not quote database names in ALTER DATABASE</p>
<p>statements in its output, which could cause an error at reload</p>
<p>time for database names containing a dash. (Bug #59398, Bug</p>
<p>#11766310)</p>
<p>&nbsp;</p>
<p>* If a multiple-table update updated a row through two aliases</p>
<p>and the first update physically moved the row, the second</p>
<p>update failed to locate the row. This resulted in different</p>
<p>errors depending on storage engine, although these errors did</p>
<p>not accurately describe the problem:</p>
<p>&nbsp;</p>
<p>*</p>
<p>&nbsp;</p>
<p>MyISAM: Got error 134 from storage engine</p>
<p>&nbsp;</p>
<p>*</p>
<p>&nbsp;</p>
<p>InnoDB: Can&#8217;t find record in &#8216;tbl&#8217;</p>
<p>&nbsp;</p>
<p>For MyISAM, which is nontransactional, the update executed</p>
<p>first was performed but the second was not. In addition, for</p>
<p>two equal multiple-table update statements, one could succeed</p>
<p>and the other fail depending on whether the record actually</p>
<p>moved, which is inconsistent.||</p>
<p>Now such an update returns an error if it will update a table</p>
<p>through multiple aliases, and perform an update that may</p>
<p>physically more the row in at least one of these aliases. (Bug</p>
<p>#57373, Bug #11764529, Bug #55385, Bug #11762751)</p>
<p>&nbsp;</p>
<p>* SHOW WARNINGS output following EXPLAIN EXTENDED could include</p>
<p>unprintable characters. (Bug #57341, Bug #11764503)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketgrid.com/blog/2011/04/mysql-community-server-5-5-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Community Server 5.5.8</title>
		<link>http://www.marketgrid.com/blog/2010/12/mysql-community-server-5-5-8/</link>
		<comments>http://www.marketgrid.com/blog/2010/12/mysql-community-server-5-5-8/#comments</comments>
		<pubDate>Thu, 16 Dec 2010 08:47:47 +0000</pubDate>
		<dc:creator>Phil Smith</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[MySQL 5.5]]></category>
		<category><![CDATA[MySQL Community Server]]></category>

		<guid isPermaLink="false">http://www.marketgrid.com/blog/?p=456</guid>
		<description><![CDATA[MySQL Database 5.5.8 GA has been released. The first 5.5 production version of the world&#8217;s most popular open source database.  MySQL 5.5.8 is recommended for use on production systems. MySQL 5.5 includes several high-impact changes to address scalability and performance issues in MySQL Database.  These changes exploit advances in hardware and CPU design and enable [...]]]></description>
			<content:encoded><![CDATA[<p>MySQL Database 5.5.8 GA has been released.</p>
<p>The first 5.5 production version of the world&#8217;s most popular open source database.  MySQL 5.5.8 is recommended for use on production systems.</p>
<p>MySQL 5.5 includes several high-impact changes to address scalability and performance issues in MySQL Database.  These changes exploit advances in hardware and CPU design and enable better utilization of existing</p>
<p>hardware.  MySQL 5.5 also provides a number of other new enhancements, including:</p>
<p>- InnoDB I/O Subsystem Changes</p>
<p>- Enhanced Solaris Support</p>
<p>- Diagnostic and Monitoring Capabilities</p>
<p>The following section lists the changes in the MySQL source code since</p>
<p>the previous released version of MySQL 5.5.</p>
<p>&#8212;-</p>
<p>D.1.1. Changes in MySQL 5.5.8 (03 December 2010)</p>
<p>Configuration Notes:</p>
<p>* MySQL releases are now built on all platforms using CMake</p>
<p>rather than the GNU autotools, so autotools support has been</p>
<p>removed. For instructions on building MySQL with CMake, see</p>
<p>Section 2.11, &#8220;Installing MySQL from Source.&#8221; Third-party</p>
<p>tools that need to extract the MySQL version number formerly</p>
<p>found in configure.in can use the VERSION file. See Section</p>
<p>2.11.6, &#8220;MySQL Configuration and Third-Party Tools.&#8221;</p>
<p>Functionality added or changed:</p>
<p>* Support for the IBMDB2I storage engine has been removed.</p>
<p>(Bug#58079: <a href="http://bugs.mysql.com/bug.php?id=58079">http://bugs.mysql.com/bug.php?id=58079</a>)</p>
<p>* A &#8211;bind-address option has been added to a number of MySQL</p>
<p>client programs: mysql, mysqldump, mysqladmin, mysqlbinlog,</p>
<p>mysqlcheck, mysqlimport, and mysqlshow. This is for use on a</p>
<p>computer having multiple network interfaces, and enables you</p>
<p>to choose which interface is used to connect to the MySQL</p>
<p>server.</p>
<p>Bugs fixed:</p>
<p>* Performance: InnoDB Storage Engine: Improved concurrency when</p>
<p>several ANALYZE TABLE or SHOW TABLE STATUS statements are run</p>
<p>simultaneously for InnoDB tables.</p>
<p>(Bug#53046: <a href="http://bugs.mysql.com/bug.php?id=53046">http://bugs.mysql.com/bug.php?id=53046</a>)</p>
<p>* Incompatible Change: Previously, tables in the</p>
<p>performance_schema database had uppercase names. This was</p>
<p>incompatible with the lower_case_table_names system variable,</p>
<p>and caused issues when the variable value was changed after</p>
<p>installing or upgrading.</p>
<p>Now performance_schema table names are lowercase, so they</p>
<p>appear in uniform lettercase regardless of the</p>
<p>lower_case_table_names setting. References to these tables in</p>
<p>SQL statements should be given in lowercase. This is an</p>
<p>incompatible change, but provides compatible behavior across</p>
<p>different values of lower_case_table_names.</p>
<p>If you upgrade to MySQL 5.5.8 from an earlier version of MySQL</p>
<p>5.5, be sure to run mysql_upgrade (and restart the server) to</p>
<p>change the names of existing performance_schema tables from</p>
<p>uppercase to lowercase.</p>
<p>(Bug#57609: <a href="http://bugs.mysql.com/bug.php?id=57609">http://bugs.mysql.com/bug.php?id=57609</a>)</p>
<p>* Incompatible Change: The following changes were made to the</p>
<p>performance_schema.threads table for conformance with the</p>
<p>implementation in MySQL 5.6:</p>
<p>+ ID column: Renamed to PROCESSLIST_ID, removed NOT NULL</p>
<p>from definition.</p>
<p>+ NAME column: Changed from VARCHAR(64) to VARCHAR(128).</p>
<p>(Bug#57154: <a href="http://bugs.mysql.com/bug.php?id=57154">http://bugs.mysql.com/bug.php?id=57154</a>)</p>
<p>* Incompatible Change: Deadlock occurred when a connection that</p>
<p>had some table open through a HANDLER statement tried to</p>
<p>update data through a DML statement while another connection</p>
<p>tried to execute FLUSH TABLES WITH READ LOCK concurrently.</p>
<p>Starvation of FLUSH TABLES WITH READ LOCK statements occurred</p>
<p>when there was a constant load of concurrent DML statements in</p>
<p>two or more connections.</p>
<p>These problems resulted from the global read lock</p>
<p>implementation, which was reimplemented with the following</p>
<p>consequences:</p>
<p>+ To solve deadlock in event-handling code that was exposed</p>
<p>by this patch, the LOCK_event_metadata mutex was replaced</p>
<p>with metadata locks on events. As a result, DDL operations</p>
<p>on events are now prohibited under LOCK TABLES. This is</p>
<p>an incompatible change.</p>
<p>+ The global read lock (FLUSH TABLES WITH READ LOCK) no</p>
<p>longer blocks DML and DDL on temporary tables. Before</p>
<p>this patch, server behavior was not consistent in this</p>
<p>respect: In some cases, DML/DDL statements on temporary</p>
<p>tables were blocked; in others, they were not. Since the</p>
<p>main use cases for FLUSH TABLES WITH READ LOCK are</p>
<p>various forms of backups and temporary tables are not</p>
<p>preserved during backups, the server now consistently</p>
<p>allows DML/DDL on temporary tables under the global read</p>
<p>lock.</p>
<p>+ Thread state names are now either Waiting for global read</p>
<p>lock or Waiting for commit lock, depending on which stage</p>
<p>FLUSH TABLES WITH READ LOCK is in.</p>
<p>(Bug#57006: <a href="http://bugs.mysql.com/bug.php?id=57006">http://bugs.mysql.com/bug.php?id=57006</a>,</p>
<p>Bug#54673: <a href="http://bugs.mysql.com/bug.php?id=54673">http://bugs.mysql.com/bug.php?id=54673</a>)</p>
<p>* InnoDB Storage Engine: Values could be truncated in certain</p>
<p>INFORMATION_SCHEMA columns, such as</p>
<p>REFERENTIAL_CONSTRAINTS.REFERENCED_TABLE_NAME and</p>
<p>KEY_COLUMN_USAGE.REFERENCED_TABLE_NAME.</p>
<p>(Bug#57960: <a href="http://bugs.mysql.com/bug.php?id=57960">http://bugs.mysql.com/bug.php?id=57960</a>)</p>
<p>* InnoDB Storage Engine: For an InnoDB table created with</p>
<p>ROW_FORMAT=COMPRESSED or ROW_FORMAT=DYNAMIC, a query using the</p>
<p>READ UNCOMMITTED isolation level could cause the server to</p>
<p>stop with an assertion error, if BLOB or other large columns</p>
<p>that use off-page storage were being inserted at the same</p>
<p>time. (Bug#57799: <a href="http://bugs.mysql.com/bug.php?id=57799">http://bugs.mysql.com/bug.php?id=57799</a>)</p>
<p>* InnoDB Storage Engine: The server could stop with an assertion</p>
<p>error on Windows Vista and Windows 7 systems.</p>
<p>(Bug#57720: <a href="http://bugs.mysql.com/bug.php?id=57720">http://bugs.mysql.com/bug.php?id=57720</a>)</p>
<p>* InnoDB Storage Engine: A followup fix to</p>
<p>Bug#54678: <a href="http://bugs.mysql.com/bug.php?id=54678">http://bugs.mysql.com/bug.php?id=54678</a>. TRUNCATE</p>
<p>TABLE could still cause a crash (assertion error) in the</p>
<p>debug version of the server.</p>
<p>(Bug#57700: <a href="http://bugs.mysql.com/bug.php?id=57700">http://bugs.mysql.com/bug.php?id=57700</a>)</p>
<p>* InnoDB Storage Engine: The InnoDB system tablespace could grow</p>
<p>continually for a server under heavy load.</p>
<p>(Bug#57611: <a href="http://bugs.mysql.com/bug.php?id=57611">http://bugs.mysql.com/bug.php?id=57611</a>)</p>
<p>* InnoDB Storage Engine: Heavy concurrent updates of a BLOB</p>
<p>column in an InnoDB table could cause a hang.</p>
<p>(Bug#57579: <a href="http://bugs.mysql.com/bug.php?id=57579">http://bugs.mysql.com/bug.php?id=57579</a>)</p>
<p>* InnoDB Storage Engine: The innodb_stats_on_metadata option</p>
<p>could prevent the ANALYZE TABLE statement from running.</p>
<p>(Bug#57252: <a href="http://bugs.mysql.com/bug.php?id=57252">http://bugs.mysql.com/bug.php?id=57252</a>)</p>
<p>* InnoDB Storage Engine: A query for an InnoDB table could</p>
<p>return the wrong value if a column value was changed to a</p>
<p>different case, and the column had a case-insensitive index.</p>
<p>(Bug#56680: <a href="http://bugs.mysql.com/bug.php?id=56680">http://bugs.mysql.com/bug.php?id=56680</a>)</p>
<p>* InnoDB Storage Engine: An existing InnoDB could be switched to</p>
<p>ROW_FORMAT=COMPRESSED implicitly by a KEY_BLOCK_SIZE clause in</p>
<p>an ALTER TABLE statement. Now, the row format is only switched</p>
<p>to compressed if there is an explicit ROW_FORMAT=COMPRESSED</p>
<p>clause. on the ALTER TABLE statement.</p>
<p>Any valid, non-default ROW_FORMAT parameter takes precedence</p>
<p>over KEY_BLOCK_SIZE when both are specified. KEY_BLOCK_SIZE</p>
<p>only enables ROW_FORMAT=COMPRESSED if ROW_FORMAT is not</p>
<p>specified on either the CREATE TABLE or ALTER TABLE statement,</p>
<p>or is specified as DEFAULT. In case of a conflict between</p>
<p>KEY_BLOCK_SIZE and ROW_FORMAT clauses, the KEY_BLOCK_SIZE is</p>
<p>ignored if innodb_strict_mode is off, and the statement causes</p>
<p>an error if innodb_strict_mode is on.</p>
<p>(Bug#56632: <a href="http://bugs.mysql.com/bug.php?id=56632">http://bugs.mysql.com/bug.php?id=56632</a>)</p>
<p>* InnoDB Storage Engine: The clause KEY_BLOCK_SIZE=0 is now</p>
<p>allowed on CREATE TABLE and ALTER TABLE statements for InnoDB</p>
<p>tables, regardless of the setting of innodb_strict_mode. The</p>
<p>zero value has the effect of resetting the KEY_BLOCK_SIZE</p>
<p>table parameter to its default value, depending on the</p>
<p>ROW_FORMAT parameter, as if it had not been specified. That</p>
<p>default is 8 if ROW_FORMAT=COMPRESSED. Otherwise,</p>
<p>KEY_BLOCK_SIZE is not used or stored with the table</p>
<p>parameters.</p>
<p>As a consequence of this fix, ROW_FORMAT=FIXED is not allowed</p>
<p>when the innodb_strict_mode is enabled.</p>
<p>(Bug#56628: <a href="http://bugs.mysql.com/bug.php?id=56628">http://bugs.mysql.com/bug.php?id=56628</a>)</p>
<p>* InnoDB Storage Engine: A large number of foreign key</p>
<p>declarations could cause the output of the SHOW CREATE</p>
<p>STATEMENT statement to be truncated.</p>
<p>(Bug#56143: <a href="http://bugs.mysql.com/bug.php?id=56143">http://bugs.mysql.com/bug.php?id=56143</a>)</p>
<p>* InnoDB Storage Engine: A compilation problem affected the</p>
<p>InnoDB source code on NetBSD/sparc64.</p>
<p>(Bug#53916: <a href="http://bugs.mysql.com/bug.php?id=53916">http://bugs.mysql.com/bug.php?id=53916</a>)</p>
<p>* InnoDB Storage Engine: Clarified the message when a CREATE</p>
<p>TABLE statement fails because a foreign key constraint does</p>
<p>not have the required indexes.</p>
<p>(Bug#16290: <a href="http://bugs.mysql.com/bug.php?id=16290">http://bugs.mysql.com/bug.php?id=16290</a>)</p>
<p>* Partitioning: &#8220;Fast&#8221; ALTER TABLE operations (that do not</p>
<p>involve a table copy) on a partitioned table could leave the</p>
<p>table in an unusable state.</p>
<p>(Bug#57985: <a href="http://bugs.mysql.com/bug.php?id=57985">http://bugs.mysql.com/bug.php?id=57985</a>)</p>
<p>* Partitioning: An INSERT &#8230; ON DUPLICATE KEY UPDATE column = 0</p>
<p>statement on an AUTO_INCREMENT column caused the debug server</p>
<p>to crash. (Bug#57890: <a href="http://bugs.mysql.com/bug.php?id=57890">http://bugs.mysql.com/bug.php?id=57890</a>)</p>
<p>* Replication: Concurrent statements using a stored function and</p>
<p>a DROP DATABASE statement that caused the same stored function</p>
<p>to be dropped could cause statement-based replication to fail.</p>
<p>This problem is resolved by making sure that DROP DATABASE</p>
<p>takes an exclusive metadata lock on all stored functions and</p>
<p>stored procedures that it causes to be dropped.</p>
<p>(Bug#57663: <a href="http://bugs.mysql.com/bug.php?id=57663">http://bugs.mysql.com/bug.php?id=57663</a>)</p>
<p>See also Bug#30977: <a href="http://bugs.mysql.com/bug.php?id=30977">http://bugs.mysql.com/bug.php?id=30977</a>.</p>
<p>* Replication: When STOP SLAVE is issued, the slave SQL thread</p>
<p>rolls back the current transaction and stops immediately if</p>
<p>the transaction updates only tables which use transactional</p>
<p>storage engines are updated. Previously, this occurred even</p>
<p>when the transaction contained CREATE TEMPORARY TABLE</p>
<p>statements, DROP TEMPORARY TABLE statements, or both, although</p>
<p>these statements cannot be rolled back. Because temporary</p>
<p>tables persist for the lifetime of a user session (in the</p>
<p>case, the replication user), they remain until the slave is</p>
<p>stopped or reset. When the transaction is restarted following</p>
<p>a subsequent START SLAVE statement, the SQL thread aborts with</p>
<p>an error that a temporary table to be created (or dropped)</p>
<p>already exists (or does not exist, in the latter case).</p>
<p>Following this fix, if an ongoing transaction contains CREATE</p>
<p>TEMPORARY TABLE statements, DROP TEMPORARY TABLE statements,</p>
<p>or both, the SQL thread now waits until the transaction ends,</p>
<p>then stops.</p>
<p>(Bug#56118: <a href="http://bugs.mysql.com/bug.php?id=56118">http://bugs.mysql.com/bug.php?id=56118</a>)</p>
<p>* Replication: If there exist both a temporary table and a</p>
<p>non-temporary table having the same, updates normally apply</p>
<p>only to the temporary table, with the exception of a CREATE</p>
<p>TABLE &#8230; SELECT statement that creates a non-temporary table</p>
<p>having the same name as an existing temporary table. When such</p>
<p>a statement was replicated using the MIXED logging format, and</p>
<p>the statement was unsafe for row-based logging, updates were</p>
<p>misapplied to the temporary table.</p>
<p>Updates were also applied wrongly when a temporary table that</p>
<p>used a transactional storage engine was dropped inside a</p>
<p>transaction, followed by updates within the same transaction</p>
<p>to a non-temporary table having the same name.</p>
<p>(Bug#55478: <a href="http://bugs.mysql.com/bug.php?id=55478">http://bugs.mysql.com/bug.php?id=55478</a>)</p>
<p>See also Bug#47899: <a href="http://bugs.mysql.com/bug.php?id=47899">http://bugs.mysql.com/bug.php?id=47899</a>,</p>
<p>Bug#55709: <a href="http://bugs.mysql.com/bug.php?id=55709">http://bugs.mysql.com/bug.php?id=55709</a>.</p>
<p>* Replication: When making changes to relay log settings using</p>
<p>CHANGE MASTER TO, the I/O cache was not cleared. This could</p>
<p>result in replication failure when the slave attempted to read</p>
<p>stale data from the cache and then stopped with an assertion.</p>
<p>(Bug#55263: <a href="http://bugs.mysql.com/bug.php?id=55263">http://bugs.mysql.com/bug.php?id=55263</a>)</p>
<p>* Replication: Replication of SET and ENUM columns represented</p>
<p>using more than 1 byte (that is, SET columns with more than 8</p>
<p>members and ENUM columns with more than 256 constants) between</p>
<p>platforms using different endianness failed when using the</p>
<p>row-based format. This was because columns of these types are</p>
<p>represented internally using integers, but the internal</p>
<p>functions used by MySQL to handle them treated them as</p>
<p>strings. (Bug#52131: <a href="http://bugs.mysql.com/bug.php?id=52131">http://bugs.mysql.com/bug.php?id=52131</a>)</p>
<p>See also Bug#53528: <a href="http://bugs.mysql.com/bug.php?id=53528">http://bugs.mysql.com/bug.php?id=53528</a>.</p>
<p>* Replication: Trying to read from a binary log containing a log</p>
<p>event of an invalid type caused the slave to crash.</p>
<p>(Bug#38718: <a href="http://bugs.mysql.com/bug.php?id=38718">http://bugs.mysql.com/bug.php?id=38718</a>)</p>
<p>* Replication: When replicating the mysql.tables_priv table, the</p>
<p>Grantor column was not replicated, and was thus left empty on</p>
<p>the slave. (Bug#27606: <a href="http://bugs.mysql.com/bug.php?id=27606">http://bugs.mysql.com/bug.php?id=27606</a>)</p>
<p>* Setting the read_only system variable at server startup did</p>
<p>not work. (Bug#58669: <a href="http://bugs.mysql.com/bug.php?id=58669">http://bugs.mysql.com/bug.php?id=58669</a>)</p>
<p>* mysql_upgrade failed after an upgrade from MySQL 5.1.</p>
<p>(Bug#58514: <a href="http://bugs.mysql.com/bug.php?id=58514">http://bugs.mysql.com/bug.php?id=58514</a>)</p>
<p>* When configuring the build with -DBUILD_CONFIG=mysql_release</p>
<p>and building with Visual Studio Express, the build failed if</p>
<p>signtool.exe was not present.</p>
<p>(Bug#58313: <a href="http://bugs.mysql.com/bug.php?id=58313">http://bugs.mysql.com/bug.php?id=58313</a>)</p>
<p>* When configuring the build with -DBUILD_CONFIG=mysql_release</p>
<p>on Linux, libaio is required, but the error message if it was</p>
<p>missing was uninformative.</p>
<p>(Bug#58227: <a href="http://bugs.mysql.com/bug.php?id=58227">http://bugs.mysql.com/bug.php?id=58227</a>)</p>
<p>* Use of NAME_CONST() in a HAVING clause caused a server crash.</p>
<p>(Bug#58199: <a href="http://bugs.mysql.com/bug.php?id=58199">http://bugs.mysql.com/bug.php?id=58199</a>)</p>
<p>* BETWEEN did not use indexes for DATE or DATETIME columns.</p>
<p>(Bug#58190: <a href="http://bugs.mysql.com/bug.php?id=58190">http://bugs.mysql.com/bug.php?id=58190</a>)</p>
<p>* Memory was allocated in fn_expand() for storing path names,</p>
<p>but not freed anywhere.</p>
<p>(Bug#58173: <a href="http://bugs.mysql.com/bug.php?id=58173">http://bugs.mysql.com/bug.php?id=58173</a>)</p>
<p>* In debug builds, inserting a FLOAT value into a CHAR(0) column</p>
<p>could crash the server.</p>
<p>(Bug#58137: <a href="http://bugs.mysql.com/bug.php?id=58137">http://bugs.mysql.com/bug.php?id=58137</a>)</p>
<p>* Failure to create a thread to handle a user connection could</p>
<p>result in a server crash.</p>
<p>(Bug#58080: <a href="http://bugs.mysql.com/bug.php?id=58080">http://bugs.mysql.com/bug.php?id=58080</a>)</p>
<p>* During configuration, ADD_VERSION_INFO in</p>
<p>cmake/mysql_version.cmake failed if LINK_FLAGS was modified.</p>
<p>(Bug#58074: <a href="http://bugs.mysql.com/bug.php?id=58074">http://bugs.mysql.com/bug.php?id=58074</a>)</p>
<p>* Performance Schema did not account for I/O for the binary log</p>
<p>file (no I/O was counted).</p>
<p>(Bug#58052: <a href="http://bugs.mysql.com/bug.php?id=58052">http://bugs.mysql.com/bug.php?id=58052</a>)</p>
<p>* Several compilation problems were fixed.</p>
<p>(Bug#57992: <a href="http://bugs.mysql.com/bug.php?id=57992">http://bugs.mysql.com/bug.php?id=57992</a>,</p>
<p>Bug#57993: <a href="http://bugs.mysql.com/bug.php?id=57993">http://bugs.mysql.com/bug.php?id=57993</a>,</p>
<p>Bug#57994: <a href="http://bugs.mysql.com/bug.php?id=57994">http://bugs.mysql.com/bug.php?id=57994</a>,</p>
<p>Bug#57995: <a href="http://bugs.mysql.com/bug.php?id=57995">http://bugs.mysql.com/bug.php?id=57995</a>,</p>
<p>Bug#57996: <a href="http://bugs.mysql.com/bug.php?id=57996">http://bugs.mysql.com/bug.php?id=57996</a>,</p>
<p>Bug#57997: <a href="http://bugs.mysql.com/bug.php?id=57997">http://bugs.mysql.com/bug.php?id=57997</a>,</p>
<p>Bug#58057: <a href="http://bugs.mysql.com/bug.php?id=58057">http://bugs.mysql.com/bug.php?id=58057</a>)</p>
<p>* After creating a table with two foreign key constraints, the</p>
<p>INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS table displayed</p>
<p>only one of them.</p>
<p>(Bug#57904: <a href="http://bugs.mysql.com/bug.php?id=57904">http://bugs.mysql.com/bug.php?id=57904</a>)</p>
<p>* Incorrect error handling raised an assertion if character set</p>
<p>conversion wrapped an item that failed.</p>
<p>(Bug#57882: <a href="http://bugs.mysql.com/bug.php?id=57882">http://bugs.mysql.com/bug.php?id=57882</a>)</p>
<p>* In debug builds, a missing DBUG_RETURN macro in sql/client.c</p>
<p>caused mysql to be unable to connect to the server.</p>
<p>(Bug#57744: <a href="http://bugs.mysql.com/bug.php?id=57744">http://bugs.mysql.com/bug.php?id=57744</a>)</p>
<p>* Clients using a client library older than MySQL 5.5.7 suffered</p>
<p>loss of connection after executing mysql_change_user() while</p>
<p>connected to a 5.5.7 server.</p>
<p>(Bug#57689: <a href="http://bugs.mysql.com/bug.php?id=57689">http://bugs.mysql.com/bug.php?id=57689</a>)</p>
<p>* The MySQL-shared RPM package failed to provide the lowercase</p>
<p>virtual identifier &#8216;mysql-shared&#8217; in the RPM &#8216;Provides&#8217; tags</p>
<p>(usually used for backward compatibility).</p>
<p>(Bug#57596: <a href="http://bugs.mysql.com/bug.php?id=57596">http://bugs.mysql.com/bug.php?id=57596</a>)</p>
<p>* For an upgrade to MySQL 5.5.7 from a previous release, the</p>
<p>server exited if the mysql.proxies_priv table did not exist,</p>
<p>making upgrades inconvenient. Now the server treats a missing</p>
<p>proxies_priv table as equivalent to an empty table. However,</p>
<p>after starting the server, you should still run mysql_upgrade</p>
<p>to create the table.</p>
<p>(Bug#57551: <a href="http://bugs.mysql.com/bug.php?id=57551">http://bugs.mysql.com/bug.php?id=57551</a>)</p>
<p>* SHOW PROCESSLIST displayed non-ASCII characters improperly.</p>
<p>(Bug#57306: <a href="http://bugs.mysql.com/bug.php?id=57306">http://bugs.mysql.com/bug.php?id=57306</a>)</p>
<p>* Passing a string that was not null-terminated to UpdateXML()</p>
<p>or ExtractValue() caused the server to fail with an assertion.</p>
<p>(Bug#57279: <a href="http://bugs.mysql.com/bug.php?id=57279">http://bugs.mysql.com/bug.php?id=57279</a>)</p>
<p>* SET GLOBAL debug could cause a crash on Solaris if the server</p>
<p>failed to open the trace file.</p>
<p>(Bug#57274: <a href="http://bugs.mysql.com/bug.php?id=57274">http://bugs.mysql.com/bug.php?id=57274</a>)</p>
<p>* In debug builds, an assertion could be raised during</p>
<p>conversion of strings to floating-point values.</p>
<p>(Bug#57203: <a href="http://bugs.mysql.com/bug.php?id=57203">http://bugs.mysql.com/bug.php?id=57203</a>)</p>
<p>* A user with no privileges on a stored routine or the</p>
<p>mysql.proc table could discover the routine&#8217;s existence.</p>
<p>(Bug#57061: <a href="http://bugs.mysql.com/bug.php?id=57061">http://bugs.mysql.com/bug.php?id=57061</a>)</p>
<p>* Queries executed using the Index Merge access method and a</p>
<p>temporary file could return incorrect results.</p>
<p>(Bug#56862: <a href="http://bugs.mysql.com/bug.php?id=56862">http://bugs.mysql.com/bug.php?id=56862</a>)</p>
<p>* The server could crash as a result of accessing freed memory</p>
<p>when populating INFORMATION_SCHEMA.VIEWS if a view could not</p>
<p>be opened properly.</p>
<p>(Bug#56540: <a href="http://bugs.mysql.com/bug.php?id=56540">http://bugs.mysql.com/bug.php?id=56540</a>)</p>
<p>* Valgrind warnings about overlapping memory when</p>
<p>double-assigning the same variable were corrected.</p>
<p>(Bug#56138: <a href="http://bugs.mysql.com/bug.php?id=56138">http://bugs.mysql.com/bug.php?id=56138</a>)</p>
<p>* If a STOP SLAVE statement was issued while the slave SQL</p>
<p>thread was executing a statement that invoked the SLEEP()</p>
<p>function, both statements hung.</p>
<p>(Bug#56096: <a href="http://bugs.mysql.com/bug.php?id=56096">http://bugs.mysql.com/bug.php?id=56096</a>)</p>
<p>* OPTIMIZE TABLE for InnoDB tables could raise an assertion.</p>
<p>(Bug#55930: <a href="http://bugs.mysql.com/bug.php?id=55930">http://bugs.mysql.com/bug.php?id=55930</a>)</p>
<p>* Warnings raised by a trigger were not cleared upon successful</p>
<p>completion. Now warnings are cleared if the trigger completes</p>
<p>successfully, per the SQL standard.</p>
<p>(Bug#55850: <a href="http://bugs.mysql.com/bug.php?id=55850">http://bugs.mysql.com/bug.php?id=55850</a>)</p>
<p>* For CMake builds, some parts of the source were unnecessarily</p>
<p>compiled twice if the embedded server was built.</p>
<p>(Bug#55647: <a href="http://bugs.mysql.com/bug.php?id=55647">http://bugs.mysql.com/bug.php?id=55647</a>)</p>
<p>* Boolean command options caused an error if given with an</p>
<p>option value and the loose- option prefix.</p>
<p>(Bug#54569: <a href="http://bugs.mysql.com/bug.php?id=54569">http://bugs.mysql.com/bug.php?id=54569</a>)</p>
<p>* An error in a stored procedure could leave the session in a</p>
<p>different default database.</p>
<p>(Bug#54375: <a href="http://bugs.mysql.com/bug.php?id=54375">http://bugs.mysql.com/bug.php?id=54375</a>)</p>
<p>* The CMake &#8220;wrapper&#8221; for configure (configure.pl) did not</p>
<p>handle the &#8211;with-comment option properly.</p>
<p>(Bug#52275: <a href="http://bugs.mysql.com/bug.php?id=52275">http://bugs.mysql.com/bug.php?id=52275</a>)</p>
<p>* Grouping by a TIME_TO_SEC() function result could cause a</p>
<p>server crash or incorrect results. Grouping by a function</p>
<p>returning a BLOB could cause an unexpected &#8220;Duplicate entry&#8221;</p>
<p>error and incorrect result.</p>
<p>(Bug#52160: <a href="http://bugs.mysql.com/bug.php?id=52160">http://bugs.mysql.com/bug.php?id=52160</a>)</p>
<p>* The find_files() function used by SHOW statements performed</p>
<p>redundant and unnecessary memory allocation.</p>
<p>(Bug#51208: <a href="http://bugs.mysql.com/bug.php?id=51208">http://bugs.mysql.com/bug.php?id=51208</a>)</p>
<p>* The Windows sample option files contained values more</p>
<p>appropriate for Linux.</p>
<p>(Bug#50021: <a href="http://bugs.mysql.com/bug.php?id=50021">http://bugs.mysql.com/bug.php?id=50021</a>)</p>
<p>* A failed RENAME TABLE operation could prevent a FLUSH TABLES</p>
<p>WITH READ LOCK from completing.</p>
<p>(Bug#47924: <a href="http://bugs.mysql.com/bug.php?id=47924">http://bugs.mysql.com/bug.php?id=47924</a>)</p>
<p>* Error messages for several internal conditions that should not</p>
<p>occur were changed to instruct the user to file a bug if they</p>
<p>do occur. (Bug#47027: <a href="http://bugs.mysql.com/bug.php?id=47027">http://bugs.mysql.com/bug.php?id=47027</a>)</p>
<p>* On file systems with case insensitive file names, and</p>
<p>lower_case_table_names=2, the server could crash due to a</p>
<p>table definition cache inconsistency.</p>
<p>(Bug#46941: <a href="http://bugs.mysql.com/bug.php?id=46941">http://bugs.mysql.com/bug.php?id=46941</a>)</p>
<p>* Handling of host name lettercase in GRANT statements was</p>
<p>inconsistent.</p>
<p>(Bug#36742: <a href="http://bugs.mysql.com/bug.php?id=36742">http://bugs.mysql.com/bug.php?id=36742</a>)</p>
<p>* SET NAMES utf8 COLLATE utf8_sinhala_ci did not work.</p>
<p>(Bug#26474: <a href="http://bugs.mysql.com/bug.php?id=26474">http://bugs.mysql.com/bug.php?id=26474</a>)</p>
<p>* The utf16_bin collation uses code-point order, not</p>
<p>byte-by-byte order, as described at Section 9.1.14.1, &#8220;Unicode</p>
<p>Character Sets.&#8221; (The order was byte-by-byte in MySQL 5.5.7.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketgrid.com/blog/2010/12/mysql-community-server-5-5-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Community Server 5.1.51</title>
		<link>http://www.marketgrid.com/blog/2010/09/mysql-community-server-5-1-51/</link>
		<comments>http://www.marketgrid.com/blog/2010/09/mysql-community-server-5-1-51/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 09:49:23 +0000</pubDate>
		<dc:creator>Phil Smith</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[MySQL 5.1]]></category>
		<category><![CDATA[MySQL Community Server]]></category>

		<guid isPermaLink="false">http://www.marketgrid.com/blog/?p=364</guid>
		<description><![CDATA[MySQL Community Server 5.1.51, has been released.  MySQL 5.1.51 is recommended for use on production systems. For an overview of what&#8217;s new in MySQL 5.1, please see  http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html For information on installing MySQL 5.1.51 on new servers or upgrading to MySQL 5.1.51 from previous MySQL releases, please see  http://dev.mysql.com/doc/refman/5.1/en/installing.html ======================================================================= C.1.1. Changes in MySQL 5.1.51 [...]]]></description>
			<content:encoded><![CDATA[<p>MySQL Community Server 5.1.51, has been released.  MySQL 5.1.51 is recommended for use on production systems.</p>
<p>For an overview of what&#8217;s new in MySQL 5.1, please see  <a href="http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html">http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html</a></p>
<p>For information on installing MySQL 5.1.51 on new servers or upgrading to MySQL 5.1.51 from previous MySQL releases, please see  <a href="http://dev.mysql.com/doc/refman/5.1/en/installing.html">http://dev.mysql.com/doc/refman/5.1/en/installing.html</a></p>
<p>=======================================================================</p>
<p>C.1.1. Changes in MySQL 5.1.51 (10 September 2010)</p>
<p>InnoDB Notes:</p>
<p>* InnoDB Plugin has been upgraded to version 1.0.12. This</p>
<p>version is considered of General Availability (GA) quality.</p>
<p>In this release, the InnoDB Plugin is included in source and</p>
<p>binary distributions, except RHEL3, RHEL4, SuSE 9 (x86,</p>
<p>x86_64, ia64), generic Linux RPM packages, and any builds</p>
<p>produced with the icc compiler. It also does not work for</p>
<p>FreeBSD 6 and HP-UX or for Linux on generic ia64.</p>
<p>Bugs fixed:</p>
<p>* Incompatible Change: Replication: As of MySQL 5.5.6, handling</p>
<p>of CREATE TABLE IF NOT EXISTS &#8230; SELECT statements has been</p>
<p>changed for the case that the destination table already</p>
<p>exists:</p>
<p>+ Previously, for CREATE TABLE IF NOT EXISTS &#8230; SELECT,</p>
<p>MySQL produced a warning that the table exists, but</p>
<p>inserted the rows and wrote the statement to the binary</p>
<p>log anyway. By contrast, CREATE TABLE &#8230; SELECT (without</p>
<p>IF NOT EXISTS) failed with an error, but MySQL inserted</p>
<p>no rows and did not write the statement to the binary</p>
<p>log.</p>
<p>+ MySQL now handles both statements the same way when the</p>
<p>destination table exists, in that neither statement</p>
<p>inserts rows or is written to the binary log. The</p>
<p>difference between them is that MySQL produces a warning</p>
<p>when IF NOT EXISTS is present and an error when it is</p>
<p>not.</p>
<p>This change in handling of IF NOT EXISTS results in an</p>
<p>incompatibility for statement-based replication from a MySQL</p>
<p>5.1 master with the original behavior and a MySQL 5.5 slave</p>
<p>with the new behavior. Suppose that CREATE TABLE IF NOT EXISTS</p>
<p>&#8230; SELECT is executed on the master and the destination table</p>
<p>exists. The result is that rows are inserted on the master but</p>
<p>not on the slave. (Row-based replication does not have this</p>
<p>problem.)</p>
<p>To address this issue, statement-based binary logging for</p>
<p>CREATE TABLE IF NOT EXISTS &#8230; SELECT is changed in MySQL 5.1</p>
<p>as of 5.1.51:</p>
<p>+ If the destination table does not exist, there is no</p>
<p>change: The statement is logged as is.</p>
<p>+ If the destination table does exist, the statement is</p>
<p>logged as the equivalent pair of CREATE TABLE IF NOT</p>
<p>EXISTS and INSERT &#8230; SELECT statements. (If the SELECT</p>
<p>in the original statement is preceded by IGNORE or</p>
<p>REPLACE, the INSERT becomes INSERT IGNORE or REPLACE,</p>
<p>respectively.)</p>
<p>This change provides forward compatibility for statement-based</p>
<p>replication from MySQL 5.1 to 5.5 because when the destination</p>
<p>table exists, the rows will be inserted on both the master and</p>
<p>slave. To take advantage of this compatibility measure, the</p>
<p>5.1 server must be at least 5.1.51 and the 5.5 server must be</p>
<p>at least 5.5.6.</p>
<p>To upgrade an existing 5.1-to-5.5 replication scenario,</p>
<p>upgrade the master first to 5.1.51 or higher. Note that this</p>
<p>differs from the usual replication upgrade advice of upgrading</p>
<p>the slave first.</p>
<p>A workaround for applications that wish to achieve the</p>
<p>original effect (rows inserted regardless of whether the</p>
<p>destination table exists) is to use CREATE TABLE IF NOT EXISTS</p>
<p>and INSERT &#8230; SELECT statements rather than CREATE TABLE IF</p>
<p>NOT EXISTS &#8230; SELECT statements.</p>
<p>Along with the change just described, the following related</p>
<p>change was made: Previously, if an existing view was named as</p>
<p>the destination table for CREATE TABLE IF NOT EXISTS &#8230;</p>
<p>SELECT, rows were inserted into the underlying base table and</p>
<p>the statement was written to the binary log. As of MySQL</p>
<p>5.1.51 and 5.5.6, nothing is inserted or logged.</p>
<p>(Bug#47442: <a href="http://bugs.mysql.com/bug.php?id=47442">http://bugs.mysql.com/bug.php?id=47442</a>,</p>
<p>Bug#47132: <a href="http://bugs.mysql.com/bug.php?id=47132">http://bugs.mysql.com/bug.php?id=47132</a>,</p>
<p>Bug#48814: <a href="http://bugs.mysql.com/bug.php?id=48814">http://bugs.mysql.com/bug.php?id=48814</a>,</p>
<p>Bug#49494: <a href="http://bugs.mysql.com/bug.php?id=49494">http://bugs.mysql.com/bug.php?id=49494</a>)</p>
<p>* Incompatible Change: Previously, if you flushed the logs using</p>
<p>FLUSH LOGS or mysqladmin flush-logs and mysqld was writing the</p>
<p>error log to a file (for example, if it was started with the</p>
<p>&#8211;log-error option), it renamed the current log file with the</p>
<p>suffix -old, then created a new empty log file. This had the</p>
<p>problem that a second log-flushing operation thus caused the</p>
<p>original error log file to be lost unless you saved it under a</p>
<p>different name. For example, you could use the following</p>
<p>commands to save the file:</p>
<p>shell&gt; mysqladmin flush-logs</p>
<p>shell&gt; mv host_name.err-old backup-directory</p>
<p>To avoid the preceding file-loss problem, renaming no longer</p>
<p>occurs. The server merely closes and reopens the log file. To</p>
<p>rename the file, you can do so manually before flushing. Then</p>
<p>flushing the logs reopens a new file with the original file</p>
<p>name. For example, you can rename the file and create a new</p>
<p>one using the following commands:</p>
<p>shell&gt; mv host_name.err host_name.err-old</p>
<p>shell&gt; mysqladmin flush-logs</p>
<p>shell&gt; mv host_name.err-old backup-directory</p>
<p>(Bug#29751: <a href="http://bugs.mysql.com/bug.php?id=29751">http://bugs.mysql.com/bug.php?id=29751</a>)</p>
<p>* Partitioning: When the storage engine used to create a</p>
<p>partitioned table was disabled, attempting to drop the table</p>
<p>caused the server to crash.</p>
<p>(Bug#46086: <a href="http://bugs.mysql.com/bug.php?id=46086">http://bugs.mysql.com/bug.php?id=46086</a>)</p>
<p>* If a view was named as the destination table for CREATE TABLE</p>
<p>&#8230; SELECT, the server produced a warning whether or not IF</p>
<p>NOT EXISTS was used. Now it produces a warning only when IF</p>
<p>NOT EXISTS is used, and an error otherwise.</p>
<p>(Bug#55777: <a href="http://bugs.mysql.com/bug.php?id=55777">http://bugs.mysql.com/bug.php?id=55777</a>)</p>
<p>* The CHECK TABLE command could cause a time-consuming</p>
<p>verification of the InnoDB adaptive hash index memory</p>
<p>structure. Now this extra checking is only performed in</p>
<p>binaries built for debugging.</p>
<p>(Bug#55716: <a href="http://bugs.mysql.com/bug.php?id=55716">http://bugs.mysql.com/bug.php?id=55716</a>)</p>
<p>* After the fix for</p>
<p>Bug#39653: <a href="http://bugs.mysql.com/bug.php?id=39653">http://bugs.mysql.com/bug.php?id=39653</a>, the</p>
<p>shortest available secondary index was used for full table</p>
<p>scans. The primary clustered key was used only if no secondary</p>
<p>index could be used. However, when the chosen secondary index</p>
<p>includes all columns of the table being scanned, it is better</p>
<p>to use the primary index because the amount of data to scan is</p>
<p>the same but the primary index is clustered. This is now taken</p>
<p>into account.</p>
<p>(Bug#55656: <a href="http://bugs.mysql.com/bug.php?id=55656">http://bugs.mysql.com/bug.php?id=55656</a>)</p>
<p>* (Bug#55627: <a href="http://bugs.mysql.com/bug.php?id=55627">http://bugs.mysql.com/bug.php?id=55627</a>)</p>
<p>* The server was not checking for errors generated during the</p>
<p>execution of Item::val_xxx() methods when copying data to a</p>
<p>group, order, or distinct temp table&#8217;s row.</p>
<p>(Bug#55580: <a href="http://bugs.mysql.com/bug.php?id=55580">http://bugs.mysql.com/bug.php?id=55580</a>)</p>
<p>* ORDER BY clauses that included user variable expressions could</p>
<p>cause a debug assertion to be raised.</p>
<p>(Bug#55565: <a href="http://bugs.mysql.com/bug.php?id=55565">http://bugs.mysql.com/bug.php?id=55565</a>)</p>
<p>* Queries involving predicates of the form const NOT BETWEEN</p>
<p>not_indexed_column AND indexed_column could return incorrect</p>
<p>data due to incorrect handling by the range optimizer.</p>
<p>(Bug#54802: <a href="http://bugs.mysql.com/bug.php?id=54802">http://bugs.mysql.com/bug.php?id=54802</a>)</p>
<p>* MIN() or MAX() with a subquery argument could raise a debug</p>
<p>assertion for debug builds or return incorrect data for</p>
<p>nondebug builds.</p>
<p>(Bug#54465: <a href="http://bugs.mysql.com/bug.php?id=54465">http://bugs.mysql.com/bug.php?id=54465</a>)</p>
<p>* INFORMATION_SCHEMA plugins with no deinit() method resulted in</p>
<p>a memory leak.</p>
<p>(Bug#54253: <a href="http://bugs.mysql.com/bug.php?id=54253">http://bugs.mysql.com/bug.php?id=54253</a>)</p>
<p>* After ALTER TABLE was used on a temporary transactional table</p>
<p>locked by LOCK TABLES, any later attempts to execute LOCK</p>
<p>TABLES or UNLOCK TABLES caused a server crash.</p>
<p>(Bug#54117: <a href="http://bugs.mysql.com/bug.php?id=54117">http://bugs.mysql.com/bug.php?id=54117</a>)</p>
<p>* INSERT IGNORE INTO &#8230; SELECT statements could cause a debug</p>
<p>assertion to be raised.</p>
<p>(Bug#54106: <a href="http://bugs.mysql.com/bug.php?id=54106">http://bugs.mysql.com/bug.php?id=54106</a>)</p>
<p>* The fix for Bug#30234: <a href="http://bugs.mysql.com/bug.php?id=30234">http://bugs.mysql.com/bug.php?id=30234</a></p>
<p>caused the server to reject the DELETE tbl_name.* &#8230; Access</p>
<p>compatibility syntax for multiple-table DELETE statements.</p>
<p>(Bug#53034: <a href="http://bugs.mysql.com/bug.php?id=53034">http://bugs.mysql.com/bug.php?id=53034</a>)</p>
<p>* Enumeration plugin variables were subject to a type casting</p>
<p>error, causing inconsistent results between different</p>
<p>platforms. (Bug#42144: <a href="http://bugs.mysql.com/bug.php?id=42144">http://bugs.mysql.com/bug.php?id=42144</a>)</p>
<p>* A PKG install on Solaris put some files in incorrect</p>
<p>locations. (Bug#31058: <a href="http://bugs.mysql.com/bug.php?id=31058">http://bugs.mysql.com/bug.php?id=31058</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketgrid.com/blog/2010/09/mysql-community-server-5-1-51/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Community Server 5.1.49</title>
		<link>http://www.marketgrid.com/blog/2010/07/mysql-community-server-5-1-49/</link>
		<comments>http://www.marketgrid.com/blog/2010/07/mysql-community-server-5-1-49/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 21:17:05 +0000</pubDate>
		<dc:creator>Phil Smith</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[MySQL Community Server]]></category>

		<guid isPermaLink="false">http://www.marketgrid.com/blog/?p=246</guid>
		<description><![CDATA[MySQL Community Server 5.1.49, a new version of the popular Open Source Database Management System, has been released. MySQL 5.1.49 is recommended for use on production systems. For an overview of what&#8217;s new in MySQL 5.1, please see http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html For information on installing MySQL 5.1.49 on new servers or upgrading to MySQL 5.1.49 from previous [...]]]></description>
			<content:encoded><![CDATA[<p>MySQL Community Server 5.1.49, a new version of the popular Open Source Database Management System, has been released.  MySQL 5.1.49 is recommended for use on production systems.</p>
<p>For an overview of what&#8217;s new in MySQL 5.1, please see<a href="http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html"> http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html</a></p>
<p>For information on installing MySQL 5.1.49 on new servers or upgrading to MySQL 5.1.49 from previous MySQL releases, please see <a href="http://dev.mysql.com/doc/refman/5.1/en/installing.html">http://dev.mysql.com/doc/refman/5.1/en/installing.html</a></p>
<p>For information on open issues in MySQL 5.1, please see the errata list at<a href="http://dev.mysql.com/doc/refman/5.1/en/open-bugs.html"> http://dev.mysql.com/doc/refman/5.1/en/open-bugs.html</a></p>
<p>The following section lists the changes in the MySQL source code since the previous released version of MySQL 5.1.  It may also be viewed online at<a href="http://dev.mysql.com/doc/refman/5.1/en/news-5-1-49.html"> http://dev.mysql.com/doc/refman/5.1/en/news-5-1-49.html</a></p>
<pre>
<pre>=======================================================================

C.1.2. Changes in MySQL 5.1.49 (09 July 2010)

    InnoDB Notes:

      * InnoDB Plugin has been upgraded to version 1.0.10. This
        version is considered of General Availability (GA) quality.
        InnoDB Plugin Change History
        (<a href="http://dev.mysql.com/doc/innodb-plugin/1.0/en/innodb-changes">http://dev.mysql.com/doc/innodb-plugin/1.0/en/innodb-changes</a>.
        html), may contain information in addition to those changes
        reported here.
        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.

    Bugs fixed:

      * Replication: When using unique keys on NULL columns in
        row-based replication, the slave sometimes chose the wrong row
        when performing an update. This happened because a table
        having a unique key on such a column could have multiple rows
        containing NULL for the column used by the unique key, and the
        slave merely picked the first row containing NULL in that
        column. (Bug#53893: <a href="http://bugs.mysql.com/bug.php?id=53893">http://bugs.mysql.com/bug.php?id=53893</a>)

      * Replication: FLUSH LOGS could in some circumstances crash the
        server. This occurred because the I/O thread could
        concurrently access the relay log I/O cache while another
        thread was performing the FLUSH LOGS, which closes and reopens
        the relay log and, while doing so, initializes (or
        re-initializes) its I/O cache. This could cause problems if
        some other thread (in this case, the I/O thread) is accessing
        it at the same time.
        Now the thread performing the FLUSH LOGS takes a lock on the
        relay log before actually flushing it.
        (Bug#53657: <a href="http://bugs.mysql.com/bug.php?id=53657">http://bugs.mysql.com/bug.php?id=53657</a>)
        See also Bug#50364: <a href="http://bugs.mysql.com/bug.php?id=50364">http://bugs.mysql.com/bug.php?id=50364</a>.

      * Replication: Two related issues involving temporary tables and
        transactions were introduced by a fix made in MySQL 5.1.37:

          1. When a temporary table was created or dropped within a
             transaction, any failed statement that following the
             CREATE TEMPORARY TABLE or DROP TEMPORARY TABLE statement
             triggered a rollback, which caused the slave diverge from
             the master.

          2. When a CREATE TEMPORARY TABLE ... SELECT * FROM ...
             statement was executed within a transaction in which only
             tables using transactional storage engines were used and
             the transaction was rolled back at the end, the
             changes---including the creation of the temporary
             table---were not written to the binary log.
        The current fix restores the correct behavior in both of these
        cases. (Bug#53560: <a href="http://bugs.mysql.com/bug.php?id=53560">http://bugs.mysql.com/bug.php?id=53560</a>)
        This regression was introduced by
        Bug#43929: <a href="http://bugs.mysql.com/bug.php?id=43929">http://bugs.mysql.com/bug.php?id=43929</a>.

      * Replication: When CURRENT_USER() or CURRENT_USER was used to
        supply the name and host of the affected user or of the
        definer in any of the statements DROP USER, RENAME USER,
        GRANT, REVOKE, and ALTER EVENT, the reference to
        CURRENT_USER() or CURRENT_USER was not expanded when written
        to the binary log. This resulted in CURRENT_USER() or
        CURRENT_USER being expanded to the user and host of the slave
        SQL thread on the slave, thus breaking replication. Now
        CURRENT_USER() and CURRENT_USER are expanded prior to being
        written to the binary log in such cases, so that the correct
        user and host are referenced on both the master and the slave.
        (Bug#48321: <a href="http://bugs.mysql.com/bug.php?id=48321">http://bugs.mysql.com/bug.php?id=48321</a>)

      * An ALTER TABLE statement could convert an InnoDB compressed
        table (with row_format=compressed) back to an uncompressed
        table (with row_format=compact).
        (Bug#54679: <a href="http://bugs.mysql.com/bug.php?id=54679">http://bugs.mysql.com/bug.php?id=54679</a>)

      * A signal-handler redefinition for SIGUSR1 was removed. The
        redefinition could cause the server to encounter a kernel
        deadlock on Solaris when there are many active threads. Other
        POSIX platforms might also be affected.
        (Bug#54667: <a href="http://bugs.mysql.com/bug.php?id=54667">http://bugs.mysql.com/bug.php?id=54667</a>)

      * InnoDB could issue an incorrect message on startup, if tables
        were created under the setting innodb_file_per_table=ON and
        the server was restarted under the setting
        innodb_file_per_table=OFF. The message was of the form InnoDB:
        Warning: allocated tablespace n, old maximum was 0.
        (Bug#54658: <a href="http://bugs.mysql.com/bug.php?id=54658">http://bugs.mysql.com/bug.php?id=54658</a>)

      * The make_binary_distribution target to make could fail on some
        platforms because the lines generated were too long for the
        shell. (Bug#54590: <a href="http://bugs.mysql.com/bug.php?id=54590">http://bugs.mysql.com/bug.php?id=54590</a>)

      * The server failed to disregard sort order for some zero-length
        tuples, leading to an assertion failure.
        (Bug#54459: <a href="http://bugs.mysql.com/bug.php?id=54459">http://bugs.mysql.com/bug.php?id=54459</a>)

      * The default value of myisam_max_extra_sort_file_size
        (<a href="http://dev.mysql.com/doc/refman/5.0/en/server-system-variable">http://dev.mysql.com/doc/refman/5.0/en/server-system-variable</a>
        s.html#sysvar_myisam_max_extra_sort_file_size) could be higher
        than the maximum accepted value, leading to warnings upon the
        server start.
        (Bug#54457: <a href="http://bugs.mysql.com/bug.php?id=54457">http://bugs.mysql.com/bug.php?id=54457</a>)

      * If a session tried to drop a database containing a table
        opened with HANDLER in another session, any DATABASE statement
        (CREATE, DROP, ALTER) executed by that session produced a
        deadlock. (Bug#54360: <a href="http://bugs.mysql.com/bug.php?id=54360">http://bugs.mysql.com/bug.php?id=54360</a>)

      * Fast index creation could fail, leaving the new secondary
        index corrupted.
        (Bug#54330: <a href="http://bugs.mysql.com/bug.php?id=54330">http://bugs.mysql.com/bug.php?id=54330</a>)

      * 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: <a href="http://bugs.mysql.com/bug.php?id=54041">http://bugs.mysql.com/bug.php?id=54041</a>)

      * Builds of the embedded mysqld would fail due to a missing
        element of the struct NET.
        (Bug#53908: <a href="http://bugs.mysql.com/bug.php?id=53908">http://bugs.mysql.com/bug.php?id=53908</a>,
        Bug#53912: <a href="http://bugs.mysql.com/bug.php?id=53912">http://bugs.mysql.com/bug.php?id=53912</a>)

      * The definition of the MY_INIT macro in my_sys.h included an
        extraneous semicolon, which could cause compilation failure.
        (Bug#53906: <a href="http://bugs.mysql.com/bug.php?id=53906">http://bugs.mysql.com/bug.php?id=53906</a>)

      * A client with automatic reconnection enabled saw the error
        message Lost connection to MySQL server during query if the
        connection was lost between the mysql_stmt_prepare() and
        mysql_stmt_execute() C API functions. However,
        mysql_stmt_errno() returned 0, not the corresponding error
        number 2013.
        (Bug#53899: <a href="http://bugs.mysql.com/bug.php?id=53899">http://bugs.mysql.com/bug.php?id=53899</a>)

      * Queries that used MIN() or MAX() on indexed columns could be
        optimized incorrectly.
        (Bug#53859: <a href="http://bugs.mysql.com/bug.php?id=53859">http://bugs.mysql.com/bug.php?id=53859</a>)

      * The Lock_time value in the slow query log was negative for
        stored routines.
        (Bug#53191: <a href="http://bugs.mysql.com/bug.php?id=53191">http://bugs.mysql.com/bug.php?id=53191</a>)

      * The results of some ORDER BY ... DESC queries were sorted
        incorrectly.
        (Bug#51431: <a href="http://bugs.mysql.com/bug.php?id=51431">http://bugs.mysql.com/bug.php?id=51431</a>)

      * Index Merge between three indexes could return incorrect
        results. (Bug#50389: <a href="http://bugs.mysql.com/bug.php?id=50389">http://bugs.mysql.com/bug.php?id=50389</a>)

      * Performing large numbers of RENAME TABLE statements caused
        excessive memory use.
        (Bug#47991: <a href="http://bugs.mysql.com/bug.php?id=47991">http://bugs.mysql.com/bug.php?id=47991</a>)

      * The server could crash with an out of memory error when trying
        to parse a query that was too long to fit in memory. Now the
        parser rejects such queries with an ER_OUT_OF_RESOURCES error.
        (Bug#42064: <a href="http://bugs.mysql.com/bug.php?id=42064">http://bugs.mysql.com/bug.php?id=42064</a>)

      * Sort-index_merge for join tables other than the first table
        used excessive memory.
        (Bug#41660: <a href="http://bugs.mysql.com/bug.php?id=41660">http://bugs.mysql.com/bug.php?id=41660</a>)

      * Valgrind warnings in the InnoDB compare_record() function were
        corrected. (Bug#38999: <a href="http://bugs.mysql.com/bug.php?id=38999">http://bugs.mysql.com/bug.php?id=38999</a>)

      * mysqld could fail during execution when using SSL.
        (Bug#34236: <a href="http://bugs.mysql.com/bug.php?id=34236">http://bugs.mysql.com/bug.php?id=34236</a>)

      * The behavior of the RPM upgrade installation has changed.
        During an upgrade installation using the RPM packages, if the
        MySQL server is running when the upgrade occurs, the server is
        stopped, the upgrade occurs, and server is restarted. If the
        server is not already running when the RPM upgrade occurs, the
        server is not started at the end of the upgrade. The boot
        scripts for MySQL are installed in the appropriate directories
        in /etc, so the MySQL server will be restarted automatically
        at the next machine reboot.
        (Bug#27072: <a href="http://bugs.mysql.com/bug.php?id=27072">http://bugs.mysql.com/bug.php?id=27072</a>)
</pre>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.marketgrid.com/blog/2010/07/mysql-community-server-5-1-49/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Community Server 5.1.48</title>
		<link>http://www.marketgrid.com/blog/2010/06/mysql-community-server-5-1-48/</link>
		<comments>http://www.marketgrid.com/blog/2010/06/mysql-community-server-5-1-48/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 09:27:38 +0000</pubDate>
		<dc:creator>Phil Smith</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[MySQL Community Server]]></category>

		<guid isPermaLink="false">http://www.marketgrid.com/blog/?p=198</guid>
		<description><![CDATA[MySQL Community Server 5.1.48, a new version of the popular Open Source Database Management System, has been released. MySQL 5.1.48 is recommended for use on production systems. For an overview of what&#8217;s new in MySQL 5.1, please see http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html For information on installing MySQL 5.1.48 on new servers or upgrading to MySQL 5.1.48 from previous [...]]]></description>
			<content:encoded><![CDATA[<p>MySQL Community Server 5.1.48, a new version of the popular Open Source Database Management System, has been released.</p>
<p>MySQL 5.1.48 is recommended for use on production systems.</p>
<p>For an overview of what&#8217;s new in MySQL 5.1, please see  http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html</p>
<p>For information on installing MySQL 5.1.48 on new servers or upgrading to MySQL 5.1.48 from previous MySQL releases, please see  http://dev.mysql.com/doc/refman/5.1/en/installing.html</p>
<p>MySQL Server is available in source and binary form for a number of platforms from our download pages at  http://dev.mysql.com/downloads/</p>
<p>For information on open issues in MySQL 5.1, please see the errata list at  http://dev.mysql.com/doc/refman/5.1/en/open-bugs.html</p>
<p>The following section lists the changes in the MySQL source code since the previous released version of MySQL 5.1.  It may also be viewed online at  http://dev.mysql.com/doc/refman/5.1/en/news-5-1-48.html</p>
<p>=======================================================================</p>
<p>C.1.1. Changes in MySQL 5.1.48      Functionality added or changed:</p>
<p>* The Rows_examined value in slow query log rows now is nonzero         for UPDATE and DELETE statements that modify rows.         (Bug#49756: http://bugs.mysql.com/bug.php?id=49756)</p>
<p>Bugs fixed:</p>
<p>* Important Change: Replication: MyISAM transactions replicated         to a transactional slave left the slave in an unstable         condition. This was due to the fact that, when replicating         from a nontransactional storage engine to a transactional         engine with autocommit turned off, no BEGIN and COMMIT         statements were written to the binary log; thus, on the slave,         a never-ending transaction was started.         The fix for this issue includes enforcing autocommit mode on         the slave by replicating all autocommit=1 statements from the         master. (Bug#29288: http://bugs.mysql.com/bug.php?id=29288)</p>
<p>* Partitioning: ALTER TABLE statements that cause table         partitions to be renamed or dropped (such as ALTER TABLE &#8230;         ADD PARTITION, ALTER TABLE &#8230; DROP PARTITION, and ALTER TABLE         &#8230; REORGANIZE PARTITION) &#8212; when run concurrently with         queries against the INFORMATION_SCHEMA.PARTITIONS table &#8212;         could fail, cause the affected partitioned tables to become         unusable, or both. This was due to the fact that the         INFORMATION_SCHEMA database ignored the name lock imposed by         the ALTER TABLE statement on the partitions affected. In         particular, this led to problems with InnoDB tables, because         InnoDB would accept the rename operation, but put it in a         background queue, so that subsequent rename operations failed         when InnoDB was unable to find the correct partition. Now,         INFORMATION_SCHEMA honors name locks imposed by ongoing ALTER         TABLE statements that cause partitions to be renamed or         dropped. (Bug#50561: http://bugs.mysql.com/bug.php?id=50561)         See also Bug#47343: http://bugs.mysql.com/bug.php?id=47343,         Bug#45808: http://bugs.mysql.com/bug.php?id=45808.</p>
<p>* Partitioning: It was possible to execute a CREATE TEMPORARY         TABLE tmp LIKE pt statement, where pt is a partitioned table,         even though partitioned temporary tables are not permitted,         which caused the server to crash. Now a check is performed to         prevent such statements from being executed.         (Bug#49477: http://bugs.mysql.com/bug.php?id=49477)</p>
<p>* Partitioning: When attempting to perform DDL on a partitioned         table and the table&#8217;s .par file could not be found, the server         returned the inaccurate error message Out of memory; restart         server and try again (needed 2 bytes). Now in such cases, the         server returns the error Failed to initialize partitions from         .par file. (Bug#49161: http://bugs.mysql.com/bug.php?id=49161)</p>
<p>* Replication: In some cases, attempting to update a column with         a value of an incompatible type resulted in a mismatch between         master and slave because the column value was set to its         implicit default value on the master (as expected), but the         same column on the slave was set to NULL.         (Bug#52868: http://bugs.mysql.com/bug.php?id=52868)</p>
<p>* Replication: When using a non-transactional table on the         master with autocommit disabled, no COMMIT was recorded in the         binary log following a statement affecting this table. If the         slave&#8217;s copy of the table used a transactional storage engine,         the result on the slave was as though a transaction had been         started, but never completed.         (Bug#49522: http://bugs.mysql.com/bug.php?id=49522)         See also Bug#29288: http://bugs.mysql.com/bug.php?id=29288.</p>
<p>* Replication: Reading from a table that used a self-logging         storage engine and updating a table that used a transactional         engine (such as InnoDB) generated changes that were written to         the binary log using statement format which could make slaves         diverge. However, when using mixed logging format, such         changes should be written to the binary log using row format.         (This issue did not occur when reading from tables using a         self-logging engine and updating MyISAM tables, as this was         already handled by checking for combinations of         non-transactional and transactional engines.) Now such         statements are classified as unsafe, and in mixed mode, cause         a switch to row-based logging.         (Bug#49019: http://bugs.mysql.com/bug.php?id=49019)</p>
<p>* Valgrind warnings resulting from passing incomplete DATETIME         values to the TIMESTAMP() function were corrected.         (Bug#53942: http://bugs.mysql.com/bug.php?id=53942)</p>
<p>* Builds of the embedded mysqld would fail due to a missing         element of the struct NET.         (Bug#53908: http://bugs.mysql.com/bug.php?id=53908,         Bug#53912: http://bugs.mysql.com/bug.php?id=53912)</p>
<p>* UPDATE on an InnoDB table modifying the same index that was         used to satisfy the WHERE condition could trigger a debug         assertion under some circumstances.         (Bug#53830: http://bugs.mysql.com/bug.php?id=53830)</p>
<p>* For single-table DELETE statements that used quick select and         index scan simultaneously caused a server crash or assertion         failure. (Bug#53450: http://bugs.mysql.com/bug.php?id=53450)</p>
<p>* Incorrect results could be returned for LEFT JOIN of InnoDB         tables with an impossible WHERE condition.         (Bug#53334: http://bugs.mysql.com/bug.php?id=53334)</p>
<p>* Fixed a checksum error reported for compressed tables when the         &#8211;innodb_checksums option is enabled.         (Bug#53248: http://bugs.mysql.com/bug.php?id=53248)</p>
<p>* Corrected the handling of the setting         innodb_change_buffering=default. (The appropriate default         value is different between MySQL 5.1 and 5.5.)         (Bug#53165: http://bugs.mysql.com/bug.php?id=53165)</p>
<p>* mysqldump and SELECT &#8230; INTO OUTFILE truncated long BLOB and         TEXT values to 766 bytes.         (Bug#53088: http://bugs.mysql.com/bug.php?id=53088)</p>
<p>* In the debug version of the server, the FreeState() function         could in some circumstances be called twice, leading to an         assertion failure.         (Bug#52884: http://bugs.mysql.com/bug.php?id=52884)</p>
<p>* Aggregate functions could incorrectly return NULL in outer         join queries.         (Bug#52051: http://bugs.mysql.com/bug.php?id=52051)</p>
<p>* The Loose Index Scan optimization method assumed that it could         depend on the partitioning engine to maintain interval         endpoint information, as if it were a storage engine.         (Bug#50939: http://bugs.mysql.com/bug.php?id=50939)</p>
<p>* Calculation of intervals for Event Scheduler events was not         portable. (Bug#50087: http://bugs.mysql.com/bug.php?id=50087)</p>
<p>* Selecting from INFORMATION_SCHEMA.ROUTINES or         INFORMATION_SCHEMA.PARAMETERS         (http://dev.mysql.com/doc/refman/5.5/en/parameters-table.html)         resulted in a memory leak.         (Bug#48729: http://bugs.mysql.com/bug.php?id=48729)</p>
<p>* When the transaction isolation level was REPEATABLE READ and         binary logging used statement or mixed format, SELECT         statements with subqueries referencing InnoDB tables         unnecessarily acquired shared locks on rows in these tables.         (Bug#46947: http://bugs.mysql.com/bug.php?id=46947)</p>
<p>* Using an initial command with mysql_options(&#8230;,         MYSQL_INIT_COMMAND, &#8230;) that generated multiple result sets         (such as a stored procedure or a multi-statement command) left         the connection unusable.         (Bug#42373: http://bugs.mysql.com/bug.php?id=42373)</p>
<p>* If a crash occurs while creating an index using the InnoDB         &#8220;Fast Index Creation&#8221; mechanism, the partially created index         is dropped during the crash recovery processing when the         database is restarted.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketgrid.com/blog/2010/06/mysql-community-server-5-1-48/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Community Server 5.1.45</title>
		<link>http://www.marketgrid.com/blog/2010/03/mysql-community-server-5-1-45/</link>
		<comments>http://www.marketgrid.com/blog/2010/03/mysql-community-server-5-1-45/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 18:39:55 +0000</pubDate>
		<dc:creator>Phil Smith</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[MySQL 5.1]]></category>
		<category><![CDATA[MySQL Community Server]]></category>

		<guid isPermaLink="false">http://www.marketgrid.com/blog/?p=162</guid>
		<description><![CDATA[MySQL Community Server 5.1.45, a new version of the popular Open Source Database Management System, has been released. MySQL 5.1.45 is recommended for use on production systems. For an overview of what&#8217;s new in MySQL 5.1, please see http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html For information on installing MySQL 5.1.45 on new servers or upgrading to MySQL 5.1.45 from previous [...]]]></description>
			<content:encoded><![CDATA[<p>MySQL Community Server 5.1.45, a new version of the popular Open Source Database Management System, has been released.  MySQL 5.1.45 is recommended for use on production systems.</p>
<p>For an overview of what&#8217;s new in MySQL 5.1, please see <a href="http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html">http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html</a></p>
<p>For information on installing MySQL 5.1.45 on new servers or upgrading to MySQL 5.1.45 from previous MySQL releases, please see <a href="http://dev.mysql.com/doc/refman/5.1/en/installing.html">http://dev.mysql.com/doc/refman/5.1/en/installing.html</a></p>
<p>MySQL Server is available in source and binary form for a number of<br />
platforms from <a href="http://dev.mysql.com/downloads/">http://dev.mysql.com/downloads/</a></p>
<p>For information on open issues in MySQL 5.1, please see the errata<br />
list at <a href="http://dev.mysql.com/doc/refman/5.1/en/open-bugs.html">http://dev.mysql.com/doc/refman/5.1/en/open-bugs.html</a></p>
<p>The following section lists the changes in the MySQL source code since the previous released version of MySQL 5.1.  It may also be viewed online at <a href="http://dev.mysql.com/doc/refman/5.1/en/news-5-1-45.html">http://dev.mysql.com/doc/refman/5.1/en/news-5-1-45.html</a></p>
<h2>Changes in MySQL 5.1.45</h2>
<p>InnoDB Plugin Notes:</p>
<p>* This release includes InnoDB Plugin 1.0.6. This version is<br />
considered of Release Candidate (RC) quality.<br />
In this release, the InnoDB Plugin is included in source and<br />
binary distributions, except RHEL3, RHEL4, SuSE 9 (x86,<br />
x86_64, ia64), and generic Linux RPM packages. It also does<br />
not work for FreeBSD 6 and HP-UX or for Linux on generic ia64.</p>
<p>Functionality added or changed:</p>
<p>* mysqltest has a new &#8211;max-connections option to set a higher<br />
number of maximum allowed server connections than the default<br />
128. This option can also be passed via mysql-test-run.pl.<br />
(Bug#51135: http://bugs.mysql.com/bug.php?id=51135)</p>
<p>* mysql-test-run.pl has a new &#8211;portbase option and a<br />
corresponding MTR_PORT_BASE environment variable for setting<br />
the port range, as an alternative to the existing<br />
&#8211;build-thread option.<br />
(Bug#50182: http://bugs.mysql.com/bug.php?id=50182)</p>
<p>* mysql-test-run.pl has a new &#8211;gprof option that runs the<br />
server through the gprof profiler, much the same way the<br />
currently supported &#8211;gcov option runs it through gcov.<br />
(Bug#49345: http://bugs.mysql.com/bug.php?id=49345)</p>
<p>* mysqltest has a new lowercase_result command that converts the<br />
output of the next statement to lowercase. This is useful for<br />
test cases where the lettercase may vary between platforms.<br />
(Bug#48863: http://bugs.mysql.com/bug.php?id=48863)</p>
<p>* mysqltest has a new remove_files_wildcard command that removes<br />
files matching a pattern from a directory.<br />
(Bug#39774: http://bugs.mysql.com/bug.php?id=39774)</p>
<p>Bugs fixed:</p>
<p>* Partitioning: Attempting to drop a partitioned table from one<br />
connection while waiting for the completion of an ALTER TABLE<br />
that had been issued from a different connection, and that<br />
changed the storage engine used by the table, could cause the<br />
server to crash.<br />
(Bug#42438: http://bugs.mysql.com/bug.php?id=42438)</p>
<p>* Replication: Adding an index to a table on the master caused<br />
the slave to stop logging slow queries to the slow query log.<br />
(Bug#50620: http://bugs.mysql.com/bug.php?id=50620)</p>
<p>* Replication: Queries which were written to the slow query log<br />
on the master were not written to the slow query log on the<br />
slave. (Bug#23300: http://bugs.mysql.com/bug.php?id=23300)<br />
See also Bug#48632: http://bugs.mysql.com/bug.php?id=48632.</p>
<p>* mysqld_multi failed due to a syntax error in the script.<br />
(Bug#51468: http://bugs.mysql.com/bug.php?id=51468)</p>
<p>* Referring to a subquery result in a HAVING clause could<br />
produce incorrect results.<br />
(Bug#50995: http://bugs.mysql.com/bug.php?id=50995)</p>
<p>* Use of filesort plus the join cache normally is preferred to a<br />
full index scan. But it was used even if the index is<br />
clustered, in which case, the clustered index scan can be<br />
faster. (Bug#50843: http://bugs.mysql.com/bug.php?id=50843)</p>
<p>* For debug builds, SHOW BINARY LOGS caused an assertion to be<br />
raised if binary logging was not enabled.<br />
(Bug#50780: http://bugs.mysql.com/bug.php?id=50780)</p>
<p>* Incorrect handling of BIT columns in temporary tables could<br />
lead to spurious duplicate-key errors.<br />
(Bug#50591: http://bugs.mysql.com/bug.php?id=50591)</p>
<p>* Full-text queries that used the truncation operator (*) could<br />
enter an infinite loop.<br />
(Bug#50351: http://bugs.mysql.com/bug.php?id=50351)</p>
<p>* mysqltest no longer lets you execute an SQL statement on a<br />
connection after doing a send command, unless you do a reap<br />
first. This was previously accepted but could produce<br />
unpredictable results.<br />
(Bug#49269: http://bugs.mysql.com/bug.php?id=49269)</p>
<p>* For debug builds on Windows, warnings about incorrect use of<br />
debugging directives were written to the error log. The<br />
directives were rewritten to eliminate these messages.<br />
(Bug#49025: http://bugs.mysql.com/bug.php?id=49025)</p>
<p>* Building MySQL on Fedora Core 12 64-bit failed, due to errors<br />
in comp_err.<br />
(Bug#48864: http://bugs.mysql.com/bug.php?id=48864)</p>
<p>* An ARZ file missing from the database directory caused the<br />
server to crash.<br />
(Bug#48757: http://bugs.mysql.com/bug.php?id=48757)</p>
<p>* Slow CALL statements were not always logged to the slow query<br />
log because execution time for multiple-statement stored<br />
procedures was assessed incorrectly.<br />
(Bug#47905: http://bugs.mysql.com/bug.php?id=47905)</p>
<p>* Failure to open a view with a nonexistent DEFINER was<br />
improperly handled and the server would crash later attempting<br />
to lock the view.<br />
(Bug#47734: http://bugs.mysql.com/bug.php?id=47734)</p>
<p>* If EXPLAIN encountered an error in the query, a memory leak<br />
occurred. (Bug#45989: http://bugs.mysql.com/bug.php?id=45989)</p>
<p>* Grouping by a subquery in a query with a DISTINCT aggregate<br />
function led to incorrect and unordered grouping values.<br />
(Bug#45640: http://bugs.mysql.com/bug.php?id=45640)</p>
<p>* Propagation of a large unsigned numeric constant in WHERE<br />
expressions could lead to incorrect results. This also<br />
affected EXPLAIN EXTENDED, which printed incorrect numeric<br />
constants in such transformed WHERE expressions.<br />
(Bug#45360: http://bugs.mysql.com/bug.php?id=45360)</p>
<p>* Valgrind warnings about uninitialized variables in optimizer<br />
code were silenced.<br />
(Bug#45195: http://bugs.mysql.com/bug.php?id=45195)</p>
<p>* flush_cache_records() did not correctly check for errors that<br />
should cause statement execution to stop, leading to a server<br />
crash. (Bug#39022: http://bugs.mysql.com/bug.php?id=39022)</p>
<p>* When building MySQL when using a different target directory<br />
(for example using the VPATH environment variable), the build<br />
of the embedded readline component would fail.<br />
(Bug#35250: http://bugs.mysql.com/bug.php?id=35250)</p>
<p>* INSERT INTO &#8230; VALUES(DEFAULT) failed to insert the correct<br />
value for ENUM columns. For MyISAM tables, an empty value was<br />
inserted. For CSV tables, the table became corrupt.<br />
(Bug#33717: http://bugs.mysql.com/bug.php?id=33717)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketgrid.com/blog/2010/03/mysql-community-server-5-1-45/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

