InnoDB Plugin Notes:
InnoDB Plugin has been upgraded to version
1.0.6. This version is considered of Release Candidate (RC)
quality. The
InnoDB
Plugin 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.
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
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)
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)
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)
This regression 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:
Replicating TEXT or
VARCHAR columns declared as
NULL on the master but NOT
NULL on the slave caused the slave to crash.
(Bug#43789)
See also Bug#38850, Bug#43783, Bug#43785, Bug#47741, Bug#48091.
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
Section 5.1.8, “Server SQL Modes”.
(Bug#38173)
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)
See also Bug#43668.
InnoDB did not reset table
AUTO_INCREMENT values to the last used values
after a server restart.
(Bug#49032)
If a query involving a table was terminated with
KILL, a subsequent
SHOW CREATE TABLE for that table
caused a server crash.
(Bug#48985)
Privileges for stored routines were ignored for mixed-case routine names. (Bug#48872)
See also Bug#41049.
Building MySQL on Fedora Core 12 64-bit failed, due to errors in comp_err. (Bug#48864)
Concurrent ALTER TABLE operations
on an InnoDB table could raise an
assertion.
(Bug#48782)
Certain INTERVAL expressions could cause a
crash on 64-bit systems.
(Bug#48739)
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
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 server could crash and corrupt the tablespace if the
InnoDB tablespace was configured
with too small a value, or if many
CREATE TEMPORARY
TABLE statements were executed and the temporary file
directory filled up with
innodb_file_per_table enabled.
(Bug#48469)
Parts of the range optimizer could be initialized incorrectly, resulting in Valgrind errors. (Bug#48459)
A bad typecast could cause query execution to allocate large amounts of memory. (Bug#48458)
On Windows, InnoDB could not be
built as a statically linked library.
(Bug#48317)
mysql_secure_installation did not work on Solaris. (Bug#48086)
When running mysql_secure_installation, the command would fail if the root password contained multiple spaces, \, # or quote characters. (Bug#48031)
MATCH IN BOOLEAN MODE searches could return
too many results inside a subquery.
(Bug#47930)
Using REPLACE to update a
previously inserted negative value in an
AUTO_INCREMENT coumn in an
InnoDB table caused the table
auto-increment value to be updated to 2147483647.
(Bug#47720)
If a session held a global read lock acquired with
FLUSH TABLES WITH READ
LOCK, a lock for one table acquired with
LOCK TABLES, and issued an
INSERT DELAYED statement for
another table, deadlock could occur.
(Bug#47682)
The mysql client status
command displayed an incorrect value for the server character
set.
(Bug#47671)
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)
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)
mysqladmin debug could crash on 64-bit systems. (Bug#47382)
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)
After a binary upgrade to MySQL 5.1 from a MySQL 5.0
installation that contains ARCHIVE tables,
accessing those tables caused the server to crash, even if you
had run mysql_upgrade or CHECK TABLE
... FOR UPGRADE.
To work around this problem, use mysqldump to
dump all 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)
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)
The IGNORE clause on a
DELETE statement masked an SQL
statement error that occurred during trigger processing.
(Bug#46425)
On 64-bit systems,
--skip-innodb
did not skip InnoDB startup.
(Bug#46043)
Valgrind errors for InnoDB Plugin were
corrected.
(Bug#45992, Bug#46656)
The return value was not checked for some
my_hash_insert() calls.
(Bug#45613)
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)
See also Bug#48370.
For YEAR(2) values,
MIN(),
MAX(), and comparisons could
yield incorrect results.
(Bug#43668)
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)
Multiple-statement execution could fail. (Bug#40877)
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)
When running mysql_secure_installation on
Windows, the command would fail to load a required module,
Term::ReadKey, which was required for correct
operation.
(Bug#35106)
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)
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)
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)
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)

User Comments
Add your own comment.