Released on 10 Jan 2006
MySQL 5.1.5 Changelog
  • Functionality Added or Changed

  • Bugs Fixed

Functionality Added or Changed

  • Replication: Added the binlog_format system variable that controls whether to use row-based or statement-based binary logging. Added the --binlog-format and --binlog-row-event-max-size server options for binary logging control. See Replication Formats.

  • Added the --port-open-timeout option to mysqld to control how many seconds the server should wait for the TCP/IP port to become free if it cannot be opened. (Bug #15591)

  • A new statement, BINLOG, is generated by mysqlbinlog to represent row-based events in binary log files. The statement argument, a base 64-encoded string, is decoded by the server to determine the data change indicated by the corresponding event.

  • Two new Hungarian collations are included: utf8_hungarian_ci and ucs2_hungarian_ci. These support the correct sort order for Hungarian vowels. However, they do not support the correct order for sorting Hungarian consonant contractions; we expect to fix this issue in a future release.

  • Added the XML functions ExtractValue() and UpdateXML(). ExtractValue() returns the content of a fragment of XML matching a given XPath expression. UpdateXML() replaces the element selected from a fragment of XML by an XPath expression supplied by the user with a second XML fragment (also user-supplied), and returns the modified XML. See XML Functions.

  • Added the --create-schema, --lock-directory, --number-of-queries, --only-print, --preserve-schema, and --slave options for mysqlslap.

  • Plugins now can have status variables that are displayed in the output from SHOW STATUS. See Writing Plugins.

  • Added the INFORMATION_SCHEMA PLUGINS table and the SHOW PLUGIN statement.

  • If innodb_locks_unsafe_for_binlog is enabled or if the transaction isolation mode is READ COMMITTED, InnoDB can use semi-consistent reads. This affects treatment by UPDATE statements for rows that are already locked by another transaction. If a row is locked, InnoDB returns the latest committed version to MySQL so that MySQL can determine whether the row matches the WHERE condition of the UPDATE. If the row matches (must be updated), MySQL reads the row again and this time InnoDB either locks it or waits for a lock on it.

    References: See also Bug #3300.


  • Added the --base64-output option to mysqlbinlog to print all binary log entries using base64 encoding. This is for debugging only. Logs produced using this option should not be applied on production systems.

Bugs Fixed

  • INSERT DELAYED caused mysqld to crash. (Bug #16095)

  • The --plugin_dir option was not working. Specifying the parser name for full-text also did not work correctly. (Bug #16068)

  • Attempting to insert into a table partitioned by LIST a value less than any specified in one of the table's partition definitions resulted in a server crash. In such cases, mysqld now returns ERROR 1500 (HY000): Table has no partition for value v , where v is the out-of-range value. (Bug #15819)

  • Issuing a DROP USER statement could cause some users to encounter a hostname is not permitted to connect to this MySQL server error. (Bug #15775)

  • The output of mysqldump --triggers did not contain the DEFINER clause in dumped trigger definitions. (Bug #15110)

  • The output of SHOW TRIGGERS contained extraneous whitespace. (Bug #15103)

  • Creating a trigger caused a server crash if the table or trigger database was not known because no default database had been selected. (Bug #14863)

  • InnoDB: Comparison of indexed VARCHAR CHARACTER SET ucs2 COLLATE ucs2_bin columns using LIKE could fail. (Bug #14583)

  • A COMMIT statement followed by a ALTER TABLE statement on a BDB table caused server crash. (Bug #14212)

  • An INSERT ... SELECT statement between tables in a MERGE set can return errors when statement involves insert into child table from merge table or vice-versa. (Bug #5390)

  • InnoDB: A semi-consistent read for an UPDATE statement with no index column in the WHERE condition locked all the rows in the table. (Bug #3300)