Dear MySQL users,
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's new in MySQL 5.1, please see
For information on installing MySQL 5.1.48 on new servers or upgrading
to MySQL 5.1.48 from previous MySQL releases, please see
MySQL Server is available in source and binary form for a number of
platforms from our download pages at
Not all mirror sites may be up to date at this point in time, so if
you can't find this version on some mirror, please try again later or
choose another download site.
We welcome and appreciate your feedback, bug reports, bug fixes,
For information on open issues in MySQL 5.1, please see the errata
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
C.1.1. Changes in MySQL 5.1.48
Functionality added or changed:
* The Rows_examined value in slow query log rows now is nonzero
for UPDATE and DELETE statements that modify rows.
* 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)
* Partitioning: ALTER TABLE statements that cause table
partitions to be renamed or dropped (such as ALTER TABLE ...
ADD PARTITION, ALTER TABLE ... DROP PARTITION, and ALTER TABLE
... REORGANIZE PARTITION) --- when run concurrently with
queries against the INFORMATION_SCHEMA.PARTITIONS table ---
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,
* 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.
* Partitioning: When attempting to perform DDL on a partitioned
table and the table'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)
* 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.
* 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'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.
See also Bug#29288: http://bugs.mysql.com/bug.php?id=29288.
* 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.
* Valgrind warnings resulting from passing incomplete DATETIME
values to the TIMESTAMP() function were corrected.
* Builds of the embedded mysqld would fail due to a missing
element of the struct NET.
* 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.
* 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)
* Incorrect results could be returned for LEFT JOIN of InnoDB
tables with an impossible WHERE condition.
* Fixed a checksum error reported for compressed tables when the
--innodb_checksums option is enabled.
* Corrected the handling of the setting
innodb_change_buffering=default. (The appropriate default
value is different between MySQL 5.1 and 5.5.)
* mysqldump and SELECT ... INTO OUTFILE truncated long BLOB and
TEXT values to 766 bytes.
* In the debug version of the server, the FreeState() function
could in some circumstances be called twice, leading to an
* Aggregate functions could incorrectly return NULL in outer
* 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.
* Calculation of intervals for Event Scheduler events was not
portable. (Bug#50087: http://bugs.mysql.com/bug.php?id=50087)
* Selecting from INFORMATION_SCHEMA.ROUTINES or
resulted in a memory leak.
* 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.
* Using an initial command with mysql_options(...,
MYSQL_INIT_COMMAND, ...) that generated multiple result sets
(such as a stored procedure or a multi-statement command) left
the connection unusable.
* If a crash occurs while creating an index using the InnoDB
"Fast Index Creation" mechanism, the partially created index
is dropped during the crash recovery processing when the
database is restarted.
MySQL RE Team
Karen Langford, Hery Ramilison MySQL Release Engineers
Database Group, Oracle.
|• MySQL Community Server 5.1.48 has been released||Karen Langford||17 Jun|