Functionality added or changed:
Starting from MySQL 4.1.3, InnoDB uses
the same character set comparison functions as MySQL for
non-latin1_swedish_ci character strings
that are not BINARY. This changes the
sorting order of space and characters < ASCII(32) in
those character sets. For
latin1_swedish_ci character strings and
BINARY strings, InnoDB
uses its own pad-spaces-at-end comparison method, which
stays unchanged. If you have an InnoDB
table created with MySQL 4.1.2 or earlier, with an index on
a non-latin1 character set (in the case
of 4.1.0 and 4.1.1 with any character set)
CHAR/VARCHAR/or
TEXT column that is not
BINARY but may contain characters <
ASCII(32), then you should do ALTER TABLE
or OPTIMIZE table on it to
regenerate the index, after upgrading
to MySQL 4.1.3 or later.
OPTIMIZE TABLE for
InnoDB tables is now mapped to
ALTER TABLE rather than to ANALYZE
TABLE.
Added an interface for storing the binlog offset in the InnoDB log and flushing the log.
Bugs fixed:
The critical bug in 4.1.2
(crash recovery skipping all .ibd files
if you specify innodb_file_per_table on
Unix) has been fixed. The bug was a combination of two bugs.
Crash recovery ignored the files, because the attempt to lock
them in the wrong mode failed. From now on, locks are only
obtained for regular files opened in read/write mode, and
crash recovery stops if an .ibd file for
a table exists in a database directory but is unaccessible.
Do not remember the original
select_lock_type inside LOCK
TABLES. (Bug#4047)
The special meaning of the table names
innodb_monitor,
innodb_lock_monitor,
innodb_tablespace_monitor,
innodb_table_monitor, and
innodb_validate in CREATE
TABLE and DROP TABLE statements
was accidentally removed in MySQL/InnoDB-4.1.2. The diagnostic
functions attached to these special table names (see
Section 13.2.12.1, “SHOW ENGINE INNODB STATUS and the
InnoDB Monitors”) are accessible again in
MySQL/InnoDB-4.1.3.
When the private SQL parser of InnoDB was modified in
MySQL/InnoDB-4.0.19 in order to allow the use of the
apostrophe (“'”) in table and
column names, the fix relied on a previously unused function
mem_realloc(), whose implementation was
incorrect. As a result, InnoDB can incorrectly parse column
and table names as the empty string. The InnoDB
realloc() implementation has been
corrected in MySQL/InnoDB-4.1.3.
In a clean-up of MySQL/InnoDB-4.1.2, the code for invalidating
the query cache was broken. Now the query cache should be
correctly invalidated for tables affected by ON
UPDATE CASCADE or ON DELETE
CASCADE constraints.
Fixed a bug: in LIKE
'abc%', the '%' did not match
the empty string if the character set was not
latin1_swedish_ci. This bug was fixed by
changing the sorting order in these character sets. See the
above note about data conversion in 4.1.3.

User Comments
Add your own comment.