Changes in MySQL 5.1.57 (2011-05-05)

Functionality Added or Changed

When invoked with the
--auto-generate-sql option,
mysqlslap dropped the schema specified with
the --create-schema option at
the end of the test run, which may have been unexpected by the
user. mysqlslap now has a
--no-drop option that prevents
any schema created during the test run from being dropped.
(Bug #58090, Bug #11765157)

InnoDB; Replication:
Trying to update a column, previously set to
NULL, of an
InnoDB table with no primary key
caused replication to fail on the slave with Can't
find record in 'table'.

Note

This issue was inadvertently reintroduced in MySQL 5.6.6, and
fixed again in MySQL 5.6.12.

(Bug #11766865, Bug #60091)

References: See also Bug #16566658.

InnoDB:
The server could halt if InnoDB interpreted a
very heavy I/O load for 15 minutes or more as an indication that
the server was hung. This change fixes the logic that measures
how long InnoDB threads were waiting, which
formerly could produce false positives.
(Bug #11877216, Bug #11755413, Bug #47183)

InnoDB:
The MySQL server could hang during CREATE
TABLE, OPTIMIZE TABLE, or
ALTER TABLE or other DDL operation that
performs a table copy for an InnoDB table, if
such operations were performed by multiple sessions
simultaneously. The error was reported as:

InnoDB: Error: semaphore wait has lasted > 600 seconds

(Bug #11760042, Bug #52409)

Partitioning:
A problem with a previous fix for poor performance of
INSERT ON DUPLICATE KEY
UPDATE statements on tables having many partitions
caused the handler function for reading a row from a specific
index to fail to store the ID of the partition last used. This
caused some statements to fail with Can't find
record errors.
(Bug #59297, Bug #11766232)

References: This bug is a regression of Bug #52455.

Replication:
Using the --server-id option
with mysqlbinlog could cause format
description log events to be filtered from the binary log,
leaving mysqlbinlog unable to read the
remainder of the log. Now such events are always read without
regard to the value of this option.

As part of the fix for this problem,
mysqlbinlog now also reads rotate log events
without regard to the value of
--server-id.
(Bug #59530, Bug #11766427)

The server read one byte too many when trying to process an XML
string lacking a closing single quote (') or
double quote (") character used as an
argument for UpdateXML() or
ExtractValue().
(Bug #59901, Bug #11766725)

References: See also Bug #44332, Bug #11752979.

Attempting to create a spatial index on a
CHAR column longer than 31 bytes
led to an assertion failure if the server was compiled with
safemutex support.
(Bug #59888, Bug #11766714)

Aggregation followed by a subquery could produce an incorrect
result.
(Bug #59839, Bug #11766675)

An incorrect character set pointer passed to
my_strtoll10_mb2() caused an assertion to be
raised.
(Bug #59648, Bug #11766519)

In Item_func_str_to_date::val_str, a Valgrind
warning for an uninitialized variable was corrected.
(Bug #58154, Bug #11765216)

The code for PROCEDURE ANALYSE() had a
missing DBUG_RETURN statement, which could
cause a server crash in debug builds.
(Bug #58140, Bug #11765202)

An assertion could be raised in
Item_func_int_val::fix_num_length_and_dec()
due to overflow for geometry functions.
(Bug #57900, Bug #11764994)

An assertion could be raised if a statement that required a name
lock on a table (for example, DROP
TRIGGER) executed concurrently with an
INFORMATION_SCHEMA query that also used the
table.
(Bug #56541, Bug #11763784)

For a client connected using SSL, the
Ssl_cipher_list status
variable was empty and did not show the possible cipher types.
(Bug #52596, Bug #11760210)