icc Notes
This is the final release of MySQL 5.1 for which Generic Linux MySQL binary packages built with the icc compiler on x86 and x86_64 will be offered. These were previously produced as an alternative to our main packages built using gcc, as they provided noticeable performance benefits. In recent times the performance differences have diminished and build and runtime problems have surfaced, thus it is no longer viable to continue producing them.
We continue to use the icc compiler to produce our distribution-specific RPM packages on ia64.
InnoDB Plugin Notes
InnoDB Plugin has been upgraded to version
1.0.11. This version is considered of General Availability (GA)
quality.
In this release, the InnoDB Plugin is
included in source and binary distributions, except RHEL3,
RHEL4, SuSE 9 (x86, x86_64, ia64), generic Linux RPM packages,
and any builds produced with the icc
compiler. It also does not work for FreeBSD 6 and HP-UX or for
Linux on generic ia64.
Functionality Added or Changed
REPAIR TABLE and
OPTIMIZE TABLE table now catch
and throw any errors that occur while copying table statistics
from the old corrupted file to newly created file. For example.
if the user ID of the owner of the .frm,
.MYD, or .MYI file is
different from the user ID of the mysqld
process, REPAIR TABLE and
OPTIMIZE TABLE generate a "cannot
change ownership of the file" error unless
mysqld is started by the
root user.
(Bug #61598, Bug #13600058)
Bugs Fixed
Security Fix: A security bug was fixed. (Bug #49124)
InnoDB:
The server could crash during the recovery phase of startup, if
it previously crashed while inserting BLOB or
other large columns that use off-page storage into an
InnoDB table created with
ROW_FORMAT=REDUNDANT or
ROW_FORMAT=COMPACT.
(Bug #54408)
InnoDB:
The server could crash on shutdown, if started with
--innodb-use-system-malloc=0.
(Bug #55581, Bug #11762927)
InnoDB:
For an InnoDB table created with
ROW_FORMAT=COMPRESSED or
ROW_FORMAT=DYNAMIC, a query using the
READ UNCOMMITTED isolation level could cause
the server to stop with an assertion error, if
BLOB or other large columns that use off-page
storage were being inserted at the same time.
(Bug #54358)
InnoDB: For debug builds, the database server could crash when renaming a table that had active transactions. (Bug #54453)
Partitioning:
INSERT ON DUPLICATE KEY
UPDATE statements performed poorly on tables having
many partitions. The handler function for reading a row from a
specific index was not optimized in the partitioning handler.
(Bug #52455)
Partitioning:
UPDATE and
INSERT statements affecting
partitioned tables performed poorly when using row-based
replication.
(Bug #52517)
References: This bug is a regression of Bug #39084.
Replication:
When using the row-based logging format, a failed
CREATE TABLE ...
SELECT statement was written to the binary log,
causing replication to break if the failed statement was later
re-run on the master. In such cases, a
DROP TABLE ... IF
EXIST statement is now logged in the event that a
CREATE TABLE ...
SELECT fails.
(Bug #55625)
On FreeBSD, memory mapping for
MERGE tables could fail if
underlying tables were empty.
(Bug #47139)
Building MySQL on Solaris 8 x86 failed when using Sun Studio due to gcc inline assembly code. (Bug #55061)
The ABI check for MySQL failed to compile with gcc 4.5. (Bug #52514)
Builds of MySQL generated a large number of warnings. (Bug #53445)
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)
mysql_secure_installation did not properly
identify local accounts and could incorrectly remove nonlocal
root accounts.
(Bug #54004)
mysql_secure_installation sometimes failed to locate the mysql client. (Bug #52274)
Reading a ucs2 data file with
LOAD DATA
INFILE was subject to three problems. 1) Incorrect
parsing of the file as ucs2 data, resulting
in incorrect length of the parsed string. This is fixed by
truncating the invalid trailing bytes (incomplete multi-byte
characters) when reading from the file. 2) Reads from a proper
ucs2 file did not recognize newline
characters. This is fixed by first checking whether a byte is a
newline (or any other special character) before reading it as a
part of a multi-byte character. 3) When using user variables to
hold column data, the character set of the user variable was set
incorrectly to the database charset. This is fixed by setting it
to the character set specified in the
LOAD DATA
INFILE statement, if any.
(Bug #51876)
With lower_case_table_names set
to a nonzero value, searches for table or database names in
INFORMATION_SCHEMA tables could produce
incorrect results.
(Bug #53095)
In debug builds, an assertion could be raised when the server
tried to send an OK packet to the client after having failed to
detect errors during processing of the WHERE
condition of an UPDATE statement.
(Bug #54734)
Portability problems in SHOW
STATUS could lead to incorrect results on some
platforms.
(Bug #53493)
A debugging assertion could be raised after a write failure to a closed socket. (Bug #42496)
Searches in INFORMATION_SCHEMA tables for
rows matching a nonexistent database produced an error instead
of an empty query result.
(Bug #49542)
GROUP BY operations used
max_sort_length inconsistently.
(Bug #55188)
The
my_like_range_
functions returned badly formed maximum strings for Asian
character sets, which caused problems for storage engines.
(Bug #45012)xxx()
A join with an aggregated function and impossible
WHERE condition returned an extra row.
(Bug #54416)
An assertion failure occurred within yaSSL for very long keys. (Bug #29784)
References: See also Bug #53463.
