Table of Contents
This appendix lists the changes from version to version in the MySQL source code through the latest version of MySQL 5.1, which is currently MySQL 5.1.4-alpha. Starting with MySQL 5.0, we began offering a new version of the Manual for each new series of MySQL releases (5.0, 5.1, and so on). For information about changes in previous release series of the MySQL database software, see the corresponding version of this Manual. For information about legacy versions of the MySQL software through the 4.1 series, see MySQL 4.1 Reference Manual.
We update this section as we add new features in the 5.1 series, so that everybody can follow the development process.
Note that we tend to update the manual at the same time we make changes to MySQL. If you find a recent version of MySQL listed here that you can't find on our download page (http://dev.mysql.com/downloads/), it means that the version has not yet been released.
The date mentioned with a release version is the date of the last BitKeeper ChangeSet on which the release was based, not the date when the packages were made available. The binaries are usually made available a few days after the date of the tagged ChangeSet, because building and testing all packages takes some time.
The manual included in the source and binary distributions may not be fully accurate when it comes to the release changelog entries, because the integration of the manual happens at build time. For the most up-to-date release changelog, please refer to the online version instead.
The following changelog shows what has been done in the 5.1 tree:
MySQL 5.1 implements support for a plugin API that allows the loading and unloading of components at runtime, without restarting the server. Section 27.2, “The MySQL Plugin Interface”.
For a full list of changes, please refer to the changelog sections for each individual 5.1.x release.
Functionality added or changed:
The bundled BDB library was upgraded to
version 4.4.16.
Added the cp1250_polish_ci collation for
the cp1250 character set.
Added the myisam_use_mmap system variable.
Added the --bdb-data-direct and
--bdb-log-direct server options.
Bugs fixed:
NDB Cluster: Using ORDER
BY
when selecting from a table having the primary key on a
primary_key_columnVARCHAR column caused a forced shutdown of
the cluster. (Bug #14828, Bug #15240, Bug #15682, Bug #15517)
ANALYZE TABLE did not properly update table
statistics for a MyISAM table with a
FULLTEXT index containing stopwords, so a
subsequent ANALYZE TABLE would not
recognize the table as having already been analyzed. (Bug
#14902)
The maximum value of MAX_ROWS was handled
incorrectly on 64-bit systems. (Bug #14155)
Multiple-table update operations were counting updates and not updated rows. As a result, if a row had several updates it was counted several times for the “rows matched” value but updated only once. (Bug #15028)
SELECT queries that began with an opening
parenthesis were not being placed in the query cache. (Bug
#14652)
Space truncation was being ignored when inserting into
BINARY or VARBINARY
columns. Now space truncation results in a warning, or an
error in strict mode. (Bug #14299)
Selecting from a view processed with the temptable algorithm caused a server crash if the query cache was enabled. (Bug #15119)
Creating a view that referenced a stored function that selected from a view caused a crash upon selection from the view. (Bug #15096)
Creating a view within a stored procedure could result in an out of memory error or a server crash. (Bug #14885)
SHOW CREATE DATABASE was sometimes refused
when the client had privileges for the database. (Bug #9785)
mysql ignored the
MYSQL_TCP_PORT environment variable. (Bug
#5792)
ROW_COUNT() returned an incorrect result
after EXECUTE of a prepared statement. (Bug
#14956)
Invalid casts to DATE values now result in
a message of Incorrect datetime value,
rather than Truncated incorrect datetime
value. (Bug #8294)
Attempts to assign NULL to a NOT
NULL column in strict mode now result in a message
of Column ', rather than col_name'
cannot be nullColumn set to
default value; NULL supplied to NOT NULL column
'. (Bug #11491)
col_name' at row
n
For binary string data types, mysqldump
--hex-blob produced an illegal output value of
0x rather than ''. (Bug
#13318)
Some comparisons for the IN() operator were
inconsistent with equivalent comparisons for the
= operator. (Bug #12612)
Functionality added or changed:
This is the first public alpha release of the current MySQL 5.1 development branch, providing an insight to upcoming features. While some of these are still under heavy development, this release includes the following new features and changes (in comparison to the current MySQL 5.0 production release):
Partitioning: allows distributing portions of individual tables across a filesystem, according to rules which can be set when the table is created. In effect, different portions of a table are stored as separate tables in different locations, but from the user point of view, the partitioned table is still a single table. See Chapter 18, Partitioning for further information on this functionality. (Author: Mikael Ronström)
Plugin API: MySQL 5.1 will add support for a very flexible plugin API that will allow the loading and unloading of various components at runtime, without restarting the server. While the work on this is not finished yet, pluggable full-text parsers are a first step in this direction. This allows users to implement their own input filter on the indexed text, enabling full-text search capability on arbitrary data like PDF files or other document formats. A pre-parser full-text plugin performs the actual parsing and extraction of the text and hands it over to the builtin MySQL full-text search. (Author: Sergey Vojtovich)
The plugin API requires the mysql.plugin
table. When upgrading from an older version of MySQL, you
should run the mysql_fix_privilege_tables
command to create this table. See
Section 2.10.2, “Upgrading the Grant Tables”.
Incompatible change: Plugins
are installed in the directory named by the
plugin_dir system variable. This variable
also controls the location from which the server loads
user-defined functions (UDFs), which is a change from earlier
versions of MySQL. That is, all UDF library files now must be
installed in the plugin directory. When upgrading from an
older version of MySQL, you must migrate your UDF files to the
plugin directory.
The Instance Manager (IM) now has some additional functionality:
SHOW provides a listing of all log files
used by the instance. (Author: Petr Chardin)
instance_name
LOG FILES
SHOW retrieves a
part of the specified log file. (Author: Petr Chardin)
instance_name
LOG {ERROR | SLOW | GENERAL}
size
SET
sets an option to the specified value and writes it to
the config file See Section 5.2, “mysqlmanager — The MySQL Instance Manager”
for more details on these new commands. (Author: Petr
Chardin)
instance_name.
option_name=option_value
The performance of boolean full-text searches (using the “+” Operator) has been improved. See Section 12.7, “Full-Text Search Functions” for more details about full-text searching. (Author: Sergey Vojtovich)
VARCHAR fields used in MySQL Cluster tables
are now variable-sized; that is, they now only allocate as
much space as required to store the data. Previously, a
VARCHAR(
column allocated n+2 bytes (aligned to 4 bytes), regardless if
the actual inserted value required that much space. (In other
words, a n)VARCHAR column always required the
same, fixed, amount of storage as a CHAR
column of the same size.)
Renamed the table_cache system variable to
table_open_cache. Any scripts that refer to
table_cache should be updated to use the
new name.
Added the table_definition_cache system
variable. If you use a large number of tables, you can create
a large table definition cache to speed up opening of tables.
The table definition cache takes less space and does not use
file descriptors, unlike the normal table cache.
Functionality added or changed:
Added MAXLOCKS,
MINLOCKS, MAXWRITE, and
MINWRITE as allowable values of the
--bdb-lock-detect option. (Bug #14876)
Added the bdb_cache_parts and
bdb_region_size system variables, and
allowed bdb_cache_size to be larger than
4GB on systems that support it. (Bug #14895)
Added Transactions, XA,
and Savepoints columns to SHOW
ENGINES output.
Added --replace to
mysqldump. This option uses
REPLACE INTO, rather than INSERT
INTO, when writing the dumpfile.
Bugs fixed:
Foreign keys were not properly enforced in
TEMPORARY tables. Foreign keys now are
disallowed in TEMPORARY tables. (Bug
#12084)
Functionality added or changed:
Bugs fixed:
Performing a CREATE TABLE statement with a
PARTITION BY clause in a prepared statement
could crash a server running in debug mode. (Bug #12097)
NDB: Specifying the wrong nodegroup in a
CREATE TABLE using partitioning would lead
to the table name being locked after the CREATE
TABLE statement failed (that is, the table name
could not be re-used). (Bug #12114)
Using ORDER BY in a query with a
partitioned table on a 64-bit operating system could crash the
server. (Bug #12116)
When two threads compete for the same table, a deadlock could
occur if one thread has also a lock on another table through
LOCK TABLES and the thread is attempting to
remove the table in some manner and the other thread want
locks on both tables. (Bug #10600)
Functionality added or changed:
N/A
Bugs fixed:
The SQLDriverConnect() ODBC method did not
work with recent MyODBC releases. (Bug #12393)
Functionality added or changed:
N/A
Bugs fixed:
SQLColumns() returned no information for
tables that had a column named using a reserved word. (Bug
#9539)
Functionality added or changed: No changes.
Bugs fixed:
mysql_list_dbcolumns() and
insert_fields() were retrieving all rows
from a table. Fixed the queries generated by these functions
to return no rows. (Bug #8198)
SQLGetTypoInfo() returned
tinyblob for
SQL_VARBINARY and nothing for
SQL_BINARY. Fixed to return
varbinary for
SQL_VARBINARY, binary
for SQL_BINARY, and
longblob for
SQL_LONGVARBINARY. (Bug #8138)