<?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 5.5</title>
	<atom:link href="http://www.marketgrid.com/blog/tag/mysql-5-5/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.marketgrid.com/blog</link>
	<description>MySQL, website development and performance news</description>
	<lastBuildDate>Wed, 01 Sep 2010 11:00:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>MySQL Community Server 5.5.5-m3</title>
		<link>http://www.marketgrid.com/blog/2010/07/mysql-community-server-5-5-5-m3/</link>
		<comments>http://www.marketgrid.com/blog/2010/07/mysql-community-server-5-5-5-m3/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 09:41:32 +0000</pubDate>
		<dc:creator>Phil Smith</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[MySQL 5.5]]></category>

		<guid isPermaLink="false">http://www.marketgrid.com/blog/?p=234</guid>
		<description><![CDATA[MySQL Server 5.5.5-m3, a new version of the popular Open Source Database Management System, has been released. The &#8220;-m3&#8243; suffix indicates that these releases belong to the third milestone, also called &#8220;Celosia&#8221;. You can read more about the release model and the planned milestones at  http://forge.mysql.com/wiki/Development_Cycle The new features in these releases are of beta [...]]]></description>
			<content:encoded><![CDATA[<p>MySQL Server 5.5.5-m3, a new version of the popular Open Source Database Management System, has been released.</p>
<p>The &#8220;-m3&#8243; suffix indicates that these releases belong to the third milestone, also called &#8220;Celosia&#8221;.</p>
<p>You can read more about the release model and the planned milestones at  <a href="http://forge.mysql.com/wiki/Development_Cycle">http://forge.mysql.com/wiki/Development_Cycle</a></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>Please note that *downgrading* from these releases to a previous release series, including MySQL Server 5.5 milestone 2 (Betony) releases, is not supported.</p>
<p>MySQL 5.5 is based on MySQL 5.4, which won&#8217;t get any further updates.</p>
<p>MySQL 5.5 includes several high-impact changes to address scalability and performance issues in MySQL Server. These changes exploit advances in hardware and CPU design and enable better utilization of existing</p>
<p>hardware.</p>
<p>For an overview of what&#8217;s new in MySQL 5.5, please see the section &#8220;What Is New in MySQL 5.5&#8243; online at  <a href="http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html">http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html</a></p>
<p>For information on installing MySQL 5.5.5-m3 on new servers, please see the MySQL installation documentation at  <a href="http://dev.mysql.com/doc/refman/5.5/en/installing.html">http://dev.mysql.com/doc/refman/5.5/en/installing.html</a></p>
<p>For upgrading from previous MySQL releases, please see the important upgrade considerations at</p>
<p><a href="http://dev.mysql.com/doc/refman/5.5/en/upgrading-from-previous-series.html">http://dev.mysql.com/doc/refman/5.5/en/upgrading-from-previous-series.html</a> &lt;<a href="http://dev.mysql.com/doc/refman/5.5/en/installing.html">http://dev.mysql.com/doc/refman/5.5/en/installing.html</a>&gt;</p>
<p>MySQL Server 5.5 is available in source and binary form for a number of platforms from the &#8220;Development Releases&#8221; selection of download pages at</p>
<p><a href="http://dev.mysql.com/downloads/mysql/">http://dev.mysql.com/downloads/mysql/</a></p>
<p>The complete list of all &#8220;Bugs Fixed&#8221; may be viewed online at  http://dev.mysql.com/doc/refman/5.5/en/news-5-5-5.html</p>
<p>Special note for those of you who build from source:</p>
<p>In MySQL 5.5.5-m3, CMake joins GNU autotools as a build framework for all platforms. Existing support for GNU autotools isn&#8217;t going away just yet, but if you are so inclined, you can now alternatively use CMake as per the</p>
<p>instructions on the web page linked below. The official packages for this release are the first to be produced using CMake.</p>
<p><a href="http://forge.mysql.com/wiki/CMake">http://forge.mysql.com/wiki/CMake</a></p>
<p>Changes in MySQL 5.5.5:</p>
<p>|InnoDB is now the default storage engine, rather than MyISAM in|||  the regular versions of MySQL. This change has the following consequences:</p>
<p>* Existing tables are not affected by this change, only new tables that are created.</p>
<p>* Some of the|InnoDB|  option settings also change, so that the default configuration represents the best practices for|InnoDB|</p>
<p>functionality,reliability, and file management:</p>
<p>|innodb_file_format=Barracuda|  rather than|Antelope|,</p>
<p>|innodb_strict_mode=TRUE|  rather than|FALSE|, and</p>
<p>|innodb_file_per_table=TRUE|  rather than|FALSE|.</p>
<p>* The system tables remain in|MyISAM|  format.</p>
<p>*|MyISAM|  remains the default storage engine for the embedded version of MySQL</p>
<p>Bugs Fixed:</p>
<p>* Performance: While looking for the shortest index for a covering index scan, the optimizer did not consider the full</p>
<p>row length for a clustered primary key, as in InnoDB. Secondary covering indexes will now be preferred, making full</p>
<p>table scans less likely.</p>
<p>(Bug#39653:http://bugs.mysql.com/bug.php?id=39653)</p>
<p>* Security Fix: The server failed to check the table name argument of a COM_FIELD_LIST command packet for validity and</p>
<p>compliance to acceptable table name standards. This could be exploited to bypass almost all forms of checks for privileges</p>
<p>and table-level grants by providing a specially crafted table name argument to COM_FIELD_LIST.</p>
<p>In MySQL 5.0 and above, this allowed an authenticated user with SELECT privileges on one table to obtain the field</p>
<p>definitions of any table in all other databases and potentially of other MySQL instances accessible from the</p>
<p>server&#8217;s file system.</p>
<p>Additionally, for MySQL version 5.1 and above, an authenticated user with DELETE or SELECT privileges on one</p>
<p>table could delete or read content from any other table in all databases on this server, and potentially of other MySQL</p>
<p>instances accessible from the server&#8217;s file system.</p>
<p>(Bug#53371:http://bugs.mysql.com/bug.php?id=53371,</p>
<p>CVE-2010-1848 (<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1848%29">http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1848)</a>)</p>
<p>* Security Fix: The server was susceptible to a buffer-overflow attack due to a failure to perform bounds checking on the</p>
<p>table name argument of a COM_FIELD_LIST command packet. By sending long data for the table name, a buffer is overflown,</p>
<p>which could be exploited by an authenticated user to inject malicious code.</p>
<p>(Bug#53237:http://bugs.mysql.com/bug.php?id=53237,</p>
<p>CVE-2010-1850 (<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1850%29">http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1850)</a>)</p>
<p>* Security Fix: Privilege checking for UNINSTALL PLUGIN was incorrect. (Bug#51770:http://bugs.mysql.com/bug.php?id=51770,</p>
<p>CVE-2010-1621 (<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1621%29">http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1621)</a>)</p>
<p>* Security Fix: The server could be tricked into reading packets indefinitely if it received a packet larger than the maximum</p>
<p>size of one packet.</p>
<p>(Bug#50974:http://bugs.mysql.com/bug.php?id=50974,</p>
<p>CVE-2010-1849 (<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1849%29">http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1849)</a>)</p>
<p>* Incompatible Change: TRUNCATE TABLE did not take an exclusive lock on a table if truncation was done by deleting all rows in</p>
<p>the table. For InnoDB tables, this could break proper isolation because InnoDB ended up aborting some granted locks</p>
<p>when truncating a table. Now an exclusive metadata lock is taken before TRUNCATE TABLE can proceed. This guarantees that</p>
<p>no other transaction is using the table.</p>
<p>Incompatible change: Truncation using delete no longer fails if sql_safe_updates is enabled (this was an undocumented side</p>
<p>effect). (Bug#42643:http://bugs.mysql.com/bug.php?id=42643)</p>
<p>* Important Change: Replication: It was possible to set sql_log_bin with session scope inside a transaction or</p>
<p>subquery. (Bug#53437:http://bugs.mysql.com/bug.php?id=53437)</p>
<p>* Important Change: Replication: When changing binlog_format or binlog_direct_non_transactional_updates, permissions were not</p>
<p>checked prior to checking the scope and context of the variable being changed.</p>
<p>As a result of this fix, an error is no longer reported when&#8212;in the context of a transaction or a stored</p>
<p>function&#8212;you try to set a value for a session variable that is the same as its previous value, or for a variable whose</p>
<p>scope is global only.</p>
<p>(Bug#51277:http://bugs.mysql.com/bug.php?id=51277)</p>
<p>* Important Change: Replication: When invoked, CHANGE MASTER TO and SET GLOBAL sql_slave_skip_counter now cause information to</p>
<p>be written to the error log about the slave&#8217;s state prior to execution of the statement. For CHANGE MASTER TO, this</p>
<p>information includes the previous values for MASTER_HOST, MASTER_PORT, MASTER_LOG_FILE, and MASTER_LOG_POS. For SET</p>
<p>GLOBAL sql_slave_skip_counter, this information includes the previous values of sql_slave_skip_counter, the group relay log</p>
<p>name, and the group relay log position.</p>
<p>(Bug#43406:http://bugs.mysql.com/bug.php?id=43406,</p>
<p>Bug#43407:http://bugs.mysql.com/bug.php?id=43407)</p>
<p>* Partitioning: Replication: Attempting to execute LOAD DATA on a partitioned MyISAM table while using statement-based logging</p>
<p>mode caused the master to hang or crash.</p>
<p>(Bug#51851:http://bugs.mysql.com/bug.php?id=51851)</p>
<p>* Partitioning: Replication: The NO_DIR_IN_CREATE server SQL mode was not enforced when defining subpartitions. In certain</p>
<p>cases, this could lead to failures on replication slaves.</p>
<p>(Bug#42954:http://bugs.mysql.com/bug.php?id=42954)</p>
<p>* Partitioning: Rows inserted into a table created using a PARTITION BY LIST COLUMNS option referencing multiple columns</p>
<p>could be inserted into the wrong partition.</p>
<p>(Bug#52815:http://bugs.mysql.com/bug.php?id=52815)</p>
<p>* Partitioning: Partition pruning on RANGE partitioned tables did not always work correctly; the last partition was not</p>
<p>excluded if the range was beyond it (when not using MAXVALUE).</p>
<p>Now the last partition is not included if the partitioning function value is not within the range.</p>
<p>(Bug#51830:http://bugs.mysql.com/bug.php?id=51830)</p>
<p>* Partitioning: Attempting to partition a table using a DECIMAL column caused the server to crash; this not supported and is</p>
<p>now specifically disallowed.</p>
<p>Bug#51347:http://bugs.mysql.com/bug.php?id=51347)</p>
<p>* Partitioning: ALTER TABLE statements that cause table partitions to be renamed or dropped (such as ALTER TABLE &#8230;</p>
<p>ADD PARTITION, ALTER TABLE &#8230; DROP PARTITION, and ALTER TABLE &#8230; REORGANIZE PARTITION) &#8212; when run concurrently with</p>
<p>queries against the INFORMATION_SCHEMA.PARTITIONS table &#8212;</p>
<p>could fail, cause the affected partitioned tables to become unusable, or both. This was due to the fact that the</p>
<p>INFORMATION_SCHEMA database ignored the name lock imposed by the ALTER TABLE statement on the partitions affected. In</p>
<p>particular, this led to problems with InnoDB tables, because InnoDB would accept the rename operation, but put it in a</p>
<p>background queue, so that subsequent rename operations failed when InnoDB was unable to find the correct partition. Now,</p>
<p>INFORMATION_SCHEMA honors name locks imposed by ongoing ALTER TABLE statements that cause partitions to be renamed or</p>
<p>dropped. (Bug#50561:http://bugs.mysql.com/bug.php?id=50561)</p>
<p>See also Bug#47343:http://bugs.mysql.com/bug.php?id=47343,</p>
<p>Bug#45808:http://bugs.mysql.com/bug.php?id=45808.</p>
<p>* Partitioning: The insert_id server system variable was not reset following an insert that failed on a partitioned MyISAM</p>
<p>table having an AUTO_INCREMENT column.</p>
<p>(Bug#50392:http://bugs.mysql.com/bug.php?id=50392)</p>
<p>* Partitioning: Foreign keys are not supported on partitioned tables. However, it was possible via an ALTER TABLE statement</p>
<p>to set a foreign key on a partitioned table; it was also possible to partition a table with a single foreign key.</p>
<p>(Bug#50104:http://bugs.mysql.com/bug.php?id=50104)</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</p>
<p>returned the inaccurate error message Out of memory; restart server and try again (needed 2 bytes). Now in such cases, the</p>
<p>server returns the error Failed to initialize partitions from .par file. (Bug#49161:http://bugs.mysql.com/bug.php?id=49161)</p>
<p>* Partitioning: GROUP BY queries performed poorly for some partitioned tables. This was due to the block size not being</p>
<p>set for partitioned tables, thus the keys per block was not correct, which could cause such queries to be optimized</p>
<p>incorrectly.</p>
<p>(Bug#48229:http://bugs.mysql.com/bug.php?id=48229)</p>
<p>See also Bug#37252:http://bugs.mysql.com/bug.php?id=37252.</p>
<p>* Partitioning: REPAIR TABLE failed for partitioned ARCHIVE tables. (Bug#46565:http://bugs.mysql.com/bug.php?id=46565)</p>
<p>* Replication: When using unique keys on NULL columns in row-based replication, the slave sometimes chose the wrong row</p>
<p>when performing an update. This happened because a table having a unique key on such a column could have multiple rows</p>
<p>containing NULL for the column used by the unique key, and the slave merely picked the first row containing NULL in that</p>
<p>column. (Bug#53893:http://bugs.mysql.com/bug.php?id=53893)</p>
<p>* Replication: When a CREATE TEMPORARY TABLE &#8230; SELECT statement was executed within a transaction that updated only</p>
<p>transactional engines and was later rolled back (for example, due to a deadlock) the changes&#8212;including the creation of the</p>
<p>temporary table&#8212;were not written to the binary log, which caused subsequent updates to this table to fail on the slave.</p>
<p>(Bug#53421:http://bugs.mysql.com/bug.php?id=53421)</p>
<p>* Replication: When using the statement-based logging format, statements that used CONNECTION_ID() were always kept in the</p>
<p>transaction cache; consequently, nontransactional changes that should have been flushed before the transaction were kept in</p>
<p>the transaction cache.</p>
<p>(Bug#53075:http://bugs.mysql.com/bug.php?id=53075)</p>
<p>This regression was introduced by</p>
<p>Bug#51894:http://bugs.mysql.com/bug.php?id=51894.</p>
<p>* Replication: In some cases, attempting to update a column with a value of an incompatible type resulted in a mismatch between</p>
<p>master and slave because the column value was set to its implicit default value on the master (as expected), but the</p>
<p>same column on the slave was set to NULL.</p>
<p>(Bug#52868:http://bugs.mysql.com/bug.php?id=52868)</p>
<p>* Replication: When temporary tables were in use, switching the binary logging format from STATEMENT to ROW did not take</p>
<p>effect until all temporary tables were dropped. (The existence of temporary tables should prevent switching the format only</p>
<p>from ROW to STATEMENT from taking effect, not the reverse.)</p>
<p>(Bug#52616:http://bugs.mysql.com/bug.php?id=52616)</p>
<p>* Replication: A buffer overrun in the handling of DATE column values could cause mysqlbinlog to fail when reading back logs</p>
<p>containing certain combinations of DML on a table having a DATE column followed by dropping the table.</p>
<p>(Bug#52202:http://bugs.mysql.com/bug.php?id=52202)</p>
<p>* Replication: The failure of a REVOKE statement was logged with the wrong error code, causing replication slaves to stop even</p>
<p>when the failure was expected on the master.</p>
<p>(Bug#51987:http://bugs.mysql.com/bug.php?id=51987)</p>
<p>* -laio missing from embedded libs (Bug#55215:_http://bugs.mysql.com/bug.php?id=55215_)</p>
<p>Please see the complete list of changes to MySQL 5.5.5 at <a href="http://dev.mysql.com/doc/refman/5.5/en/news-5-5-5.html">http://dev.mysql.com/doc/refman/5.5/en/news-5-5-5.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketgrid.com/blog/2010/07/mysql-community-server-5-5-5-m3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Server 5.5.2-m2</title>
		<link>http://www.marketgrid.com/blog/2010/02/mysql-server-5-5-2-m2/</link>
		<comments>http://www.marketgrid.com/blog/2010/02/mysql-server-5-5-2-m2/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 21:34:39 +0000</pubDate>
		<dc:creator>Phil Smith</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[MySQL 5.5]]></category>

		<guid isPermaLink="false">http://www.marketgrid.com/blog/?p=148</guid>
		<description><![CDATA[MySQL Server 5.5.2-m2, a new version of the  Open Source Database Management System, has been released. The &#8220;-m2&#8243; suffix tells this belongs to the second milestone according to our &#8220;milestone&#8221; release model, also called &#8220;Betony&#8221;. What Is New in MySQL 5.5 The following features have been added to MySQL 5.5: * Support for an interface [...]]]></description>
			<content:encoded><![CDATA[<p>MySQL Server 5.5.2-m2, a new version of the  Open Source Database Management System, has been released. The &#8220;-m2&#8243; suffix tells this belongs to the second milestone according to our &#8220;milestone&#8221; release model, also called &#8220;Betony&#8221;.</p>
<p>What Is New in MySQL 5.5</p>
<p>The following features have been added to MySQL 5.5:</p>
<p>* Support for an interface for semisynchronous replication:<br />
A commit performed on the master side blocks before returning<br />
to the session that performed the transaction until at least<br />
one slave acknowledges that it has received and logged the events<br />
for the transaction.<br />
Semisynchronous replication is implemented through an optional<br />
plugin component. See Section 16.2.8, &#8220;Semisynchronous Replication&#8221;</p>
<p>* Support for the SQL standard SIGNAL and RESIGNAL statements.<br />
See Section 12.8.8, &#8220;SIGNAL and RESIGNAL&#8221;.</p>
<p>* Enhancements to XML functionality, including a new LOAD XML<br />
statement.</p>
<p>* Two new types of user-defined partitioning are supported:<br />
RANGE COLUMNS partitioning is an extension to RANGE partitioning;<br />
LIST COLUMNS partitioning is an extension to LIST partitioning.<br />
Each of these extensions provides two enhancements to MySQL<br />
partitioning capabilities:</p>
<p>1. It is possible to define partitioning ranges or lists based on<br />
DATE, DATETIME, or string values (such as CHAR or VARCHAR).</p>
<p>You can also define ranges or lists based on multiple column<br />
values when partitioning tables by RANGE COLUMNS or LIST COLUMNS,<br />
respectively. Such a range or list may refer to up to 16 columns.</p>
<p>2. For tables defined using these partitioning types, partition<br />
pruning can now optimize queries with WHERE conditions that use<br />
multiple comparisons between (different) column values and<br />
constants, such as<br />
a = 10 AND b &gt; 5 or a &lt; &#8220;2005-11-25&#8243; AND b = 10 AND c = 50.</p>
<p>For more information, see Section 17.2.1, &#8220;RANGE Partitioning&#8221;,<br />
and Section 17.2.2, &#8220;LIST Partitioning&#8221;.</p>
<p>* It is now possible to delete all rows from one or more partitions<br />
of a partitioned table using the ALTER TABLE &#8230; TRUNCATE<br />
PARTITION statement. Executing the statement deletes rows without<br />
affecting the structure of the table. The partitions named in the<br />
TRUNCATE PARTITION clause do not have to be contiguous.</p>
<p>* Key caches are now supported for indexes on partitioned MyISAM<br />
tables, using the CACHE INDEX and LOAD INDEX INTO CACHE statements.<br />
In addition, a key cache can be defined for and loaded with indexes<br />
from an entire partitioned table, or for one or more partitions.<br />
In the latter case, the partitions are not required to be contiguous.</p>
<p>* The TO_SECONDS() function is added. This function converts a date or<br />
datetime expression to a number of seconds since the year 0. You may<br />
use this function in partitioning expressions, and partition pruning<br />
is supported for table defined using such expressions.</p>
<p>The following constructs are deprecated and will be removed in a future MySQL release. Where alternatives are shown, applications should be updated to use them.</p>
<p>* The table_type system variable (use storage_engine).</p>
<p>The TYPE table option to specify the storage engine for<br />
CREATE TABLE or ALTER TABLE (use ENGINE).</p>
<p>The SHOW TABLE TYPES SQL statement (use SHOW ENGINES).</p>
<p>* The log_bin_trust_routine_creators variable<br />
(use log_bin_trust_function_creators).</p>
<p>* TIMESTAMP(N): The ability to specify a display width of N<br />
(use without N).</p>
<p>* The SHOW INNODB STATUS and SHOW MUTEX STATUS SQL statements<br />
(use SHOW ENGINE INNODB STATUS for both of these).</p>
<p>* The LOAD TABLE &#8230; FROM MASTER and LOAD DATA FROM MASTER SQL<br />
statements.</p>
<p>* The SHOW PLUGIN SQL statement (use SHOW PLUGINS).</p>
<p>* The BACKUP TABLE and the RESTORE TABLE SQL statements.</p>
<p>* The &#8211;master-xxx server options to set replication parameters<br />
(use the CHANGE MASTER TO statement instead):<br />
&#8211;master-host, &#8211;master-user, &#8211;master-password, &#8211;master-port,<br />
&#8211;master-connect-retry, &#8211;master-ssl, &#8211;master-ssl-ca,<br />
&#8211;master-ssl-capath, &#8211;master-ssl-cert, &#8211;master-ssl-cipher,<br />
&#8211;master-ssl-key.</p>
<p>&#8212;&#8211;</p>
<p>Changes in MySQL 5.5.2:</p>
<p>InnoDB Plugin Notes:</p>
<p>* This release includes InnoDB Plugin 1.0.6. This version is<br />
considered of Release Candidate (RC) quality.</p>
<p>Functionality added or changed:</p>
<p>* Replication: Introduced the<br />
&#8211;binlog-direct-non-transactional-updates server option. This<br />
option causes updates using the statement-based logging format<br />
to tables using non-transactional engines to be written<br />
directly to the binary log, rather than to the transaction<br />
cache.<br />
Before using this option, be certain that you have no<br />
dependencies between transactional and non-transactional<br />
tables. A statement that both selects from an InnoDB table and<br />
inserts into a MyISAM table is an example of such a<br />
dependency. For more information, see Section 16.1.3.4,<br />
&#8220;Binary Log Options and Variables.&#8221;<br />
(Bug#46364: http://bugs.mysql.com/bug.php?id=46364)<br />
See also Bug#28976: http://bugs.mysql.com/bug.php?id=28976,<br />
Bug#40116: http://bugs.mysql.com/bug.php?id=40116.</p>
<p>Bugs fixed:</p>
<p>* Performance: The method for comparing INFORMATION_SCHEMA names<br />
and database names was nonoptimal and an improvement was made:<br />
When the database name length is already known, a length check<br />
is made first and content comparison skipped if the lengths<br />
are unequal.<br />
(Bug#49501: http://bugs.mysql.com/bug.php?id=49501)</p>
<p>* Performance: The MD5() and SHA1() functions had excessive<br />
overhead for short strings.<br />
(Bug#49491: http://bugs.mysql.com/bug.php?id=49491)</p>
<p>* Security Fix: For servers built with yaSSL, a preauthorization<br />
buffer overflow could cause memory corruption or a server<br />
crash. We thank Evgeny Legerov from Intevydis for providing us<br />
with a proof-of-concept script that allowed us to reproduce<br />
this bug. (Bug#50227: http://bugs.mysql.com/bug.php?id=50227,<br />
CVE-2009-4484<br />
(http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4484))</p>
<p>* Incompatible Change: In plugin.h, the MYSQL_REPLICATION_PLUGIN<br />
symbol was out of synchrony with its value in MySQL 6.0<br />
because the lower-valued MYSQL_AUDIT_PLUGIN was not present.<br />
To correct this, MYSQL_AUDIT_PLUGIN has been added in MySQL<br />
5.5, changing the value of MYSQL_REPLICATION_PLUGIN from 5 to</p>
<p>6. Attempts to load the audit plugin produce an error occurs<br />
because only the MYSQL_AUDIT_PLUGIN symbol was added, not the<br />
audit plugin itself. This error will go away when the audit<br />
plugin is added to MySQL 5.5. Replication plugins from earlier<br />
5.5.x releases must be recompiled against the current release<br />
before they will work with the current release.<br />
(Bug#49894: http://bugs.mysql.com/bug.php?id=49894)</p>
<p>* Important Change: Replication: The RAND() function is now<br />
marked as unsafe for statement-based replication. Using this<br />
function now generates a warning when binlog_format=STATEMENT<br />
and causes the the format to switch to row-based logging when<br />
binlog_format=MIXED.<br />
This change is being introduced because, when RAND() was<br />
logged in statement mode, the seed was also written to the<br />
binary log, so the replication slave generated the same<br />
sequence of random numbers as was generated on the master.<br />
While this could make replication work in some cases, the<br />
order of affected rows was still not guaranteed when this<br />
function was used in statements that could update multiple<br />
rows, such as UPDATE or INSERT &#8230; SELECT; if the master and<br />
the slave retrieved rows in different order, they began to<br />
diverge. (Bug#49222: http://bugs.mysql.com/bug.php?id=49222)</p>
<p>* Partitioning: When used on partitioned tables, the<br />
records_in_range handler call checked all partitions, rather<br />
than the unpruned partitions only.<br />
(Bug#48846: http://bugs.mysql.com/bug.php?id=48846)<br />
See also Bug#37252: http://bugs.mysql.com/bug.php?id=37252,<br />
Bug#47261: http://bugs.mysql.com/bug.php?id=47261.</p>
<p>* Partitioning: When an ALTER TABLE &#8230; REORGANIZE PARTITION<br />
statement on an InnoDB table failed due to<br />
innodb_lock_wait_timeout expiring while waiting for a lock,<br />
InnoDB did not clean up any temporary files or tables which it<br />
had created. Attempting to reissue the ALTER TABLE statement<br />
following the timeout could lead to storage engine errors, or<br />
possibly a crash of the server.<br />
(Bug#47343: http://bugs.mysql.com/bug.php?id=47343)</p>
<p>* Replication: FLUSH LOGS could in some circumstances crash the<br />
server. This occurred because the I/O thread could<br />
concurrently access the relay log I/O cache while another<br />
thread was performing the FLUSH LOGS, which closes and reopens<br />
the relay log and, while doing so, initializes (or<br />
re-initializes) its I/O cache. This could cause problems if<br />
some other thread (in this case, the I/O thread) is accessing<br />
it at the same time.<br />
Now the thread performing the FLUSH LOGS takes a lock on the<br />
relay log before actually flushing it.<br />
(Bug#50364: http://bugs.mysql.com/bug.php?id=50364)</p>
<p>* Replication: With semisynchronous replication, memory<br />
allocated for handling transactions could be freed while still<br />
in use, resulting in a server crash.<br />
(Bug#50157: http://bugs.mysql.com/bug.php?id=50157)</p>
<p>* Replication: In some cases, inserting into a table with many<br />
columns could cause the binary log to become corrupted.<br />
(Bug#50018: http://bugs.mysql.com/bug.php?id=50018)<br />
See also Bug#42749: http://bugs.mysql.com/bug.php?id=42749.</p>
<p>* Replication: When using row-based replication, setting a BIT<br />
or CHAR column of a MyISAM table to NULL, then trying to<br />
delete from the table, caused the slave to fail with the error<br />
Can&#8217;t find record in table.<br />
(Bug#49481: http://bugs.mysql.com/bug.php?id=49481,<br />
Bug#49482: http://bugs.mysql.com/bug.php?id=49482)</p>
<p>* Replication: A LOAD DATA INFILE statement that loaded data<br />
into a table having a column name that had to be escaped (such<br />
as `key` INT) caused replication to fail when logging in mixed<br />
or statement mode. In such cases, the master wrote the LOAD<br />
DATA event into the binary log without escaping the column<br />
names. (Bug#49479: http://bugs.mysql.com/bug.php?id=49479)<br />
See also Bug#47927: http://bugs.mysql.com/bug.php?id=47927.</p>
<p>* Replication: When logging in row-based mode, DDL statements<br />
are actually logged as statements; however, statements that<br />
affected temporary tables and followed DDL statements failed<br />
to reset the binary log format to ROW, with the result that<br />
these statements were logged using the statement-based format.<br />
Now the state of binlog_format is restored after a DDL<br />
statement has been written to the binary log.<br />
(Bug#49132: http://bugs.mysql.com/bug.php?id=49132)</p>
<p>* Replication: Spatial data types caused row-based replication<br />
to crash. (Bug#48776: http://bugs.mysql.com/bug.php?id=48776)</p>
<p>* Replication: When using row-based logging, the statement<br />
CREATE TABLE t IF NOT EXIST &#8230; SELECT was logged as CREATE<br />
TEMPORARY TABLE t IF NOT EXIST &#8230; SELECT when t already<br />
existed as a temporary table. This was caused by the fact that<br />
the temporary table was opened and the results of the SELECT<br />
were inserted into it when a temporary table existed and had<br />
the same name.<br />
Now, when this statement is executed, t is created as a base<br />
table, the results of the SELECT are inserted into it &#8212; even<br />
if there already exists a temporary table having the same name<br />
&#8212; and the statement is logged correctly.<br />
(Bug#47418: http://bugs.mysql.com/bug.php?id=47418)<br />
See also Bug#47442: http://bugs.mysql.com/bug.php?id=47442.</p>
<p>* Replication: Due to a change in the size of event<br />
representations in the binary log, when replicating from a<br />
MySQL 4.1 master to a slave running MySQL 5.0.60 or later, the<br />
START SLAVE UNTIL statement did not function correctly,<br />
stopping at the wrong position in the log. Now the slave<br />
detects that the master is using the older version of the<br />
binary log format, and corrects for the difference in event<br />
size, so that the slave stops in the correct position.<br />
(Bug#47142: http://bugs.mysql.com/bug.php?id=47142)</p>
<p>* Replication: Manually removing entries from the binary log<br />
index file on a replication master could cause the server to<br />
repeatedly send the same binary log file to slaves.<br />
(Bug#28421: http://bugs.mysql.com/bug.php?id=28421)</p>
<p>* The SSL certificates in the test suite were about to expire.<br />
They have been updated with expiration dates in the year 2015.<br />
(Bug#50642: http://bugs.mysql.com/bug.php?id=50642)</p>
<p>* SPATIAL indexes were allowed on columns with non-spatial data<br />
types, resulting in a server crash for subsequent table<br />
inserts. (Bug#50574: http://bugs.mysql.com/bug.php?id=50574)</p>
<p>* Index prefixes could be specified with a length greater than<br />
the associated column, resulting in a server crash for<br />
subsequent table inserts.<br />
(Bug#50542: http://bugs.mysql.com/bug.php?id=50542)</p>
<p>* Use of loose index scan optimization for an aggregate function<br />
with DISTINCT (for example, COUNT(DISTINCT)) could produce<br />
incorrect results.<br />
(Bug#50539: http://bugs.mysql.com/bug.php?id=50539)</p>
<p>* The printstack function does not exist on Solaris 8 or<br />
earlier, which would lead to a compilation failure.<br />
(Bug#50409: http://bugs.mysql.com/bug.php?id=50409)</p>
<p>* A user could see tables in INFORMATION_SCHEMA.TABLES without<br />
appropriate privileges for them.<br />
(Bug#50276: http://bugs.mysql.com/bug.php?id=50276)</p>
<p>* Debug output for join structures was garbled.<br />
(Bug#50271: http://bugs.mysql.com/bug.php?id=50271)</p>
<p>* Within a stored routine, selecting the result of CONCAT_WS()<br />
with a routine parameter argument into a user variable could<br />
return incorrect results.<br />
(Bug#50096: http://bugs.mysql.com/bug.php?id=50096)</p>
<p>* The filesort sorting method applied to a CHAR(0) column could<br />
lead to a server crash.<br />
(Bug#49897: http://bugs.mysql.com/bug.php?id=49897)</p>
<p>* EXPLAIN EXTENDED UNION &#8230; ORDER BY caused a crash when the<br />
ORDER BY referred to a nonconstant or full-text function or a<br />
subquery. (Bug#49734: http://bugs.mysql.com/bug.php?id=49734)</p>
<p>* Some prepared statements could raise an assertion when<br />
re-executed.<br />
(Bug#49570: http://bugs.mysql.com/bug.php?id=49570)</p>
<p>* sql_buffer_result had an effect on non-SELECT statements,<br />
contrary to the documentation.<br />
(Bug#49552: http://bugs.mysql.com/bug.php?id=49552)</p>
<p>* In some cases a subquery need not be evaluated because it<br />
returns only aggregate values that can be calculated from<br />
table metadata. This sometimes was not handled by the<br />
enclosing subquery, resulting in a server crash.<br />
(Bug#49512: http://bugs.mysql.com/bug.php?id=49512)</p>
<p>* Mixing full-text searches and row expressions caused a crash.<br />
(Bug#49445: http://bugs.mysql.com/bug.php?id=49445)</p>
<p>* Creating or dropping a table with 1023 transactions active<br />
caused an assertion failure.<br />
(Bug#49238: http://bugs.mysql.com/bug.php?id=49238)</p>
<p>* mysql-test-run.pl now recognizes the MTR_TESTCASE_TIMEOUT,<br />
MTR_SUITE_TIMEOUT, MTR_SHUTDOWN_TIMEOUT, and MTR_START_TIMEOUT<br />
environment variables. If they are set, their values are used<br />
to set the &#8211;testcase-timeout, &#8211;suite-timeout,<br />
&#8211;shutdown-timeout, and &#8211;start-timeout options, respectively.<br />
(Bug#49210: http://bugs.mysql.com/bug.php?id=49210)</p>
<p>* Several strmake() calls had an incorrect length argument (too<br />
large by one).<br />
(Bug#48983: http://bugs.mysql.com/bug.php?id=48983)</p>
<p>* On Fedora 12, strmov() did not guarantee correct operation for<br />
overlapping source and destination buffer. Calls were fixed to<br />
use an overlap-safe version instead.<br />
(Bug#48866: http://bugs.mysql.com/bug.php?id=48866)</p>
<p>* With one thread waiting for a lock on a table, if another<br />
thread dropped the table and created a new table with the same<br />
name and structure, the first thread would not notice that the<br />
table had been re-created and would try to used cached<br />
metadata that belonged to the old table but had been freed.<br />
(Bug#48157: http://bugs.mysql.com/bug.php?id=48157)</p>
<p>* If an invocation of a stored procedure failed in the<br />
table-open stage, subsequent invocations that did not fail in<br />
that stage could cause a crash.<br />
(Bug#47649: http://bugs.mysql.com/bug.php?id=47649)</p>
<p>* A crash occurred when a user variable that was assigned to a<br />
subquery result was used as a result field in a SELECT<br />
statement with aggregate functions.<br />
(Bug#47371: http://bugs.mysql.com/bug.php?id=47371)</p>
<p>* When the mysql client was invoked with the &#8211;vertical option,<br />
it ignored the &#8211;skip-column-names option.<br />
(Bug#47147: http://bugs.mysql.com/bug.php?id=47147)</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>* A race condition on the privilege hash tables allowed one<br />
thread to try to delete elements that had already been deleted<br />
by another thread. A consequence was that SET PASSWORD or<br />
FLUSH PRIVILEGES could cause a crash.<br />
(Bug#35589: http://bugs.mysql.com/bug.php?id=35589,<br />
Bug#35591: http://bugs.mysql.com/bug.php?id=35591)</p>
<p>* 1) In rare cases, if a thread was interrupted during a FLUSH<br />
PRIVILEGES operation, a debug assertion occurred later due to<br />
improper diagnostic area setup. 2) A KILL operation could<br />
cause a console error message referring to a diagnostic area<br />
state without first ensuring that the state existed.<br />
(Bug#33982: http://bugs.mysql.com/bug.php?id=33982)</p>
<p>* ALTER TABLE with both DROP COLUMN and ADD COLUMN clauses could<br />
crash or lock up the server.<br />
(Bug#31145: http://bugs.mysql.com/bug.php?id=31145)</p>
<p>* The Table_locks_waited waited variable was not incremented in<br />
the cases that a lock had to be waited for but the waiting<br />
thread was killed or the request was aborted.<br />
(Bug#30331: http://bugs.mysql.com/bug.php?id=30331)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketgrid.com/blog/2010/02/mysql-server-5-5-2-m2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL 5.5.1-m2</title>
		<link>http://www.marketgrid.com/blog/2010/01/mysql-5-5-1-m2/</link>
		<comments>http://www.marketgrid.com/blog/2010/01/mysql-5-5-1-m2/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 17:28:29 +0000</pubDate>
		<dc:creator>Phil Smith</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[MySQL 5.5]]></category>

		<guid isPermaLink="false">http://www.marketgrid.com/blog/?p=69</guid>
		<description><![CDATA[MySQL Server 5.5.1-m2, a new version of the popular Open Source Database Management System, has been released. The &#8220;-m2&#8243; suffix tells this belongs to the second milestone according to our &#8220;milestone&#8221; release model, also called &#8220;Betony&#8221;. You can read more about the release model and the planned milestones at http://forge.mysql.com/wiki/Development_Cycle The new features in this [...]]]></description>
			<content:encoded><![CDATA[<p>MySQL Server 5.5.1-m2, a new version of the popular Open Source Database Management System, has been released.</p>
<p>The &#8220;-m2&#8243; suffix tells this belongs to the second milestone according to our &#8220;milestone&#8221; release model, also called &#8220;Betony&#8221;.<br />
You can read more about the release model and the planned milestones at <a href="http://forge.mysql.com/wiki/Development_Cycle">http://forge.mysql.com/wiki/Development_Cycle</a></p>
<p>The new features in this release are of beta quality. As with any other pre-production release, caution should be taken when installing on<br />
production level systems or systems with critical data.</p>
<p>MySQL 5.5 is based on MySQL 5.4, which won&#8217;t get any further updates. So MySQL 5.5 includes several high-impact changes to address scalability<br />
and performance issues in MySQL Server. These changes exploit advances in hardware and CPU design and enable better utilization of existing<br />
hardware.</p>
<p>For an overview of what&#8217;s new in MySQL 5.5, please see the section &#8220;What Is New in MySQL 5.5&#8243; below, or view it online at <a href="http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html">http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html</a></p>
<p>For information on installing MySQL 5.5.1-m2 on new servers, please see the MySQL installation documentation at <a href="http://dev.mysql.com/doc/refman/5.5/en/installing.html">http://dev.mysql.com/doc/refman/5.5/en/installing.html</a></p>
<p>For upgrading from previous MySQL releases, please see the important upgrade considerations at <a href="http://dev.mysql.com/doc/refman/5.5/en/upgrading-from-previous-series.html">http://dev.mysql.com/doc/refman/5.5/en/upgrading-from-previous-series.html</a></p>
<p>MySQL Server is available in source and binary form for a number of platforms from our download pages at <a href="http://dev.mysql.com/downloads/">http://dev.mysql.com/downloads/</a></p>
<p>The list of all &#8220;Bugs Fixed&#8221; may also be viewed online at <a href="http://dev.mysql.com/doc/refman/5.5/en/news-5-5-1.html">http://dev.mysql.com/doc/refman/5.5/en/news-5-5-1.html</a></p>
<p>When the publishing process for 5.5.1-m2 was already running, the MySQL team was informed about a security problem in the SSL connect area (a possibility to crash the server).</p>
<p>The problem is caused by a buffer overflow in the YaSSL library, MySQL Servers using OpenSSL are not affected. It can only occur when SSL (using YaSSL) is enabled.</p>
<p>This problem is still under detailed investigation with the various versions, configurations, and platforms.<br />
When that has finished, the problem will be fixed ASAP, and new binaries for the affected versions will be released.</p>
<p>                  &#8212;&#8211;</p>
<p>What Is New in MySQL 5.5</p>
<p>The following features have been added to MySQL 5.5:</p>
<p> * Support for an interface for semisynchronous replication:<br />
   A commit performed on the master side blocks before returning<br />
   to the session that performed the transaction until at least<br />
   one slave acknowledges that it has received and logged the events<br />
   for the transaction.<br />
   Semisynchronous replication is implemented through an optional<br />
   plugin component. See Section 16.2.8, &#8220;Semisynchronous Replication&#8221;</p>
<p> * Support for the SQL standard SIGNAL and RESIGNAL statements.<br />
   See Section 12.8.8, &#8220;SIGNAL and RESIGNAL&#8221;.</p>
<p> * Enhancements to XML functionality, including a new LOAD XML<br />
   statement.</p>
<p> * Two new types of user-defined partitioning:<br />
   RANGE COLUMNS partitioning is an extension to RANGE partitioning;<br />
   LIST COLUMNS partitioning is an extension to LIST partitioning.<br />
   Each of these extensions provides two enhancements to MySQL<br />
   partitioning capabilities:</p>
<p>   1. It is possible to define partitioning ranges or lists based on<br />
      DATE, DATETIME, or string values (such as CHAR or VARCHAR).</p>
<p>      You can also define ranges or lists based on multiple column<br />
      values when partitioning tables by RANGE COLUMNS or LIST COLUMNS,<br />
      respectively. Such a range or list may refer to up to 16 columns.</p>
<p>   2. For tables defined using these partitioning types, partition<br />
      pruning can now optimize queries with WHERE conditions that use<br />
      multiple comparisons between (different) column values and<br />
      constants, such as<br />
          a = 10 AND b &gt; 5 or a &lt; &#8220;2005-11-25&#8243; AND b = 10 AND c = 50.</p>
<p>      For more information, see Section 17.2.1, &#8220;RANGE Partitioning&#8221;,<br />
      and Section 17.2.2, &#8220;LIST Partitioning&#8221;.</p>
<p> * It is now possible to delete all rows from one or more partitions<br />
   of a partitioned table using the ALTER TABLE &#8230; TRUNCATE<br />
   PARTITION statement. Executing the statement deletes rows without<br />
   affecting the structure of the table. The partitions named in the<br />
   TRUNCATE PARTITION clause do not have to be contiguous.</p>
<p> * Key caches are now supported for indexes on partitioned MyISAM<br />
   tables, using the CACHE INDEX and LOAD INDEX INTO CACHE statements.<br />
   In addition, a key cache can be defined for and loaded with indexes<br />
   from an entire partitioned table, or for one or more partitions.<br />
   In the latter case, the partitions are not required to be contiguous.</p>
<p> * The TO_SECONDS() function is added. This function converts a date or<br />
   datetime expression to a number of seconds since the year 0. You may<br />
   use this function in partitioning expressions, and partition pruning<br />
   is supported for table defined using such expressions.</p>
<p>The following constructs are deprecated and will be removed in a future<br />
MySQL release. Where alternatives are shown, applications should be<br />
updated to use them.</p>
<p> * The table_type system variable (use storage_engine).</p>
<p>   The TYPE table option to specify the storage engine for<br />
   CREATE TABLE or ALTER TABLE (use ENGINE).</p>
<p>   The SHOW TABLE TYPES SQL statement (use SHOW ENGINES).</p>
<p> * The log_bin_trust_routine_creators variable<br />
   (use log_bin_trust_function_creators).</p>
<p> * TIMESTAMP(N): The ability to specify a display width of N<br />
   (use without N).</p>
<p> * The SHOW INNODB STATUS and SHOW MUTEX STATUS SQL statements<br />
   (use SHOW ENGINE INNODB STATUS for both of these).</p>
<p> * The LOAD TABLE &#8230; FROM MASTER and LOAD DATA FROM MASTER SQL<br />
   statements.</p>
<p> * The SHOW PLUGIN SQL statement (use SHOW PLUGINS).</p>
<p> * The BACKUP TABLE and the RESTORE TABLE SQL statements.</p>
<p> * The &#8211;master-xxx server options to set replication parameters<br />
   (use the CHANGE MASTER TO statement instead):<br />
   &#8211;master-host, &#8211;master-user, &#8211;master-password, &#8211;master-port,<br />
   &#8211;master-connect-retry, &#8211;master-ssl, &#8211;master-ssl-ca,<br />
   &#8211;master-ssl-capath, &#8211;master-ssl-cert, &#8211;master-ssl-cipher,<br />
   &#8211;master-ssl-key.</p>
<p>                  &#8212;&#8211;</p>
<p>Changes in MySQL 5.5.1-m2:</p>
<p>RPM Notes:</p>
<p>  * The version information in RPM package files has been changed:<br />
       + The &#8220;level&#8221; field of a MySQL version number is now also<br />
         included in the RPM version and in the package file name.<br />
       + The RPM &#8220;release&#8221; value now starts to count from 1, not 0.<br />
    For example, the generic x86 server RPM file of 5.5.1-m2 is<br />
    named MySQL-server-5.5.1_m2-1.glibc23.i386.rpm. This improves<br />
    consistency with other formats that also include the level<br />
    (for this version: &#8220;m2&#8243;) in the file name. For example, the<br />
    tar.gz filename is mysql-5.5.1-m2-linux-i686-glibc23.tar.gz.<br />
    The different separator, underscore &#8216;_&#8217; for RPM, is required<br />
    by the syntax of RPM.</p>
<p>InnoDB Plugin Notes:</p>
<p>  * InnoDB Plugin has been upgraded to version 1.0.6. This version<br />
    is considered of Release Candidate (RC) quality. The InnoDB<br />
    Plugin Change History<br />
    (<a href="http://www.innodb.com/doc/innodb_plugin-1.0/innodb-changes.ht">http://www.innodb.com/doc/innodb_plugin-1.0/innodb-changes.ht</a><br />
    ml) may contain information in addition to those changes<br />
    reported here.</p>
<p>Functionality added or changed:</p>
<p>  * Partitioning: The UNIX_TIMESTAMP() function is now supported<br />
    in partitioning expressions using TIMESTAMP columns. For<br />
    example, it now possible to create a partitioned table such as<br />
    this one:<br />
        CREATE TABLE t (c TIMESTAMP)<br />
        PARTITION BY RANGE ( UNIX_TIMESTAMP(c) ) (<br />
            PARTITION p0 VALUES LESS THAN (631148400),<br />
            PARTITION p1 VALUES LESS THAN (946681200),<br />
            PARTITION p2 VALUES LESS THAN (MAXVALUE)<br />
        );<br />
    All other expressions involving TIMESTAMP values are now<br />
    rejected with an error when attempting to create a new<br />
    partitioned table or to alter an existing partitioned table.<br />
    When accessing an existing partitioned table having a<br />
    timezone-dependent partitioning function (where the table was<br />
    using a previous version of MySQL), a warning rather than an<br />
    error is issued. In such cases, you should fix the table. One<br />
    way of doing this is to alter the table&#8217;s partitioning<br />
    expression so that it uses UNIX_TIMESTAMP().<br />
    (Bug#42849: <a href="http://bugs.mysql.com/bug.php?id=42849">http://bugs.mysql.com/bug.php?id=42849</a>)</p>
<p>Bugs fixed:</p>
<p>  * Performance: When the query cache is fragmented, the size of<br />
    the free block lists in the memory bins grows, which causes<br />
    query cache invalidation to become slow. There is now a 50ms<br />
    timeout for a SELECT statement waiting for the query cache<br />
    lock. If the timeout expires, the statement executes without<br />
    using the query cache.<br />
    (Bug#39253: <a href="http://bugs.mysql.com/bug.php?id=39253">http://bugs.mysql.com/bug.php?id=39253</a>)<br />
    See also Bug#21074: <a href="http://bugs.mysql.com/bug.php?id=21074">http://bugs.mysql.com/bug.php?id=21074</a>.</p>
<p>  * Important Change: Replication: The following functions have<br />
    been marked unsafe for statement-based replication:<br />
       + GET_LOCK()<br />
       + IS_FREE_LOCK()<br />
       + IS_USED_LOCK()<br />
       + MASTER_POS_WAIT()<br />
       + RELEASE_LOCK()<br />
       + SLEEP()<br />
       + SYSDATE()<br />
       + VERSION()</p>
<p>    None of the functions just listed are guaranteed to replicate<br />
    correctly when using the statement-based format, because they<br />
    can produce different results on the master and the slave. The<br />
    use of any of these functions while binlog_format is set to<br />
    STATEMENT is logged with the warning, Statement is not safe to<br />
    log in statement format. When binlog_format is set to MIXED,<br />
    the binary logging format is automatically switched to the<br />
    row-based format whenever one of these functions is used.<br />
    (Bug#47995: <a href="http://bugs.mysql.com/bug.php?id=47995">http://bugs.mysql.com/bug.php?id=47995</a>)</p>
<p>  * Partitioning: When SHOW CREATE TABLE was invoked for a table<br />
    that had been created using the COLUMNS keyword or the<br />
    TO_SECONDS() function, the output contained the wrong MySQL<br />
    version number in the conditional comments.<br />
    (Bug#49591: <a href="http://bugs.mysql.com/bug.php?id=49591">http://bugs.mysql.com/bug.php?id=49591</a>)</p>
<p>  * Partitioning: A query that searched on a ucs2 column failed if<br />
    the table was partitioned.<br />
    (Bug#48737: <a href="http://bugs.mysql.com/bug.php?id=48737">http://bugs.mysql.com/bug.php?id=48737</a>)</p>
<p>  * Partitioning: In some cases, it was not possible to add a new<br />
    column to a table that had subpartitions.<br />
    (Bug#48276: <a href="http://bugs.mysql.com/bug.php?id=48276">http://bugs.mysql.com/bug.php?id=48276</a>)</p>
<p>  * Partitioning: SELECT COUNT(*) from a partitioned table failed<br />
    when using the ONLY_FULL_GROUP_BY SQL mode.<br />
    (Bug#46923: <a href="http://bugs.mysql.com/bug.php?id=46923">http://bugs.mysql.com/bug.php?id=46923</a>)<br />
    This regression was introduced by<br />
    Bug#45807: <a href="http://bugs.mysql.com/bug.php?id=45807">http://bugs.mysql.com/bug.php?id=45807</a>.</p>
<p>  * Partitioning: SUBPARTITION BY KEY failed with DEFAULT<br />
    CHARSET=utf8.<br />
    (Bug#45904: <a href="http://bugs.mysql.com/bug.php?id=45904">http://bugs.mysql.com/bug.php?id=45904</a>)</p>
<p>  * Replication: When using row-based logging, TRUNCATE TABLE was<br />
    written to the binary log even if the affected table was<br />
    temporary, causing replication to fail.<br />
    (Bug#48350: <a href="http://bugs.mysql.com/bug.php?id=48350">http://bugs.mysql.com/bug.php?id=48350</a>)</p>
<p>  * Cluster Replication: When expire_logs_days was set, the thread<br />
    performing the purge of the log files could deadlock, causing<br />
    all binary log operations to stop.<br />
    (Bug#49536: <a href="http://bugs.mysql.com/bug.php?id=49536">http://bugs.mysql.com/bug.php?id=49536</a>)</p>
<p>  * For debug builds on Windows, SAFEMALLOC was defined<br />
    inconsistently, leading to mismatches when using my_malloc()<br />
    and my_free().<br />
    (Bug#49811: <a href="http://bugs.mysql.com/bug.php?id=49811">http://bugs.mysql.com/bug.php?id=49811</a>)</p>
<p>  * The mysql.server script had incorrect shutdown logic.<br />
    (Bug#49772: <a href="http://bugs.mysql.com/bug.php?id=49772">http://bugs.mysql.com/bug.php?id=49772</a>)</p>
<p>  * The result of comparison between nullable BIGINT and INT<br />
    columns was inconsistent.<br />
    (Bug#49517: <a href="http://bugs.mysql.com/bug.php?id=49517">http://bugs.mysql.com/bug.php?id=49517</a>)</p>
<p>  * A Valgrind error in make_cond_for_table_from_pred() was<br />
    corrected. Thanks to Sergey Petrunya for the patch to fix this<br />
    bug. (Bug#49506: <a href="http://bugs.mysql.com/bug.php?id=49506">http://bugs.mysql.com/bug.php?id=49506</a>)</p>
<p>  * When compiling on Windows, an error in the CMake definitions<br />
    for InnoDB would cause the engine to be built incorrectly.<br />
    (Bug#49502: <a href="http://bugs.mysql.com/bug.php?id=49502">http://bugs.mysql.com/bug.php?id=49502</a>)</p>
<p>  * Incorrect cache initialization prevented storage of converted<br />
    constant values and could produce incorrect comparison<br />
    results. (Bug#49489: <a href="http://bugs.mysql.com/bug.php?id=49489">http://bugs.mysql.com/bug.php?id=49489</a>)</p>
<p>  * Comparisons involving YEAR values could produce incorrect<br />
    results. (Bug#49480: <a href="http://bugs.mysql.com/bug.php?id=49480">http://bugs.mysql.com/bug.php?id=49480</a>)<br />
    See also Bug#43668: <a href="http://bugs.mysql.com/bug.php?id=43668">http://bugs.mysql.com/bug.php?id=43668</a>.</p>
<p>  * Valgrind warnings for CHECKSUM TABLE were corrected.<br />
    (Bug#49465: <a href="http://bugs.mysql.com/bug.php?id=49465">http://bugs.mysql.com/bug.php?id=49465</a>)</p>
<p>  * Specifying an index algorithm (such as BTREE) for SPATIAL or<br />
    FULLTEXT indexes caused a server crash. These index types do<br />
    not support algorithm specification, and it is now disallowed<br />
    to do so. (Bug#49250: <a href="http://bugs.mysql.com/bug.php?id=49250">http://bugs.mysql.com/bug.php?id=49250</a>)</p>
<p>  * The optimizer sometimes incorrectly handled conditions of the<br />
    form WHERE col_name=&#8217;const1&#8242; AND col_name=&#8217;const2&#8242;.<br />
    (Bug#49199: <a href="http://bugs.mysql.com/bug.php?id=49199">http://bugs.mysql.com/bug.php?id=49199</a>)</p>
<p>  * Execution of DECODE() and ENCODE() could be inefficient<br />
    because multiple executions within a single statement<br />
    reinitialized the random generator multiple times even with<br />
    constant parameters.<br />
    (Bug#49141: <a href="http://bugs.mysql.com/bug.php?id=49141">http://bugs.mysql.com/bug.php?id=49141</a>)</p>
<p>  * The LIKE operator did not work correctly when using an index<br />
    for a ucs2 column.<br />
    (Bug#49028: <a href="http://bugs.mysql.com/bug.php?id=49028">http://bugs.mysql.com/bug.php?id=49028</a>)</p>
<p>  * check_key_in_view() was missing a DBUG_RETURN in one code<br />
    branch, causing a crash in debug builds.<br />
    (Bug#48995: <a href="http://bugs.mysql.com/bug.php?id=48995">http://bugs.mysql.com/bug.php?id=48995</a>)</p>
<p>  * If a query involving a table was terminated with KILL, a<br />
    subsequent SHOW CREATE TABLE for that table caused a server<br />
    crash. (Bug#48985: <a href="http://bugs.mysql.com/bug.php?id=48985">http://bugs.mysql.com/bug.php?id=48985</a>)</p>
<p>  * Privileges for stored routines were ignored for mixed-case<br />
    routine names.<br />
    (Bug#48872: <a href="http://bugs.mysql.com/bug.php?id=48872">http://bugs.mysql.com/bug.php?id=48872</a>)<br />
    See also Bug#41049: <a href="http://bugs.mysql.com/bug.php?id=41049">http://bugs.mysql.com/bug.php?id=41049</a>.</p>
<p>  * Concurrent ALTER TABLE operations on an InnoDB table could<br />
    raise an assertion.<br />
    (Bug#48782: <a href="http://bugs.mysql.com/bug.php?id=48782">http://bugs.mysql.com/bug.php?id=48782</a>)</p>
<p>  * During query execution, ranges could be merged incorrectly for<br />
    OR operations and return an incorrect result.<br />
    (Bug#48665: <a href="http://bugs.mysql.com/bug.php?id=48665">http://bugs.mysql.com/bug.php?id=48665</a>)</p>
<p>  * The InnoDB Table Monitor reported the FLOAT and DOUBLE data<br />
    types incorrectly.<br />
    (Bug#48526: <a href="http://bugs.mysql.com/bug.php?id=48526">http://bugs.mysql.com/bug.php?id=48526</a>)</p>
<p>  * With row-based binary logging, the server crashed for<br />
    statements of the form CREATE TABLE IF NOT EXISTS<br />
    existing_view LIKE temporary_table. This occurred because the<br />
    server handled the existing view as a table when logging the<br />
    statement. (Bug#48506: <a href="http://bugs.mysql.com/bug.php?id=48506">http://bugs.mysql.com/bug.php?id=48506</a>)</p>
<p>  * The error message for ER_UPDATE_INFO was subject to buffer<br />
    overflow or truncation.<br />
    (Bug#48500: <a href="http://bugs.mysql.com/bug.php?id=48500">http://bugs.mysql.com/bug.php?id=48500</a>)</p>
<p>  * DISTINCT was ignored for queries with GROUP BY WITH ROLLUP and<br />
    only const tables.<br />
    (Bug#48475: <a href="http://bugs.mysql.com/bug.php?id=48475">http://bugs.mysql.com/bug.php?id=48475</a>)</p>
<p>  * Loose index scan was inappropriately chosen for some WHERE<br />
    conditions.<br />
    (Bug#48472: <a href="http://bugs.mysql.com/bug.php?id=48472">http://bugs.mysql.com/bug.php?id=48472</a>)</p>
<p>  * If the InnoDB tablespace was configured with too small a<br />
    value, the server could crash and corrupt the tablespace.<br />
    (Bug#48469: <a href="http://bugs.mysql.com/bug.php?id=48469">http://bugs.mysql.com/bug.php?id=48469</a>)</p>
<p>  * Parts of the range optimizer could be initialized incorrectly,<br />
    resulting in Valgrind errors.<br />
    (Bug#48459: <a href="http://bugs.mysql.com/bug.php?id=48459">http://bugs.mysql.com/bug.php?id=48459</a>)</p>
<p>  * A bad typecast could cause query execution to allocate large<br />
    amounts of memory.<br />
    (Bug#48458: <a href="http://bugs.mysql.com/bug.php?id=48458">http://bugs.mysql.com/bug.php?id=48458</a>)</p>
<p>  * On Windows, InnoDB could not be built as a statically linked<br />
    library. (Bug#48317: <a href="http://bugs.mysql.com/bug.php?id=48317">http://bugs.mysql.com/bug.php?id=48317</a>)</p>
<p>  * mysql_secure_installation did not work on Solaris.<br />
    (Bug#48086: <a href="http://bugs.mysql.com/bug.php?id=48086">http://bugs.mysql.com/bug.php?id=48086</a>)</p>
<p>  * When running mysql_secure_installation, the command would fail<br />
    if the root password contained multiple spaces, \, # or quote<br />
    characters.<br />
    (Bug#48031: <a href="http://bugs.mysql.com/bug.php?id=48031">http://bugs.mysql.com/bug.php?id=48031</a>)</p>
<p>  * MATCH IN BOOLEAN MODE searches could return too many results<br />
    inside a subquery.<br />
    (Bug#47930: <a href="http://bugs.mysql.com/bug.php?id=47930">http://bugs.mysql.com/bug.php?id=47930</a>)</p>
<p>  * User-defined collations with an ID less then 256 were not<br />
    initialized correctly when loaded and caused a server crash.<br />
    (Bug#47756: <a href="http://bugs.mysql.com/bug.php?id=47756">http://bugs.mysql.com/bug.php?id=47756</a>)</p>
<p>  * If a session held a global read lock acquired with FLUSH<br />
    TABLES WITH READ LOCK, a lock for one table acquired with LOCK<br />
    TABLES, and issued an INSERT DELAYED statement for another<br />
    table, deadlock could occur.<br />
    (Bug#47682: <a href="http://bugs.mysql.com/bug.php?id=47682">http://bugs.mysql.com/bug.php?id=47682</a>)</p>
<p>  * The mysql client status command displayed an incorrect value<br />
    for the server character set.<br />
    (Bug#47671: <a href="http://bugs.mysql.com/bug.php?id=47671">http://bugs.mysql.com/bug.php?id=47671</a>)</p>
<p>  * Connecting to a 4.1.x server from a 5.1.x or higher mysql<br />
    client resulted in a memory-free error when disconnecting.<br />
    (Bug#47655: <a href="http://bugs.mysql.com/bug.php?id=47655">http://bugs.mysql.com/bug.php?id=47655</a>)</p>
<p>  * Assignment of a system variable sharing the same base name as<br />
    a declared stored program variable in the same context could<br />
    lead to a crash.<br />
    (Bug#47627: <a href="http://bugs.mysql.com/bug.php?id=47627">http://bugs.mysql.com/bug.php?id=47627</a>)</p>
<p>  * On Solaris, no stack trace was printed to the error log after<br />
    a crash. (Bug#47391: <a href="http://bugs.mysql.com/bug.php?id=47391">http://bugs.mysql.com/bug.php?id=47391</a>)</p>
<p>  * The innodb_file_format_check system variable could not be set<br />
    at runtime to DEFAULT or to the value of a user-defined<br />
    variable. (Bug#47167: <a href="http://bugs.mysql.com/bug.php?id=47167">http://bugs.mysql.com/bug.php?id=47167</a>)</p>
<p>  * After a binary upgrade to MySQL 5.1 from a MySQL 5.0<br />
    installation that contains ARCHIVE tables, accessing those<br />
    tables caused the server to crash, even if you had run<br />
    mysql_upgrade or CHECK TABLE &#8230; FOR UPGRADE.<br />
    To work around this problem, use mysqldump to dump all ARCHIVE<br />
    tables before upgrading, and reload them into MySQL 5.1 after<br />
    upgrading. The same problem occurs for binary downgrades from<br />
    MySQL 5.1 to 5.0.<br />
    (Bug#47012: <a href="http://bugs.mysql.com/bug.php?id=47012">http://bugs.mysql.com/bug.php?id=47012</a>)</p>
<p>  * The IGNORE clause on a DELETE statement masked an SQL<br />
    statement error that occurred during trigger processing.<br />
    (Bug#46425: <a href="http://bugs.mysql.com/bug.php?id=46425">http://bugs.mysql.com/bug.php?id=46425</a>)</p>
<p>  * Valgrind errors for InnoDB Plugin were corrected.<br />
    (Bug#45992: <a href="http://bugs.mysql.com/bug.php?id=45992">http://bugs.mysql.com/bug.php?id=45992</a>,<br />
    Bug#46656: <a href="http://bugs.mysql.com/bug.php?id=46656">http://bugs.mysql.com/bug.php?id=46656</a>)</p>
<p>  * The return value was not checked for some my_hash_insert()<br />
    calls. (Bug#45613: <a href="http://bugs.mysql.com/bug.php?id=45613">http://bugs.mysql.com/bug.php?id=45613</a>)</p>
<p>  * It was possible for init_available_charsets() not to<br />
    initialize correctly.<br />
    (Bug#45058: <a href="http://bugs.mysql.com/bug.php?id=45058">http://bugs.mysql.com/bug.php?id=45058</a>)</p>
<p>  * GROUP BY on a constant (single-row) InnoDB table joined to<br />
    other tables caused a server crash.<br />
    (Bug#44886: <a href="http://bugs.mysql.com/bug.php?id=44886">http://bugs.mysql.com/bug.php?id=44886</a>)</p>
<p>  * For YEAR(2) values, MIN(), MAX(), and comparisons could yield<br />
    incorrect results.<br />
    (Bug#43668: <a href="http://bugs.mysql.com/bug.php?id=43668">http://bugs.mysql.com/bug.php?id=43668</a>)</p>
<p>  * Comparison with NULL values sometimes did not produce a<br />
    correct result.<br />
    (Bug#42760: <a href="http://bugs.mysql.com/bug.php?id=42760">http://bugs.mysql.com/bug.php?id=42760</a>)</p>
<p>  * In debug builds, killing a LOAD XML INFILE statement raised an<br />
    assertion. (Bug#42520: <a href="http://bugs.mysql.com/bug.php?id=42520">http://bugs.mysql.com/bug.php?id=42520</a>)</p>
<p>  * The server could crash when attempting to access a<br />
    non-conformant mysql.proc system table. For example, the<br />
    server could crash when invoking stored procedure-related<br />
    statements after an upgrade from MySQL 5.0 to 5.1 without<br />
    running mysql_upgrade.<br />
    (Bug#41726: <a href="http://bugs.mysql.com/bug.php?id=41726">http://bugs.mysql.com/bug.php?id=41726</a>)</p>
<p>  * The mysql_upgrade command would create three additional fields<br />
    to the mysql.proc table (character_set_client,<br />
    collation_connection, and db_collation), but did not populate<br />
    the fields with correct values. This would lead to error<br />
    messages reported during stored procedure execution.<br />
    (Bug#41569: <a href="http://bugs.mysql.com/bug.php?id=41569">http://bugs.mysql.com/bug.php?id=41569</a>)</p>
<p>  * Use of InnoDB monitoring (SHOW ENGINE INNODB STATUS or one of<br />
    the InnoDB Monitor tables) could cause a server crash due to<br />
    invalid access to a shared variable in a concurrent<br />
    environment.<br />
    (Bug#38883: <a href="http://bugs.mysql.com/bug.php?id=38883">http://bugs.mysql.com/bug.php?id=38883</a>)</p>
<p>  * When compressed MyISAM files were opened, they were always<br />
    memory mapped, sometimes causing memory-swapping problems. To<br />
    deal with this, a new system variable, myisam_mmap_size, was<br />
    added to limit the amount of memory used for memory mapping of<br />
    MyISAM files.<br />
    (Bug#37408: <a href="http://bugs.mysql.com/bug.php?id=37408">http://bugs.mysql.com/bug.php?id=37408</a>)</p>
<p>  * When running mysql_secure_installation on Windows, the command<br />
    would fail to load a required module, Term::ReadKey, which was<br />
    required for correct operation.<br />
    (Bug#35106: <a href="http://bugs.mysql.com/bug.php?id=35106">http://bugs.mysql.com/bug.php?id=35106</a>)</p>
<p>  * If the &#8211;log-bin server option was set to a directory name<br />
    with a trailing component separator character, the basename of<br />
    the binary log files was empty so that the created files were<br />
    named .000001 and .index. The same thing occurred with the<br />
    &#8211;log-bin-index, &#8211;relay-log, and &#8211;relay-log-index options.<br />
    Now the server reports and error and exits.<br />
    (Bug#34739: <a href="http://bugs.mysql.com/bug.php?id=34739">http://bugs.mysql.com/bug.php?id=34739</a>)</p>
<p>  * If a comparison involved a constant value that required type<br />
    conversion, the converted value might not be cached, resulting<br />
    in repeated conversion and poorer performance.<br />
    (Bug#34384: <a href="http://bugs.mysql.com/bug.php?id=34384">http://bugs.mysql.com/bug.php?id=34384</a>)</p>
<p>  * Using the SHOW ENGINE INNODB STATUS statement when using<br />
    partitions in InnoDB tables caused Invalid (old?) table or<br />
    database name errors to be logged.<br />
    (Bug#32430: <a href="http://bugs.mysql.com/bug.php?id=32430">http://bugs.mysql.com/bug.php?id=32430</a>)</p>
<p>  * Output from mysql &#8211;html did not encode the &lt;, &gt;, or &amp;<br />
    characters.<br />
    (Bug#27884: <a href="http://bugs.mysql.com/bug.php?id=27884">http://bugs.mysql.com/bug.php?id=27884</a>)</p>
<p>  * Under heavy load with a large query cache, invalidating part<br />
    of the cache could cause the server to freeze (that is, to be<br />
    unable to service other operations until the invalidation was<br />
    complete). (Bug#21074: <a href="http://bugs.mysql.com/bug.php?id=21074">http://bugs.mysql.com/bug.php?id=21074</a>)<br />
    See also Bug#39253: <a href="http://bugs.mysql.com/bug.php?id=39253">http://bugs.mysql.com/bug.php?id=39253</a>.</p>
<p>  * On some Windows systems, InnoDB could report Operating system<br />
    error number 995 in a file operation due to transient driver<br />
    or hardware problems. InnoDB now retries the operation and<br />
    adds Retry attempt is made to the error message.<br />
    (Bug#3139: <a href="http://bugs.mysql.com/bug.php?id=3139">http://bugs.mysql.com/bug.php?id=3139</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketgrid.com/blog/2010/01/mysql-5-5-1-m2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
