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.14.2, “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.