InnoDB Plugin Notes:
InnoDB Plugin
has been upgraded to version
1.0.7. This version is considered of General Availability (GA)
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 generic ia64.
Bugs fixed:
Partitioning:
Partition pruning on RANGE
partitioned tables
did not always work correctly; the last partition partition was
not excluded if the range was beyond it (when not using
MAXVALUE
).Now the last partition is not
included if the partitioning function value is not within the
range.
(Bug#51830)
Partitioning:
The insert_id
server system
variable was not reset following an insert that failed on a
partitioned MyISAM
table having an
AUTO_INCREMENT
column.
(Bug#50392)
Partitioning:
Foreign keys are not supported on partitioned tables. However,
it was possible via an ALTER
TABLE
statement to set a foreign key on a partitioned
table; it was also possible to partition a table with a single
foreign key.
(Bug#50104)
Partitioning:
GROUP BY
queries performed poorly for some
partitioned tables. This was due to the block size not being set
for partitioned tables, thus the keys per block was not correct,
which could cause such queries to be optimized incorrectly.
(Bug#48229)
See also Bug#37252.
Replication:
TRUNCATE TABLE
performed on a
temporary table using the InnoDB
storage engine was logged even when using row-based mode.
(Bug#51251)
Replication: When using temporary tables the binary log needs to insert a pseudo-thread ID for threads that are using temporary tables, each time a switch happens between two threads, both of which are using temporary tables. However, if a thread issued a failing statement before exit, its ID was not recorded in the binary log, and this in turn caused the ID for the next thread that tried to do something with a temporary table not to be logged as well. Subsequent replays of the binary log failed with the error Table ... doesn't exist. (Bug#51226)
Replication:
If the master was using
sql_mode='TRADITIONAL'
,
duplicate key errors were not sent to the slave, which received
0
rather than the expected error code. This
caused replication to fail even when such an error was expected.
(Bug#51055)
Replication:
When run with the --database
option, mysqlbinlog printed
ROLLBACK
statements but did not print any corresponding
SAVEPOINT
statements.
(Bug#50407)
Replication:
CREATE EVENT
statements were
padded with “garbage” characters when written to
the binary log, which caused a syntax error when trying to read
back from the log.
(Bug#50095)
Replication:
Column length information generated by
InnoDB
did not match that generated
by MyISAM
, which caused invalid
metadata to be written to the binary log when trying to
replicate BIT
columns.
(Bug#49618)
Replication:
The value of Slave_IO_running
in the output
of SHOW SLAVE STATUS
did not
distinguish between all 3 possible states of the slave I/O
thread (not running; running but not connected; connected). Now
the value Connecting
(rather than
No
) is shown when the slave I/O thread is
running but the slave is not connected to a replication master.
The server system variable Slave_running
also
reflects this change, and is now consistent with what is shown
for Slave_IO_running
.
(Bug#30703, Bug#41613, Bug#51089)
For InnoDB Plugin
, bit fields were causing
problems with concurrency on SMP systems because of word-packing
issues.
(Bug#52360)
CHECKSUM TABLE
could compute the
checksum for BIT
columns incorrectly.
(Bug#51304)
A HAVING
clause on a joined table in some
cases failed to eliminate rows which should have been excluded
from the result set.
(Bug#51242)
The type inference used for view columns caused some columns in
views to be handled as the wrong type, as compared to the same
columns in base tables. DATE
columns in base tables were treated as
TIME
columns in views, and base
table TIME
columns as view
DATETIME
columns.
(Bug#50918)
Performing a single in-place ALTER
TABLE
containing ADD INDEX
and
DROP INDEX
options that used the same index
name could result in a corrupt table definition file. Now such
ALTER TABLE
statements are no
longer performed in place.
(Bug#49838)
mysql_upgrade did not detect when
CSV
log tables incorrectly
contained columns that could be NULL
. Now
these columns are altered to be NOT NULL
.
(Bug#49823)
If a stored function contained a
RETURN
statement with an
ENUM
value in the ucs2
character set, SHOW CREATE
FUNCTION
and SELECT DTD_IDENTIFIER FROM
INFORMATION_SCHEMA.ROUTINES
returned incorrect values.
(Bug#48766)
A query that read from a derived table (of the form
SELECT ... FROM (SELECT ...)
) produced
incorrect results when the following conditions were present:
The table subquery contained a derived query
((SELECT ... ) AS
).
column
The derived query could potentially produce zero rows or a
single NULL
(that is, no rows matched,
or the query used an aggregate function such as
SUM()
running over zero
rows).
The table subquery joined at least two tables.
The join condition involved an index.
The query shown by
EXPLAIN
EXTENDED
plus SHOW
WARNINGS
could produce results different from the
original query.
(Bug#47669)
SHOW CREATE VIEW
returned invalid
SQL if the definition contained a
SELECT
'
statement
where the string
'string
was longer than the
maximum length of a column name, due to the fact that this text
was also used as an alias (in the AS
clause).
Because not all names retrieved from arbitrary
SELECT
statements can be used as
view column names due to length and format restrictions, the
server now checks the conformity of automatically generated
column names and rewrites according to a predefined format any
names that are not acceptable as view column names before
storing the final view definition on disk.
In such cases, the name is now rewritten as
Name_exp_
,
where pos
pos
is the position of the
column. To avoid this conversion scheme, define explicit, valid
names for view columns using the
column_list
clause of the
CREATE VIEW
statement.
As part of this fix, aliases are now generated only for top-level statements. (Bug#40277)
mysqlbinlog had a memory leak in its option-processing code. (Bug#38468)
User Comments
Add your own comment.