Version Historie vonMySQL Server 4.1.6

Functionality added or changed:

  • InnoDB: The innodb_autoextend_increment startup option that was introduced in release 4.1.5 was made a settable global variable. (Bug#5736)
  • If a write to a MyISAM table fails because of a full disk or an exceeded disk quota, it now prints a message to the error log every 10 minutes, and waits until disk space becomes available. (Bug#3248)
  • TIMESTAMP columns now can store NULL values. To create such a column, you must explicitly specify the NULL attribute in the column specification. (Unlike all other data types, TIMESTAMP columns are NOT NULL by default.)
  • Now if ALTER TABLE converts some column to TIMESTAMP NOT NULL column it converts NULL values to current timestamp value (One can still get old behavior by setting system TIMESTAMP variable to zero).
  • Added option --sigint-ignore to the mysql command line client to make it ignore SIGINT signals (typically the result of the user pressing Control-C).
  • InnoDB: Added the startup option and settable global variable innodb_max_purge_lag for delaying INSERT, UPDATE and DELETE operations when the purge operations are lagging. The default value of this parameter is zero, meaning that there are no delays. See Section 13.2.10, “InnoDB Multi-Versioning”.
  • InnoDB: If DROP TABLE is invoked on an InnoDB table for which the .ibd file is missing, print to error log that the table was removed from the InnoDB data dictionary, and enable MySQL to delete the .frm file. Maybe DROP TABLE should issue a warning in this case.
  • On Windows, the MySQL configuration files included in the package now use .ini instead of .cnf as the file name suffix.
  • Now if ALTER TABLE converts one AUTO_INCREMENT column to another AUTO_INCREMENT column it preserves zero values (this includes the case that we don't change such column at all).

Bugs fixed:

  • Replication: SET COLLATION_SERVER... statements replicated by the slave SQL thread no longer advance its position. This is so that, if the thread is interrupted before the update is completed, it later performs the SET again. (Bug#5705)
  • InnoDB: Change error code to HA_ERR_ROW_IS_REFERENCED if we cannot DROP a parent table referenced by a FOREIGN KEY constraint; this error number is less misleading than the previous number HA_ERR_CANNOT_ADD_FOREIGN, but misleading still. (Bug#6202)
  • The server sometimes chose a nonoptimal execution plan for a prepared statement executed with changed placeholder values. (Bug#6042)
  • An attempt to execute a prepared statement with a subquery inside a boolean expression caused the server to crash. (Bug#5987)
  • InnoDB: UTF-8 characters were not always handled correctly in column prefix indexes. (Bug#5975)
  • InnoDB: If one updated a column so that its size changed, or updated it to an externally stored (TEXT or BLOB) value, then ANOTHER externally stored column would show up as 512 bytes of good data + 20 bytes of garbage in a consistent read that fetched the old version of the row. (Bug#5960)
  • Behavior of ALTER TABLE converting column containing NULL values to AUTO_INCREMENT column is no longer affected by NO_AUTO_VALUE_ON_ZERO mode. . (Bug#5915)
  • InnoDB: Make the check for excessive semaphore waits tolerate glitches in the system clock (do not crash the server if the system time is adjusted while InnoDB is under load.). (Bug#5898)
  • InnoDB: The FOREIGN KEY parser did not permit ALTER TABLE on tables whose names contained # characters. (Bug#5856)
  • InnoDB: ALTER TABLE t DISCARD TABLESPACE did not work correctly. (Bug#5851)
  • If the slave SQL thread finds a syntax error in a query (which should be rare, as the master parsed it successfully), it now stops immediately. (Bug#5711)
  • The server crashed when character set conversion was implicitly used in prepared mode, as in 'abc' LIKE CONVERT('abc' as utf8). (Bug#5688)
  • Inserting NULL into an AUTO_INCREMENT column failed when using prepared statements. (Bug#5510)
  • The mysql_change_user() C API function now frees all prepared statements associated with the connection. (Bug#5315)
  • InnoDB: SHOW CREATE TABLE now obeys the SET sql_mode = ANSI and SET sql_quote_show_create = 0 settings. (Bug#5292)
  • InnoDB: CREATE TEMPORARY TABLE ... ENGINE=InnoDB terminated mysqld when running in innodb_file_per_table mode. Now, per-table for temporary tables are created in the temporary directory used by mysqld. (Bug#5137)