16
InnoDB version history
MySQL/InnoDB-4.1.0, January
xx, 2003
- InnoDB now supports up
to 64 GB of buffer pool memory in a Windows 32-bit Intel computer. This is
possible because InnoDB can use the AWE extension of Windows to address memory
over the 4 GB limit of a 32-bit process. A new startup variable innodb_buffer_pool_awe_mem_mb
enables AWE and sets the size of the buffer pool in megabytes.
- Reduced the size of buffer
headers and the lock table. InnoDB uses 2 % less memory.
MySQL/InnoDB-3.23.55,
February x, 2003
- Fixed a bug: if the combined
size of InnoDB log files was >= 2 GB in a 32-bit computer, InnoDB would
write log in a wrong position. That could cause crash recovery and InnoDB
Hot Backup to fail in log scan.
- Fixed a bug: index cursor
restoration could theoretically fail.
- Fixed a bug: an assertion
in btr0sea.c, in function btr_search_info_update_slow could theoretically
fail in a race of 3 threads.
MySQL/InnoDB-4.0.9, February
x, 2003
- Removed the warning message:
'InnoDB: Out of memory in additional memory pool.'
- Fixed a bug: if the combined
size of InnoDB log files was >= 2 GB in a 32-bit computer, InnoDB would
write log in a wrong position. That could cause crash recovery and InnoDB
Hot Backup to fail.
- Fixed a bug: index cursor
restoration could theoretically fail.
MySQL/InnoDB-4.0.8, January
7, 2003
- InnoDB now supports also
FOREIGN KEY (...) REFERENCES ...(...) [ON UPDATE CASCADE | ON UPDATE SET NULL
| ON UPDATE RESTRICT | ON UPDATE NO ACTION].
- Tables and indexes now
reserve 4 % less space in the tablespace. Also existing tables reserve less
space. By upgrading to 4.0.8 you will see more free space in "InnoDB
free" in SHOW TABLE STATUS.
- Fixed bugs: updating
the PRIMARY KEY of a row would generate a foreign key error on all FOREIGN
KEYs which referenced secondary keys of the row to be updated. Also, if a
referencing FOREIGN KEY constraint only referenced the first columns in an
index, and there were more columns in that index, updating the additional
columns generated a foreign key error. These bug fixes will only be backported
to 3.23 if users find this a big problem.
- Fixed a bug: if an index
contains some column twice, and that column is updated, the table will become
corrupt. From now on InnoDB prevents creation of such indexes.
- Fixed a bug: removed
superfluous error 149 and 150 printouts from the .err log when a locking SELECT
caused a deadlock or a lock wait timeout.
- Fixed a bug: an assertion
in btr0sea.c, in function btr_search_info_update_slow could theoretically
fail in a race of 3 threads.
- Fixed a bug: one could
not switch a session transaction isolation level back to REPEATABLE READ after
setting it to something else.
MySQL/InnoDB-4.0.7, December
26, 2002
- InnoDB in 4.0.7 is essentially
the same as in 4.0.6.
MySQL/InnoDB-4.0.6, December
19, 2002
- Since innodb_log_arch_dir
has no relevance under MySQL, there is no need to specify it any more in my.cnf.
- LOAD DATA INFILE in AUTOCOMMIT=1
mode no longer does implicit commits for each 1 MB of written binlog.
- Fixed a bug introduced
in 4.0.4: LOCK TABLES ... READ LOCAL should not set row locks on the rows
read. This caused deadlocks and lock wait timeouts in mysqldump.
- Fixed two bugs introduced
in 4.0.4: in AUTO_INCREMENT, REPLACE could cause the counter to be left 1
too low. A deadlock or a lock wait timeout could cause the same problem.
- Fixed a bug: TRUNCATE
on a TEMPORARY table crashed InnoDB.
- Fixed a bug introduced
in 4.0.5: if binlogging was not switched on, INSERT INTO ... SELECT ... or
CREATE TABLE ... SELECT ... could cause InnoDB to hang on a semaphore created
in btr0sea.c, line 128. Workaround: switch binlogging on.
- Fixed a bug: in replication
issuing SLAVE STOP in the middle of a multi-statement transaction could cause
that SLAVE START would only perform part of the transaction. A similar error
could occur if the slave crashed and was restarted.
MySQL/InnoDB-3.23.54,
December 12, 2002
- Fixed a bug: the InnoDB
range estimator greatly exaggerated the size of a short index range if the
paths to the endpoints of the range in the index tree happened to branch already
in the root. This could cause unnecessary table scans in SQL queries.
- Fixed a bug: ORDER BY
could fail if you had not created a primary key to a table, but had defined
several indexes of which at least one was a UNIQUE index with all its columns
declared as NOT NULL.
- Fixed a bug: a lock wait
timeout in connection with ON DELETE CASCADE could cause corruption in indexes.
- Fixed a bug: if a SELECT
was done with a unique key from a primary index, and the search matched to
a delete-marked record, InnoDB could erroneously return the NEXT record.
- Fixed a bug introduced
in 3.23.53: LOCK TABLES ... READ LOCAL should not set row locks on the rows
read. This caused deadlocks and lock wait timeouts in mysqldump.
- Fixed a bug: if an index
contains some column twice, and that column is updated, the table will become
corrupt. From now on InnoDB prevents creation of such indexes.
- An outstanding bug: in
replication issuing SLAVE STOP in the middle of a multi-statement transaction
can cause that SLAVE START will only perform part of the transaction.
MySQL/InnoDB-4.0.5, November
18, 2002
- InnoDB now supports also
transaction isolation levels READ COMMITTED and READ UNCOMMITTED. READ COMMITTED
more closely emulates Oracle and makes porting of applications from Oracle
to MySQL easier.
- Deadlock resolution is
now selective: we try to pick as victims transactions with less modified or
inserted rows.
- FOREIGN KEY definitions
are now aware of the lower_case_table_names setting in my.cnf.
- SHOW CREATE TABLE does
not output the database name to a FOREIGN KEY definition if the referred table
is in the same database as the table.
- InnoDB does a consistency
check to most index pages before writing them to a data file.
- If you set innodb_force_recovery
> 0, InnoDB tries to jump over corrupt index records and pages when doing
SELECT * FROM table. This helps in dumping.
- InnoDB now again uses
asynchronous unbuffered i/o in Windows 2000 and XP, but not in NT, 95/98/ME.
- Fixed a bug: the InnoDB
range estimator greatly exaggerated the size of a short index range if the
paths to the endpoints of the range in the index tree happened to branch already
in the root. This could cause unnecessary table scans in SQL queries. The
fix will also be backported to 3.23.54.
- Fixed a bug present in
3.23.52, 4.0.3, 4.0.4: InnoDB startup could take very long or even crash on
some Win 95/98/ME computers.
- Fixed a bug: the AUTO-INC
lock was held to the end of the transaction if it was granted after a lock
wait. This could cause unnecessary deadlocks.
- Fixed a bug: if SHOW
INNODB STATUS, innodb_monitor, or innodb_lock_monitor had to print several
hundred transactions in one report, and the output became truncated, InnoDB
would hang, printing to the error log many waits for a mutex created at srv0srv.c,
line 1621.
- Fixed a bug: SHOW INNODB
STATUS on Unix always reported average file read size as 0 bytes.
- Fixed a potential bug
in 4.0.4: InnoDB now does ORDER BY ... DESC like MyISAM.
- Fixed a bug: DROP TABLE
could cause crash or a hang if there was a rollback concurrently running on
the table. The fix will only be backported to 3.23 if this appears a real
problem for users.
- Fixed a bug: ORDER BY
could fail if you had not created a primary key to a table, but had defined
several indexes of which at least one was a UNIQUE index with all its columns
declared as NOT NULL.
- Fixed a bug: a lock wait
timeout in connection with ON DELETE CASCADE could cause corruption in indexes.
- Fixed a bug: if a SELECT
was done with a unique key from a primary index, and the search matched to
a delete-marked record, InnoDB could erroneously return the NEXT record.
MySQL/InnoDB-3.23.53,
October 14, 2002
- We again use unbuffered
disk i/o to data files in Windows. Win XP and Win 2000 read performance seems
to be very poor with normal i/o.
- Tuned range estimator
so that index range scans are preferred over full index scans.
- Allow dropping and creating
a table even if innodb_force_recovery is set. One can use this to drop a table
which would cause a crash in rollback or purge, or if a failed table import
causes a runaway rollback in recovery.
- Fixed a bug present in
3.23.52, 4.0.3, 4.0.4: InnoDB startup could take very long or even crash on
some Win 95/98/ME computers.
- Fixed a bug: fast shutdown
(which is the default) sometimes was slowed down by purge and insert buffer
merge.
- Fixed a bug: doing a
big SELECT from a table where no rows were visible in a consistent read could
cause a very long (> 600 seconds) semaphore wait in btr0cur.c line 310.
- Fixed a bug: the AUTO-INC
lock was held to the end of the transaction if it was granted after a lock
wait. This could cause unnecessary deadlocks.
- Fixed a bug: if you created
a temporary table inside LOCK TABLES, and used that temporary table, that
caused an assertion failure in ha_innobase.cc.
- Fixed a bug: if SHOW
INNODB STATUS, innodb_monitor, or innodb_lock_monitor had to print several
hundred transactions in one report, and the output became truncated, InnoDB
would hang, printing to the error log many waits for a mutex created at srv0srv.c,
line 1621.
- Fixed a bug: SHOW INNODB
STATUS on Unix always reported average file read size as 0 bytes.
MySQL/InnoDB-4.0.4, October
2, 2002
- We again use unbuffered
disk i/o to data files in Windows. Win XP and Win 2000 read performance seems
to be very poor with normal i/o.
- Increased the max key
length of InnoDB tables from 500 to 1024 bytes.
- Increased the table comment
field in SHOW TABLE STATUS so that up to 16000 characters of foreign key definitions
can be printed there.
- The auto-increment counter
is no longer incremented if an insert of a row immediately fails in an error.
- Allow dropping and creating
a table even if innodb_force_recovery is set. One can use this to drop a table
which would cause a crash in rollback or purge, or if a failed table import
causes a runaway rollback in recovery.
- Fixed a bug: Using ORDER
BY primarykey DESC in 4.0.3 causes an assertion failure in btr0pcur.c, line
203.
- Fixed a bug: fast shutdown
(which is the default) sometimes was slowed down by purge and insert buffer
merge.
- Fixed a bug: doing a
big SELECT from a table where no rows were visible in a consistent read could
cause a very long (> 600 seconds) semaphore wait in btr0cur.c line 310.
- Fixed a bug: if the MySQL
query cache was used, it did not get invalidated by a modification done by
ON DELETE CASCADE or ...SET NULL.
- Fixed a bug: if you created
a temporary table inside LOCK TABLES, and used that temporary table, that
caused an assertion failure in ha_innodb.cc.
- Fixed a bug: if you set
innodb_flush_log_at_trx_commit to 1, SHOW VARIABLES would show its value as
16 million.
- An outstanding bug: queries
of type "WHERE indexedcolumn LIKE 'abc%' ORDER BY indexedcolumn DESC"
may return only rows where indexedcolumn='abc'. Will be fixed in 4.0.5.
MySQL/InnoDB-4.0.3, August
28, 2002
- Removed unnecessary deadlocks
when inserts have to wait for a locking read, update, or delete to release
its next-key lock.
- The MySQL HANDLER SQL
commands now work also for InnoDB type tables. InnoDB does the HANDLER reads
always as consistent reads. HANDLER is a direct access path to read individual
indexes of tables. In some cases HANDLER can be used as a substitute of server-side
cursors.
- Fixed a bug in 4.0.2:
even a simple insert could crash the AIX version.
- Fixed a bug: if you used
in a table name characters whose code is > 127, in DROP TABLE InnoDB could
assert on line 155 of pars0sym.c.
- Compilation from source
now provides a working version both on HP-UX-11 and HP-UX-10.20. The source
of 4.0.2 worked only on 11, and the source of 3.23.52 only on 10.20.
- Fixed a bug: if compiled
on 64-bit Solaris, InnoDB produced a bus error at startup.
MySQL/InnoDB-3.23.52,
August 16, 2002
- The feature set of 3.23
will be frozen from this version on. New features will go to the 4.0 branch,
and only bug fixes will be made to the 3.23 branch.
- Many CPU-bound join queries
now run faster. On Windows also many other CPU-bound queries run faster.
- A new SQL command SHOW
INNODB STATUS returns the output of the InnoDB Monitor to the client. The
InnoDB Monitor now prints detailed info on the latest detected deadlock.
- InnoDB made the SQL query
optimizer to avoid too much index-only range scans and choose full table scans
instead. This is now fixed.
- "BEGIN" and
"COMMIT" are now added in the binlog around transactions. The MySQL
replication now respects transaction borders: a user will no longer see half
transactions in replication slaves.
- A replication slave now
prints in crash recovery the last master binlog position it was able to recover
to.
- A new setting innodb_flush_log_at_trx_commit=2
makes InnoDB to write the log to the operating system file cache at each commit.
This is almost as fast as the setting innodb_flush_log_at_trx_commit=0, and
the setting 2 also has the nice feature that in a crash where the operating
system does not crash, no committed transaction is lost. If the operating
system crashes or there is a power outage, then the setting 2 is no safer
than the setting 0.
- Added checksum fields
to log blocks.
- SET FOREIGN_KEY_CHECKS=0
helps in importing tables in an arbitrary order which does not respect the
foreign key rules.
- SET UNIQUE_CHECKS=0 speeds
up table imports into InnoDB if you have UNIQUE constraints on secondary indexes.
- SHOW TABLE STATUS now
lists also possible ON DELETE CASCADE or ON DELETE SET NULL in the comment
field of the table.
- When CHECK TABLE is run
on any InnoDB type table, it now checks also the adaptive hash index for all
tables.
- If you defined ON DELETE
CASCADE or SET NULL and updated the referenced key in the parent row, InnoDB
deleted or updated the child row. This is now changed to conform to SQL-92:
you get the error 'Cannot delete parent row'.
- Improved the auto-increment
algorithm: now the first insert or SHOW TABLE STATUS initializes the auto-inc
counter for the table. This removes almost all surprising deadlocks caused
by SHOW TABLE STATUS.
- Aligned some buffers
used in reading and writing to data files. This allows using unbuffered raw
devices as data files in Linux.
- Fixed a bug: If you updated
the primary key of a table so that only the case of characters changed, that
could cause assertion failures, mostly in page0page.ic line 515.
- Fixed a bug: If you delete
or update a row referenced in a foreign key constraint and the foreign key
check has to wait for a lock, then the check may report an erroneous result.
This affects also the ON DELETE... operation.
- Fixed a bug: A deadlock
or a lock wait timeout error in InnoDB causes InnoDB to roll back the whole
transaction, but MySQL could still write the earlier SQL statements to the
binlog, even though InnoDB rolled them back. This could, for example, cause
replicated databases to get out-of-sync.
- Fixed a bug: If the database
happened to crash in the middle of a commit, then the recovery might leak
tablespace pages.
- Fixed a bug: If you specified
a non-latin1 character set in my.cnf, then, in contrary to what is stated
in the manual, in a foreign key constraint a string type column had to have
the same length specification in the referencing table and the referenced
table.
- Fixed a bug: DROP TABLE
or DROP DATABASE could fail if there simultaneously was a CREATE TABLE running.
- Fixed a bug: If you configured
the buffer pool bigger than 2 GB in a 32-bit computer, InnoDB would assert
in buf0buf.ic line 214.
- Fixed a bug: on 64-bit
computers updating rows which contained the SQL NULL in some column could
cause the undo log and the ordinary log to become corrupt.
- Fixed a bug: innodb_log_monitor
caused a hang if it suppressed lock prints for a page.
- Fixed a bug: in the HP-UX-10.20
version mutexes would leak and cause race conditions and crashes in any part
of InnoDB code.
- Fixed a bug: if you ran
in the AUTOCOMMIT mode, executed a SELECT, and immediately after that a RENAME
TABLE, then RENAME would fail and MySQL would complain about error 1192.
- Fixed a bug: if compiled
on 64-bit Solaris, InnoDB produced a bus error at startup.
MySQL/InnoDB-4.0.2, July
10, 2002
- InnoDB is essentially
the same as InnoDB-3.23.51.
- If no innodb_data_file_path
is specified, InnoDB at the database creation now creates a 10 MB auto-extending
data file ibdata1 to the datadir of MySQL. In 4.0.1 the file was 64 MB and
not auto-extending.
MySQL/InnoDB-3.23.51,
June 12, 2002
- Fixed a bug: a join could
result in a seg fault in copying of a BLOB or TEXT column if some of the BLOB
or TEXT columns in the table contained SQL NULL values.
- Fixed a bug: if you added
self-referential foreign key constraints with ON DELETE CASCADE to tables
and a row deletion caused InnoDB to attempt the deletion of the same row twice
because of a cascading delete, then you got an assertion failure.
- Fixed a bug: if you use
MySQL 'user level locks' and close a connection, then InnoDB may assert in
ha_innobase.cc, line 302.
MySQL/InnoDB-3.23.50,
April 23, 2002
- InnoDB now supports an
auto-extending last data file. You do not need to preallocate the whole data
file at the database startup.
- Made several changes
to facilitate the use of the InnoDB Hot Backup tool. It is a separate non-free
tool you can use to take online backups of your database without shutting
down the server or setting any locks.
- If you want to run the
InnoDB Hot Backup tool on an auto-extending data file you have to upgrade
it to version ibbackup-0.35.
- The log scan phase in
crash recovery will now run much faster.
- Starting from this server
version, the hot backup tool truncates unused ends in the backup InnoDB data
files.
- To allow the hot backup
tool to work, on Windows we no longer use unbuffered i/o or native async i/o;
instead we use the same simulated async i/o as on Unix.
- You can now define the
ON DELETE CASCADE or ON DELETE SET NULL clause on foreign keys.
- FOREIGN KEY constraints
now survive ALTER TABLE and CREATE INDEX.
- We suppress the FOREIGN
KEY check if any of the column values in the foreign key or referenced key
to be checked is the SQL NULL. This is compatible with Oracle, for example.
- SHOW CREATE TABLE now
lists also foreign key constraints. Also mysqldump no longer forgets about
foreign keys in table definitions.
- You can now add a new
foreign key constraint with ALTER TABLE ... ADD CONSTRAINT FOREIGN KEY (...)
REFERENCES ... (...).
- FOREIGN KEY definitions
now allow backquotes around table and column names.
- MySQL command SET TRANSACTION
ISOLATION LEVEL ... has now the following effect on InnoDB tables: if a transaction
is defined as SERIALIZABLE then InnoDB conceptually adds LOCK IN SHARE MODE
to all consistent reads. If a transaction is defined to have any other isolation
level, then InnoDB obeys its default locking strategy which is REPEATABLE
READ.
- SHOW TABLE STATUS no
longer sets an x-lock at the end of an auto-increment index if the auto-increment
counter has already been initialized. This removes in almost all cases the
surprising deadlocks caused by SHOW TABLE STATUS.
- Fixed a bug: in a CREATE
TABLE statement the string 'foreign' followed by a non-space character confused
the FOREIGN KEY parser and caused table creation to fail with errno 150.
MySQL/InnoDB-3.23.49,
February 17, 2002
- Fixed a bug: if you called
DROP DATABASE for a database on which there simultaneously were running queries,
the MySQL server could crash or hang. Crashes fixed, but a full fix has to
wait some changes in the MySQL layer of code.
- Fixed a bug: on Windows
one had to put the database name in lower case for DROP DATABASE to work.
Fixed in 3.23.49: case no longer matters on Windows. On Unix the database
name remains case-sensitive.
- Fixed a bug: if one defined
a non-latin1 character set as the default character set, then definition of
foreign key constraints could fail in an assertion failure in dict0crea.c,
reporting an internal error 17.
MySQL/InnoDB-3.23.48,
February 9, 2002
- Tuned the SQL optimizer
to favor more often index searches over table scans.
- Fixed a performance problem
when several large SELECT queries are run concurrently on a multiprocessor
Linux computer. Large CPU-bound SELECT queries will now also generally run
faster on all platforms.
- If MySQL binlogging is
used, InnoDB now prints after crash recovery the latest MySQL binlog file
name and the position in that file (= byte offset) InnoDB was able to recover
to. This is useful, for example, when resynchronizing a master and a slave
database in replication.
- Added better error messages
to help in installation problems.
- One can now recover also
MySQL temporary tables which have become orphaned inside the InnoDB tablespace.
- InnoDB now prevents a
FOREIGN KEY declaration where the signedness is not the same in the referencing
and referenced integer columns.
- Fixed a bug: calling
SHOW CREATE TABLE or SHOW TABLE STATUS could cause memory corruption and make
mysqld to crash. Especially at risk was mysqldump, because it calls frequently
SHOW CREATE TABLE.
- Fixed a bug: if on Unix
you did an ALTER TABLE to an InnoDB table and simultaneously did queries to
it, mysqld could crash with an assertion failure in row0row.c, line 474.
- Fixed a bug: if inserts
to several tables containing an auto-inc column were wrapped inside one LOCK
TABLES, InnoDB asserted in lock0lock.c.
- In 3.23.47 we allowed
several NULLS in a UNIQUE secondary index. But CHECK TABLE was not relaxed:
it reports the table as corrupt. CHECK TABLE no longer complains in this situation.
- Fixed a bug: on Sparc
and other high-endian processors SHOW VARIABLES showed innodb_flush_log_at_trx_commit
and other boolean-valued startup parameters always OFF even if they were switched
on.
- Fixed a bug: if you ran
mysqld-max-nt as a service on Windows NT/2000, the service shutdown did not
always wait long enough for the InnoDB shutdown to finish.
MySQL/InnoDB-3.23.47,
December 28, 2001
- Recovery happens now
faster, especially in a lightly loaded system, because background checkpointing
has been made more frequent.
- InnoDB allows now several
similar key values in a UNIQUE secondary index if those values contain SQL
NULLs. Thus the convention is now the same as in MyISAM tables.
- InnoDB gives a better
row count estimate for a table which contains BLOBs.
- In a FOREIGN KEY constraint
InnoDB is now case-insensitive to column names, and in Windows also to table
names.
- InnoDB allows a FOREIGN
KEY column of CHAR type to refer to a column of VARCHAR type, and vice versa.
MySQL silently changes the type of some columns between CHAR and VARCHAR,
and these silent changes do not hinder FOREIGN KEY declaration any more.
- Recovery has been made
more resilient to corruption of log files.
- Unnecessary statistics
calculation has been removed from queries which generate a temporary table.
Some ORDER BY and DISTINCT queries will now run much faster.
- MySQL now knows that
the table scan of an InnoDB table is done through the primary key. This will
save a sort in some ORDER BY queries.
- The maximum key length
of InnoDB tables is again restricted to 500 bytes. The MySQL interpreter is
not able to handle longer keys.
- The default value of
innodb_lock_wait_timeout was changed from infinite to 50 seconds, the default
value of innodb_file_io_threads from 9 to 4.
MySQL/InnoDB-4.0.1, December
23, 2001
- InnoDB is the same as
in 3.23.47.
- In 4.0.0 the MySQL interpreter
did not know the syntax LOCK IN SHARE MODE. This has been fixed.
- In 4.0.0 multi-table
delete did not work for transactional tables. This has been fixed.
MySQL/InnoDB-3.23.46,
November 30, 2001
- This is the same as 3.23.45.
MySQL/InnoDB-3.23.45,
November 23, 2001
- This is a bugfix release.
- In versions 3.23.42-.44
when creating a table on Windows you have to use lower case letters in the
database name to be able to access the table. Fixed in 3.23.45.
- InnoDB now flushes stdout
and stderr every 10 seconds: if these are redirected to files, the file contents
can be better viewed with an editor.
- Fixed an assertion failure
in .44, in trx0trx.c, line 178 when you drop a table which has the .frm file
but does not exist inside InnoDB.
- Fixed a bug in the insert
buffer. The insert buffer tree could get into an inconsistent state, causing
a crash, and also crashing the recovery. This bug could appear especially
in large table imports or alterations.
- Fixed a bug in recovery:
InnoDB could go into an infinite loop constantly printing a warning message
that it cannot find free blocks from the buffer pool.
- Fixed a bug: when you
created a temporary table of the InnoDB type, and then used ALTER TABLE to
it, the MySQL server could crash.
- Prevented creation of
MySQL system tables 'mysql.user', 'mysql.host', or 'mysql.db', in the InnoDB
type.
- Fixed a bug which can
cause an assertion failure in 3.23.44 in srv0srv.c, line 1728.
MySQL/InnoDB-3.23.44,
November 2, 2001
- You can define foreign
key constraints on InnoDB tables. An example: FOREIGN KEY (col1) REFERENCES
table2(col2).
- You can create > 4
GB data files in those file systems that allow it.
- Improved InnoDB monitors,
including a new innodb_table_monitor which allows you to print the contents
of the InnoDB internal data dictionary.
- DROP DATABASE will now
work also for InnoDB tables.
- Accent characters in
the default character set latin1 will be ordered according to the MySQL ordering.
NOTE: if you are using latin1 and have inserted characters whose code is >
127 to an indexed CHAR column, you should run CHECK TABLE on your table when
you upgrade to 3.23.43, and drop and reimport the table if CHECK TABLE reports
an error!
- InnoDB will calculate
better table cardinality estimates.
- Change in deadlock resolution:
in .43 a deadlock rolls back only the SQL statement, in .44 it will roll back
the whole transaction.
- Deadlock, lock wait timeout,
and foreign key constraint violations (no parent row, child rows exist) now
return native MySQL error codes 1213, 1205, 1216, 1217, respectively.
- A new my.cnf parameter
innodb_thread_concurrency helps in performance tuning in high concurrency
environments.
- A new my.cnf option innodb_force_recovery
will help you in dumping tables from a corrupted database.
- A new my.cnf option innodb_fast_shutdown
will speed up shutdown. Normally InnoDB does a full purge and an insert buffer
merge at shutdown.
- Raised maximum key length
to 7000 bytes from a previous limit of 500 bytes.
- Fixed a bug in replication
of auto-inc columns with multiline inserts.
- Fixed a bug when the
case of letters changes in an update of an indexed secondary column.
- Fixed a hang when there
are > 24 data files.
- Fixed a crash when MAX(col)
is selected from an empty table, and col is a not the first column in a multi-column
index.
- Fixed a bug in purge
which could cause crashes.
MySQL/InnoDB-3.23.43,
October 4, 2001
- This is essentially the
same as InnoDB-3.23.42.
MySQL/InnoDB-3.23.42,
September 9, 2001
- Fixed a bug which corrupted
the table if the primary key of a > 8000-byte row was updated.
- There are now 3 types
of InnoDB Monitors: innodb_monitor, innodb_lock_monitor, and innodb_tablespace_monitor.
innodb_monitor now prints also buffer pool hit rate and the total number of
rows inserted, updated, deleted, read.
- Fixed a bug in RENAME
TABLE.
- Fixed a bug in replication
with an auto-increment column.
MySQL/InnoDB-3.23.41,
August 13, 2001:
- Support for < 4 GB
rows. The previous limit was 8000 bytes.
- Use the doublewrite file
flush method.
- Raw disk partitions supported
as data files.
- InnoDB Monitor.
- Several hang bugs fixed
and an ORDER BY bug ('Sort aborted') fixed.
MySQL/InnoDB-3.23.40,
July 16, 2001:
- Only a few rare bugs
fixed.
MySQL/InnoDB-3.23.39,
June 13, 2001:
- CHECK TABLE now works
for InnoDB tables.
- A new my.cnf parameter
innodb_unix_file_flush_method introduced. It can be used to tune disk write
performance.
- An auto-increment column
now gets new values past the transaction mechanism. This saves CPU time and
eliminates transaction deadlocks in new value assignment.
- Several bug fixes, most
notably the rollback bug in 3.23.38.
MySQL/InnoDB-3.23.38,
May 12, 2001:
- The new syntax SELECT
... LOCK IN SHARE MODE is introduced.
- InnoDB now calls fsync
after every disk write and calculates a checksum for every database page it
writes or reads, which will reveal disk defects.
- Several bug fixes.
17
InnoDB contact information
Contact information of Innobase
Oy, producer of the InnoDB engine:
Website: www.innodb.com
Heikki.Tuuri@innodb.com
phone: 358-9-6969 3250 (office) 358-40-5617367 (mobile)
Innobase Oy Inc.
World Trade Center Helsinki
Aleksanterinkatu 17
P.O.Box 800
00101 Helsinki
Finland
18
The GNU GPL License Version 2
The GPL
license text.
19 Known
bugs and their fixes in old versions of InnoDB
See a separate web
page.
20 The
TODO list of new features to InnoDB
See a separate web
page.
21 Some
books and articles on MySQL/InnoDB
See a separate web
page.