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.