Release availability
MySQL Server 5.1 is available on the following new platforms starting with the 5.1.42 release:
Mac OS X 10.6 x86/x64
HP-UX 11.31 IA64
SLES 11 x86/x64
InnoDB Plugin Notes
InnoDB Plugin has been upgraded to version
1.0.6. This version is considered of Release Candidate (RC)
quality. InnoDB Storage Engine Change History, 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 S/390, PowerPC, and generic ia64.
Bugs Fixed
Performance:
When the query cache is fragmented, the size of the free block
lists in the memory bins grows, which causes query cache
invalidation to become slow. There is now a 50ms timeout for a
SELECT statement waiting for the
query cache lock. If the timeout expires, the statement executes
without using the query cache.
(Bug #39253)
References: See also Bug #21074.
Important Change; Replication: The following functions have been marked unsafe for statement-based replication:
None of the functions just listed are guaranteed to replicate
correctly when using the statement-based format because they can
produce different results on the master and the slave. The use
of any of these functions while
binlog_format is set to
STATEMENT is logged with the warning,
Statement is not safe to log in statement
format. When
binlog_format is set to
MIXED, the binary logging format is
automatically switched to the row-based format whenever one of
these functions is used.
(Bug #47995)
Important Change:
After a binary upgrade to MySQL 5.1 from a MySQL 5.0
installation that contains ARCHIVE
tables:
Before MySQL 5.1.42, accessing those tables will cause the
server to crash, even if you have run
mysql_upgrade or
CHECK TABLE ...
FOR UPGRADE.
As of MySQL 5.1.42, the server will not open 5.0
ARCHIVE tables at all.
In either case, the solution is to use
mysqldump to dump all 5.0
ARCHIVE tables before upgrading,
and reload them into MySQL 5.1 after upgrading. The same problem
occurs for binary downgrades from MySQL 5.1 to 5.0.
(Bug #47012)
Partitioning: In some cases, it was not possible to add a new column to a table that had subpartitions. (Bug #48276)
Partitioning:
SELECT
COUNT(*) from a partitioned table failed when using
the ONLY_FULL_GROUP_BY SQL
mode.
(Bug #46923)
References: This bug was introduced by Bug #45807.
Partitioning:
SUBPARTITION BY KEY failed with
DEFAULT CHARSET=utf8.
(Bug #45904)
Replication:
When using row-based logging, TRUNCATE
TABLE was written to the binary log even if the
affected table was temporary, causing replication to fail.
(Bug #48350)
Replication:
When using row-based format, replication failed with the error
Could not execute Write_rows event on table ...;
Field '...' doesn't have a default value when an
INSERT was made on the master
without specifying a value for a column having no default, even
if strict server SQL mode was not in use and the statement would
otherwise have succeeded on the master. Now the SQL mode is
checked, and the statement is replicated unless strict mode is
in effect. For more information, see
Server SQL Modes.
(Bug #38173)
References: See also Bug #38262, Bug #43992.
Replication:
Replicating TEXT or
VARCHAR columns declared as
NULL on the master but NOT
NULL on the slave caused the slave to crash.
(Bug #43789)
References: See also Bug #38850, Bug #43783, Bug #43785, Bug #47741, Bug #48091.
Building MySQL on Fedora Core 12 64-bit failed, due to errors in comp_err. (Bug #48864)
When running mysql_secure_installation, the
command failed if the root password contained
multiple space, '\', '#',
or quote characters.
(Bug #48031)
On Windows, the mysql_secure_installation
command failed to load the Term::ReadKey
module, which was required for correct operation.
(Bug #35106)
Use of InnoDB monitoring
(SHOW ENGINE INNODB
STATUS or one of the
InnoDB Monitor tables) could cause
a server crash due to invalid access to a shared variable in a
concurrent environment. This is a further fix for a regression
introduced in MySQL 5.1.38 to the original fix in MySQL 5.1.31.
(Bug #38883)
Truncation of DECIMAL values
could lead to assertion failures; for example, when deducing the
type of a table column from a literal
DECIMAL value.
(Bug #45261)
References: See also Bug #48370.
Multiple-statement execution could fail. (Bug #40877)
On Windows, InnoDB could not be
built as a statically linked library.
(Bug #48317)
Valgrind errors for InnoDB Plugin were
corrected.
(Bug #45992, Bug #46656)
For YEAR(2) values,
MIN(),
MAX(), and comparisons could
yield incorrect results.
(Bug #43668)
Assignment of a system variable sharing the same base name as a declared stored program variable in the same context could lead to a crash. (Bug #47627)
The server could crash when attempting to access a
non-conformant mysql.proc system table. For
example, the server could crash when invoking stored
procedure-related statements after an upgrade from MySQL 5.0 to
5.1 without running mysql_upgrade.
(Bug #41726)
Privileges for stored routines were ignored for mixed-case routine names. (Bug #48872)
References: See also Bug #41049.
DISTINCT was ignored for queries with
GROUP BY WITH ROLLUP and only
const tables.
(Bug #48475)
Loose index scan was inappropriately chosen for some
WHERE conditions.
(Bug #48472)
The innodb_file_format_check
system variable could not be set at runtime to
DEFAULT or to the value of a user-defined
variable.
(Bug #47167)
If the --log-bin server option
was set to a directory name with a trailing component separator
character, the basename of the binary log files was empty, so
that the created files were named .000001
and .index. The same thing occurred with
the --log-bin-index,
--relay-log, and
--relay-log-index options. Now
the server reports and error and exits.
(Bug #34739)
Concurrent ALTER TABLE operations
on an InnoDB table could raise an
assertion.
(Bug #48782)
During query execution, ranges could be merged incorrectly for
OR operations and return an
incorrect result.
(Bug #48665)
The InnoDB Table Monitor reported
the FLOAT and
DOUBLE data types incorrectly.
(Bug #48526)
With row-based binary logging, the server crashed for statements
of the form CREATE TABLE IF NOT EXISTS
. This
occurred because the server handled the existing view as a table
when logging the statement.
(Bug #48506)existing_view LIKE
temporary_table
A bad typecast could cause query execution to allocate large amounts of memory. (Bug #48458)
MATCH IN BOOLEAN MODE searches could return
too many results inside a subquery.
(Bug #47930)
Connecting to a 4.1.x server from a 5.1.x or higher mysql client resulted in a memory-free error when disconnecting. (Bug #47655)
On 64-bit systems,
--skip-innodb
did not skip InnoDB startup.
(Bug #46043)
mysql_secure_installation did not work on Solaris. (Bug #48086)
Parts of the range optimizer could be initialized incorrectly, resulting in Valgrind errors. (Bug #48459)
The server could crash and corrupt the tablespace if the
InnoDB tablespace was configured
with too small a value, or if
innodb_file_per_table was
enabled and many
CREATE TEMPORARY
TABLE statements were executed and the temporary file
directory filled up.
(Bug #48469)
The mysql client status
command displayed an incorrect value for the server character
set.
(Bug #47671)
Using REPLACE to update a
previously inserted negative value in an
AUTO_INCREMENT column of an
InnoDB table caused the table
auto-increment value to be updated to 2147483647.
(Bug #47720)
The IGNORE clause on a
DELETE statement masked an SQL
statement error that occurred during trigger processing.
(Bug #46425)
If a session acquired a global read lock with
FLUSH TABLES WITH READ
LOCK, acquired a lock for one table with
LOCK TABLES, and issued an
INSERT DELAYED statement for
another table, deadlock could occur.
(Bug #47682)
The return value was not checked for some
my_hash_insert() calls.
(Bug #45613)
If a comparison involved a constant value that required type conversion, the converted value might not be cached, resulting in repeated conversion and poorer performance. (Bug #34384)
The result of comparison between nullable
BIGINT and
INT columns was inconsistent.
(Bug #49517)
Incorrect cache initialization prevented storage of converted constant values and could produce incorrect comparison results. (Bug #49489)
Comparisons involving YEAR values
could produce incorrect results.
(Bug #49480)
References: See also Bug #43668.
If a query involving a table was terminated with
KILL, a subsequent
SHOW CREATE TABLE for that table
caused a server crash.
(Bug #48985)
The Mac OS X MySQL Preference Pane component was not built for 64-bit, which would trigger the System Preferences application to restart into 32-bit mode. (Bug #46935)
mysqladmin debug could crash on 64-bit systems. (Bug #47382)
Certain INTERVAL expressions could cause a
crash on 64-bit systems.
(Bug #48739)
GRANT and
REVOKE crashed if a user name was
specified as CURRENT_USER().
(Bug #48319)
On some Windows systems, InnoDB could report
Operating system error number 995 in a file
operation due to transient driver or hardware
problems. InnoDB now retries the operation
and adds Retry attempt is made to the error
message.
(Bug #3139)
Using the SHOW
ENGINE INNODB STATUS statement when using partitions
in InnoDB tables caused Invalid
(old?) table or database name errors to be logged.
(Bug #32430)