Hi!

InnoDB is a MySQL table type that provides foreign key constraints, ACID
transactions, row-level locking, consistent (MVCC) non-locking reads,
transaction savepoints, and a commercial InnoDB Hot Backup tool to MySQL.
InnoDB is included in all MySQL releases, except the commercial 'MySQL
Classic' binaries.

For InnoDB, MySQL-4.1.4 is mainly a bugfix release. You can download the
binaries from http://dev.mysql.com/downloads/mysql/4.1.html

NOTE that an upgrade from 4.0 to 4.1.3 or later requires a rebuild of some
tables if you have stored control characters (ASCII value < 32) to
non-latin1 non-BINARY indexed columns in an InnoDB table.

If you have stored control characters in an indexed non-BINARY column in a
MyISAM table, you have to REPAIR or rebuild that table.

There is also a rebuild need if you have used a TIMESTAMP column in an
InnoDB table in 4.1.0 - 4.1.3.

Functionality added or changed:
* Important: Made internal representation of TIMESTAMP values in InnoDB in
4.1 to be the same as in 4.0. This difference resulted in wrong datetime
values in TIMESTAMP columns in InnoDB tables after upgrade from 4.0 to 4.1.
(Bug #4492) Warning: extra steps during upgrade required! This means that if
you are upgrading from 4.1.x, where x <= 3, to 4.1.4 you should use
mysqldump for saving and then restoring your InnoDB tables with TIMESTAMP
columns. No conversion is needed if you upgrade from 3.23 or 4.0 to 4.1.4 or
later.
* Added a new startup option innodb_locks_unsafe_for_binlog. This option
forces InnoDB not to use next-key locking in searches and index scans.
* Added innodb_status_file system variable to mysqld to control whether
output from SHOW INNODB STATUS is written to a `innodb_status.<pid>' file in
the data directory. By default, the file is not created. To create it, start
mysqld with the --innodb_status_file=1 option.
* Changes for NetWare to exit InnoDB gracefully on NetWare even in a case of
an assertion failure, instead of intentionally crashing the `mysqld' server
process.

Also keep in mind:
* Important: 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.

Bugs fixed:
* Fixed a bug in ON DELETE CASCADE and ON UPDATE CASCADE foreign key
constraints: long chains of cascaded operations would cause a stack overflow
and crash the server. Cascaded operations are now limited to 15 levels. (Bug
#4446)
* Increment the InnoDB watchdog timeout during CHECK TABLE. (Bug #2694)
* If you configure innodb_additional_mem_pool_size so small that InnoDB
memory allocation spills over from it, then every 4 billionth spill may
cause memory corruption. A symptom is a printout like below in the `.err'
log.

InnoDB: Error: Mem area size is 0. Possibly a memory overrun of the
InnoDB: previous allocated area!
InnoDB: Apparent memory corruption: mem dump  len 500; hex

* Fixed a glitch introduced in 4.0.18 and 4.1.2: in SHOW TABLE STATUS InnoDB
systematically overestimated the row count by 1 if the table fit on a single
16 kB data page.
* InnoDB created temporary files with the C library function tmpfile(). On
Windows, the files would be created in the root directory of the current
file system. To correct this behavior, the invocations of tmpfile() were
replaced with code that uses the function create_temp_file() in the MySQL
portability layer. (Bug #3998)
* If you RENAMEd a table, InnoDB forgot to load the foreign key constraints
that reference the new table name, and forgot to check that they are
compatible with the table.
* If there was little file I/O in InnoDB, but the insert buffer was used, it
could happen that 'Pending normal aio reads' was bigger than 0, but the I/O
handler thread did not get waken up in 600 seconds. This resulted in a hang,
and an intentional crashing of `mysqld'.

An outstanding bug:
* If you have specified innodb_file_per_table in my.cnf, and try to create a
TEMPORARY InnoDB type table, InnoDB will complain that it cannot find a path
./tmp/tablename. Workaround: create a MySQL database whose name is tmp (on
Windows, temp).

Best regards,

Heikki Tuuri
Innobase Oy
http://www.innodb.com


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to