InnoDB Plugin Notes
This release includes InnoDB Plugin 1.0.6.
This version is considered of Release Candidate (RC) quality.
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.
Functionality Added or Changed
mysqltest has a new
--max-connections option to set a higher number
of maximum permitted server connections than the default 128.
This option can also be passed using
mysql-test-run.pl.
(Bug #51135)
mysql-test-run.pl has a new
--portbase option and a corresponding
MTR_PORT_BASE environment variable for
setting the port range, as an alternative to the existing
--build-thread option.
(Bug #50182)
mysql-test-run.pl now has a
--gprof option that runs the server through the
gprof profiler, much the same way the
currently supported --gcov option runs it
through gcov.
(Bug #49345)
mysqltest now has a
lowercase_result command that converts the
output of the next statement to lowercase. This is useful for
test cases where the lettercase may vary between platforms.
(Bug #48863)
mysqltest now has a
remove_files_wildcard command that removes
files matching a pattern from a directory.
(Bug #39774)
Bugs Fixed
InnoDB:
SHOW INNODB STATUS could display incorrect
information about deadlocks, when the deadlock detection routine
stops early (to avoid excessive CPU usage).
(Bug #49001)
Partitioning:
Attempting to drop a partitioned table from one connection while
waiting for the completion of an ALTER
TABLE that had been issued from a different
connection, and that changed the storage engine used by the
table, could cause the server to crash.
(Bug #42438)
Replication: Adding an index to a table on the master caused the slave to stop logging slow queries to the slow query log. (Bug #50620)
Replication: Queries written to the slow query log on the master were not written to the slow query log on the slave. (Bug #23300)
References: See also Bug #48632.
Running SHOW CREATE TABLE on a
view v1 that contained a function which
accessed another view v2 could trigger a
infinite loop if the view referenced within the function
(v2) caused a warning to be raised while
being opened.
(Bug #48449)
An .ARZ file missing from the database
directory caused the server to crash.
(Bug #48757)
When building MySQL when using a different target directory (for
example using the VPATH environment
variable), the build of the embedded readline
component failed.
(Bug #35250)
If EXPLAIN encountered an error
in the query, a memory leak occurred.
(Bug #45989)
mysqltest no longer permits you to execute an
SQL statement on a connection after doing a
send command, unless you do a
reap first. This was previously accepted but
could produce unpredictable results.
(Bug #49269)
mysqld_multi failed due to a syntax error in the script. (Bug #51468)
For debug builds, SHOW BINARY
LOGS raised an assertion if binary logging was not
enabled.
(Bug #50780)
Full-text queries that used the truncation operator
(*) could enter an infinite loop.
(Bug #50351)
For debug builds on Windows, warnings about incorrect use of debugging directives were written to the error log. The directives were rewritten to eliminate these messages. (Bug #49025)
Slow CALL statements were not
always logged to the slow query log because execution time for
multiple-statement stored procedures was assessed incorrectly.
(Bug #47905)
The optimizer normally prefers use of
filesort plus the join cache to a full index
scan. But this combination was used even if the index is
clustered, in which case, the clustered index scan can be
faster.
(Bug #50843)
Incorrect handling of BIT columns
in temporary tables could lead to spurious duplicate-key errors.
(Bug #50591)
Referring to a subquery result in a HAVING
clause could produce incorrect results.
(Bug #50995)
Failure to open a view with a nonexistent
DEFINER was improperly handled and the server
crashed later attempting to lock the view.
(Bug #47734)
flush_cache_records() did not correctly check
for errors that should cause statement execution to stop,
leading to a server crash.
(Bug #39022)
INSERT INTO ...
VALUES(DEFAULT) failed to insert the correct value for
ENUM columns. For
MyISAM tables, an empty value was
inserted. For CSV tables, the table
became corrupt.
(Bug #33717)
Valgrind warnings about uninitialized variables in optimizer code were corrected. (Bug #45195)
Propagation of a large unsigned numeric constant in
WHERE expressions could lead to incorrect
results. This also affected EXPLAIN
EXTENDED, which printed incorrect numeric constants in
such transformed WHERE expressions.
(Bug #45360)
Grouping by a subquery in a query with a
DISTINCT aggregate function led to incorrect
and unordered grouping values.
(Bug #45640)
The server did not recognize that the stored procedure cache became invalid if a view was created or modified within a procedure, resulting in a crash. (Bug #50624)
The second or subsequent invocation of a stored procedure
containing DROP TRIGGER could
cause a server crash.
(Bug #50423)
For debug builds, an assertion was incorrectly raised in the
optimizer when matching ORDER BY expressions.
(Bug #50335)
Queries optimized with GROUP_MIN_MAX did not
clean up KEYREAD optimizations properly,
causing subsequent queries to return incomplete rows.
(Bug #49902)
For dynamic format MyISAM tables
containing LONGTEXT columns, a
bulk INSERT ... ON
DUPLICATE KEY UPDATE or bulk
REPLACE could cause corruption.
(Bug #49628)
For debug builds, with
sql_safe_updates enabled, a
multiple-table UPDATE with the
IGNORE modifier could raise an assertion.
(Bug #49534)
For debug builds, killing a
SELECT retrieving from a view
that was processing a function raised an assertion.
(Bug #47736)
For debug builds, creating a view containing a row constructor raised an assertion. (Bug #48294)
Invalid memory reads could occur following a query that
referenced a MyISAM table multiple
times with a write lock.
(Bug #48438)
EXPLAIN EXTENDED crashed trying
to print column names for a subquery in the
FROM clause when the table had gone out of
scope.
(Bug #49487)
InnoDB logged an error repeatedly
trying to load a page into the buffer pool, filling the error
log and using excessive disk space. Now the number of attempts
is limited to 100, after which the operation aborts with a
message.
(Bug #38901)
For InnoDB tables, the test for
using an index for ORDER BY sorting did not
distinguish between primary keys and secondary indexes and
expected primary key values to be concatenated to index values
the way they are to secondary key values.
(Bug #49324)
