Released on 12 Apr 2006
MySQL 5.1.9 Changelog

This is a new Beta development release, fixing recently discovered bugs.


This Beta release, as any other pre-production release, should not be installed on production level systems or systems with critical data. It is good practice to back up your data before installing any new version of software. Although MySQL has worked very hard to ensure a high level of quality, protect your data by making a backup as you would for any software beta release. Please refer to our bug database at for more details about the individual bugs fixed in this version.

This section documents all changes and bug fixes that have been applied since the last official MySQL release. If you would like to receive more fine-grained and personalized update alerts about fixes that are relevant to the version and features you use, please consider subscribing to MySQL Enterprise (a commercial MySQL offering). For more details, please see (

  • Functionality Added or Changed

  • Bugs Fixed

Functionality Added or Changed

  • MySQL Cluster: The NDB storage engine now supports CREATE TABLE statements of arbitrary length. (Previously, CREATE TABLE statements for MySQL Cluster tables could contain a maximum of 4096 characters only.) (Bug #17813)

  • MySQL Cluster: Added the --nowait-nodes startup option for ndbd, making it possible to skip specified nodes without waiting for them to start when starting the cluster. See ndbd — The MySQL Cluster Data Node Daemon.

  • mysqld_safe no longer checks for a mysqld-max binary. Instead, mysqld_safe nows checks only for the standard mysqld server unless another server binary is specified explicitly using --mysqld or --mysqld-version. If you previously relied on the implicit invocation of mysqld-max, you should use an appropriate option now. (Bug #17861)

  • For partitioned tables, the output of SHOW TABLE STATUS now shows in the Engine column the name of the storage engine used by all partitions for the table; in the Create_options column, the output now shows partitioned for a partitioned table. This change also affects the values shown in the corresponding columns of the INFORMATION_SCHEMA.TABLES table. (Bug #17631)

  • SHOW PLUGIN was renamed to SHOW PLUGINS. SHOW PLUGIN now is deprecated and generates a warning. (Bug #17112)

  • Large file support was re-enabled for the MySQL server binary for the AIX 5.2 platform. (Bug #13571)

  • Binary MySQL distributions now include a mysqld-max server, in addition to the usual mysqld optimized server and the mysqld-debug debugging server.

Bugs Fixed

  • Security Fix: Invalid arguments to DATE_FORMAT() caused a server crash. Thanks to Jean-David Maillefer for discovering and reporting this problem to the Debian project and to Christian Hammers from the Debian Team for notifying us of it. (Bug #20729, CVE-2006-3469)

  • MySQL Cluster; Partitioning: BLOB columns did not work correctly with user-partitioned NDB tables. (Bug #16796)

  • MySQL Cluster: An uninitialized internal variable could lead to unexpected results. (Bug #18831)

  • MySQL Cluster: TRUNCATE TABLE did not reset the AUTO_INCREMENT counter for MyISAM tables when issued inside a stored procedure.


    This bug did not affect InnoDB tables.

    In addition, TRUNCATE TABLE does not reset the AUTO_INCREMENT counter for NDB tables regardless of when it is called.

    (Bug #14945)

    References: See also Bug #18864.

  • For full-text searches in boolean mode, and when a full-text parser plugin was used, a MYSQL_FTPARSER_PARAM::ftparser_state could have been corrupted by recursive calls to the plugin. (Bug #18836)

  • mysql_reconnect() sent a SET NAMES statement to the server, even for pre-4.1 servers that do not understand the statement. (Bug #18830)

  • A query against a partitioned table using WHERE col IS NULL could produce incorrect results given the following conditions:

    • The table had partitions and subpartitions

    • The partitioning function depended on a single column col of one of the MySQL integer types

    • The partitioning function was not monotonically increasing

    The same issue could cause the server to crash when run in debug mode. (Bug #18659)

  • Partition pruning did not work properly for some kinds of partitioning and subpartitioning, with certain WHERE clauses. (Partitions and subpartitions that should have been marked as used were not so marked.) The error could manifest as incorrect content in EXPLAIN PARTITIONS output as well as missing rows in the results of affected queries. (Bug #18558)

  • Building the server using --with-example-storage-engine failed to enable the EXAMPLE storage engine in the server. (Bug #18464)

  • If InnoDB encountered a ER_LOCK_TABLE_FULL error and rolled back a transaction, the transaction was still written to the binary log. (Bug #18283)

  • Complex queries with nested joins could cause a server crash. (Bug #18279)

  • COUNT(*) on a MyISAM table could return different results for the base table and a view on the base table. (Bug #18237)

  • EXTRACT(QUARTER FROM date) returned unexpected results. (Bug #18100)

  • Queries using WHERE ... IS NULL returned incorrect results from partitioned tables. (Bug #18070)

  • Partition pruning did not perform correctly with partitions on NULL, and could potentially crash the server. (Bug #18053)

  • MEDIUMINT columns were not handled in the same way as other column types by partition pruning.

    Partition pruning would sometimes use inappropriate columns in performing queries.

    Both of these issues were rectified as part of the same bug fix. (Bug #18025)

  • For tables created in a MySQL 4.1 installation upgraded to MySQL 5.0 and up, multiple-table updates could update only the first matching row. (Bug #16281)

  • For mysql.server, if the basedir option was specified after datadir in an option file, the setting for datadir was ignored and assumed to be located under basedir. (Bug #16240)

  • Triggers created in one version of the server could not be dropped after upgrading to a newer version. (Bug #15921)

  • CAST(double AS SIGNED INT) for large double values outside the signed integer range truncated the result to be within range, but the result sometimes had the wrong sign, and no warning was generated. (Bug #15098)

  • Quoted values could not be used for partition option values. (Bug #13520)

  • Delimited identifiers could not be used in defining partitions. (Bug #13433)

  • mysql_config returned incorrect libraries on x86_64 systems. (Bug #13158)

  • The server was always built as though --with-extra-charsets=complex had been specified. (Bug #12076)