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.