MySQL 5.1.6-alpha, a new version of the popular Open Source Database
Management System, has been released. The Community Edition is now
available in source and binary form for a number of platforms from our
download pages at
and mirror sites.
Note that not all mirror sites may be up to date at this point in
time - if you can't find this version on some mirror, please try
again later or choose another download site.
This is a new alpha development release, adding new features and
fixing recently discovered bugs.
NOTE: This Alpha release, as any other pre-production release, should
not be installed on ``production'' level systems or systems with
Please refer to our bug database at http://bugs.mysql.com/ for more
details about the individual bugs fixed in this version.
We welcome and appreciate your feedback!
News from the ChangeLog:
Functionality added or changed:
* Packaging changes: MySQL 5.1.6 introduces some changes to
+ Distributions include both a mysqld optimized server and
mysqld-debug debugging server. There is no separate debug
+ There is no longer a mysqld-max server.
+ Server binaries are no longer stripped, except for RPM
+ Binary distributions for Unix and Unix-like systems no
longer include safe_mysqld as a link to mysqld_safe.
safe_mysqld has been deprecated since MySQL 4.0 and is
* Events: MySQL 5.1.6 introduces the Events Scheduler, which
allows one to schedule SQL statements for execution at
predetermined times. Events can be transient (one-time-only) or
recurrent at regular intervals, and may execute queries and
statements permitted in stored routines, including compound
+ The CREATE EVENT statement creates events.
Users must have the EVENT privilege to create events.
+ Events can be altered after creation (with ALTER
EVENT) and dropped when no longer needed (with DROP EVENT).
+ For more information, see
* INCOMPATIBLE CHANGE: This release introduced the TRIGGER
privilege. Previously, the SUPER privilege was needed to
create or drop triggers. Now those operations require the
TRIGGER privilege. This is a security improvement because
you no longer need to grant users the SUPER privilege to
enable them to create triggers. However, the requirement
that the account named in a trigger's DEFINER clause
must have the SUPER privilege has changed to a requirement
for the TRIGGER privilege. After upgrading, be sure to
update your grant tables as described in Section 5.5,
"mysql_fix_privilege_tables --- Upgrade MySQL System Tables."
This process will assign the TRIGGER privilege to all accounts
that had the SUPER privilege. (After updating, you might also
consider whether any of those accounts no longer need SUPER.)
If you fail to update the grant tables, triggers may fail when
activated. (Bug#9142 (http://bugs.mysql.com/9142))
* INCOMPATIBLE CHANGE: Due to a change in the naming scheme for
partitioning and subpartitioning files, it is not possible for
the server to read partitioned tables created in previous MySQL
versions. A suggested workaround is (1) to create a non-
partitioned table with the same table schema using a standard
CREATE TABLE statement (that is, with no partitioning clauses)
and then (2) to issue a SELECT INTO to copy the data into the
non-partitioned table before the upgrade; following the upgrade,
you can partition the new table using ALTER TABLE ... PARTITION
BY .... Alternatively, you can dump the table using mysqldump
prior to upgrading and reload it afterwards with LOAD DATA. In
either case, you should drop the pre-5.1.6 partitioned tables
before upgrading to 5.1.6 or later.
Important: If any partitioned tables that were created
prior to MySQL 5.1.6 are present following an upgrade to MySQL
5.1.6 or later, it is also not possible to read from the
INFORMATION_SCHEMA.PARTITIONS table, nor will you be able to
drop those tables or the database or databases in which they
are located. In this event, you must: (1) shut down mysqld;
(2) manually delete the table, partition, and (if any)
subpartition files; and then (3) restart the MySQL Server.
* INCOMPATIBLE CHANGE: Words with apostrophes are now matched in
a FULLTEXT search against non-apostrophe words (for example, a
search for Jerry will match against the term Jerry's). Users
upgrading to this version must issue REPAIR TABLE statements
for tables containing FULLTEXT indexes.
* Partition pruning. A new optimization now ensures searches of
partitioned tables use only those partitions relevant to the
search. The optimization also affects INSERT and UPDATE
operations on partitioned tables, making those operations
faster on partitioned table than in earlier versions of MySQL.
* Replication between MySQL Clusters is now supported. It is now
also possible to replicate between a MySQL Cluster and a non-
cluster database. See Section 16.7, "MySQL Cluster Replication."
* The mysqldump utility now supports an option for dumping
tablespaces. Use "-Y" or "--all-tablespaces" to enable this
functionality. (Bug#16753 (http://bugs.mysql.com/16753))
* Partition support is not an "engine", but it was included in
the output of SHOW ENGINES. Now it is not.
The have_partition_engine was renamed to have_partitioning.
* ANALYZE TABLE is now supported for partitioned tables.
* Support for OPTIMIZE, CHECK, and REPAIR of partitioned
tables has been added.
* The slow query and general logs can now be queried in
table form, using the CSV engine; that is, it's now
possible to SELECT FROM mysql.slow_log and SELECT
* Added the --log-output option for controlling whether log
files or log tables are used.
* Added the character_set_filesystem system variable.
* Added the event_scheduler system variable.
* Added the ndb_extra_logging system variable.
* Added the FILES table to INFORMATION_SCHEMA.
* Added the EVENTS table to INFORMATION_SCHEMA.
* Added the PARTITIONS table to INFORMATION_SCHEMA.
* The ARCHIVE storage engine supports the AUTO_INCREMENT column
attribute and the AUTO_INCREMENT table option. Section 14.8,
"The ARCHIVE Storage Engine."
* Fixed a crash when fulltext search parser plugin returned more
words than half of the length (in bytes) of the query string.
* Significant optimizations of partition management has been
performed for non-NDB partitioned tables. This relates to ALTER
TABLE DROP PARTITION, ALTER TABLE ADD PARTITION, ALTER TABLE
+ Now adding a new partition to RANGE/LIST partitioned can
be done without touching other partitions and the same
with DROP PARTITION and REORGANIZE will only reorganize
those partitions necessary to reorganize.
* The ALTER TABLE REORGANIZE PARTITION has been changed,
previously the syntax used the keyword REORGANISE.
* A number of new partition commands have been added:
ALTER TABLE OPTIMIZE PARTITION
ALTER TABLE ANALYZE PARTITION
ALTER TABLE CHECK PARTITION
ALTER TABLE REPAIR PARTITION
ALTER TABLE REBUILD PARTITION
* STR_TO_DATE(1,NULL) caused a server crash.
* An INSERT statement in a stored procedure corrupted the binary
* MYSQL_OPT_RECONNECT option was modified by calls to the
* Specifying a value for --tmptable without a trailing slash had
unpredictable results. (Bug#15904 (http://bugs.mysql.com/15904))
* Attempting to insert data into a partitioned table that used
the BLACKHOLE storage engine caused mysqld to crash.
* Using RANGE partitioning with a CASE statement as the
partitioning function would cause records to be placed in the
* ALTER TABLE ... ADD PARTITIONS on a table with one partition
crashed the server. (Bug#15820 (http://bugs.mysql.com/15820))
* NDB Cluster returned incorrect "Can't find file" error for OS
error 24, changed to "Too many open files".
* Multi-byte path names for LOAD DATA and SELECT ... INTO OUTFILE
caused errors. (Bug#12448 (http://bugs.mysql.com/12448))
* Certain subqueries where the inner query is the result of a
aggregate function would return different results on MySQL 5.0
than on MySQL 4.1. (Bug#15347 (http://bugs.mysql.com/15347))
* Error message for specifying value for which no partition
exists returned wrong values on certain platforms.
* Certain Japanese table names were not properly saved during a
CREATE TABLE statement. (Bug#3906 (http://bugs.mysql.com/3906))
* NDB Cluster leaked disk space when performing INSERTS/DELETES
in a loop. (Bug#16771 (http://bugs.mysql.com/16771))
* NDB Cluster returned wrong error when tablespace on disk was
full. (Bug#16738 (http://bugs.mysql.com/16738))
* The DATA DIRECTORY and INDEX DIRECTORY clauses of a CREATE
TABLE statement involving partitions did not work.
* Subquery could return wrong results when records cache and
grouping was involved. (Bug#15347 (http://bugs.mysql.com/15347))
* In some cases the query optimizer did not properly perform
multiple joins where inner joins followed left joins, resulting
in corrupted result sets. (Bug#15633 (http://bugs.mysql.com/15633))
* The absence of a table in the left part of a left or right join
was not checked prior to name resolution, which resulted in a
server crash. (Bug#15538 (http://bugs.mysql.com/15538))
* NDB Cluster: Trying to import too many dumped tables requiring
resources beyond those allocated in the cluster configuration
would cause the server to crash instead of reporting an
insufficient resources error.
* NDB Cluster (Disk Data): Tablespaces created using parameters
with relatively low values (< 10 MB) produced filesizes much
smaller than expected. (Bug#16742 (http://bugs.mysql.com/16742))
* NDB Cluster: CREATE TABLESPACE statements were incorrectly
parsed on 64-bit platforms. (INITIAL SIZE size worked, but INITIAL
SIZE = size failed.) (Bug#13556 (http://bugs.mysql.com/13556))
* Trying to add more than one partition in a single ALTER TABLE...
ADD PARTITION statement caused the server to crash.
* Creating a partitioned table using a storage engine other than
the session default storage engine caused the server to crash.
* An ALTER TABLE ... PARTITION BY ... statement did not have any
effect. (Bug#15523 (http://bugs.mysql.com/15523))
* NDBCluster (Disk Data): The error message generated by a failed
ADD UNDOFILE did not provide any reasons for the failure.
* NDBCluster (Disk Data): DROP LOGFILE GROUP corrupted the
cluster file system and caused ndbd to fail when running more
than one node on the same system.
* NDBCluster: A bitfield whose offset and length totaled 32 would
crash the cluster. (Bug#16125 (http://bugs.mysql.com/16125))
* NDBCluster: Upon the completion of a scan where a key request
remained outstanding on the primary replica and a starting node
died, the scan did not terminate. This caused incompleted error
handling of the failed node.
* NDBCluster: The ndb_autodiscover test failed sporadically due
to a node not being permitted to connect to the cluster.
* Using mysqldump to obtain a dump of a partitioned table
employing the NDB storage engine produced a non-functional table
creation statement. (Bug#13155 (http://bugs.mysql.com/13155))
* SHOW CREATE TABLE did not display the PARTITIONS clause for
tables partitioned by HASH or KEY.
* Inserting a negative value into an integer column used as the
partitioning key for a table partitioned by HASH could cause
the server to crash. (Bug#15968 (http://bugs.mysql.com/15968))
* With a table partitioned by LIST, inserting a value which was
smaller than any value shown in the partitioning value-lists
could cause the server to crash.
* ALTER TABLE ... DROP PARTITION would truncate all DATE column
values in the table's remaining partitions to NULL.
* ALTER TABLE ... ADD PARTITION could crash the server or cause
an Out of memory error in some circumstances.
* The server would allow foreign keys to be declared in the
definition of a partitioned table despite the fact that
partitioned tables do not support foreign keys (see Section
17.4, "Restrictions and Limitations on Partitioning").
* A SELECT from a key-partitioned table with a multi-column key
could cause the server to crash.
* Issuing a TRUNCATE statement twice in succession on the same
partitioned table would cause the server to crash.
* Using a REPLACE statement on a partitioned table caused the
server to crash. (Bug#13440 (http://bugs.mysql.com/13440))
* Using an identifier rather than a literal integer value in the
LESS THAN clause of a range-partitioned table could cause the
server to crash and corruption of tables.
* Using ENGINE=... within a PARTITION clause could cause the
server to crash. (Bug#13438 (http://bugs.mysql.com/13438))
* CREATE TABLE ... LIKE did not work if the table whose schema
was to be copied was a partitioned table.
* SHOW CREATE TABLE did not display the PARTITIONS clause for
tables partitioned by HASH or KEY.
* Certain permission management statements could create a NULL
hostname for a user, resulting in a server crash.
* Temporary table aliasing did not work inside stored functions.
* Parallel builds occasionally failed on Solaris.
Kent Boortz, Senior Software Developer
MySQL AB, www.mysql.com
Office: +46 18 174400 ext. 4450 (VoIP)
Office: +46 19 182931
Mobile: +46 70 2791171
|• MySQL 5.1.6-alpha has been released||Kent Boortz||14 Feb|