Table of Contents
This appendix lists the changes from version to version in the MySQL source code through the latest version of MySQL 5.0, which is currently MySQL 5.0.16. 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.0 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.0 tree:
Basic support for read-only server side cursors. For information
about using cursors within stored routines, see
Section 17.2.11, “Cursors”. For information about using cursors
from within the C API, see
Section 22.2.7.3, “mysql_stmt_attr_set()”.
Basic support for (updatable) views. See, for example,
Section 19.2, “CREATE VIEW Syntax”.
Basic support for stored procedures (SQL:2003 style). See Chapter 17, Stored Procedures and Functions.
Initial support for rudimentary triggers.
Added SELECT INTO
, which can be
of mixed (that is, global and local) types. See
Section 17.2.9.3, “list_of_varsSELECT ... INTO Statement”.
Removed the update log. It is fully replaced by the binary log.
If the MySQL server is started with
--log-update, it is translated to
--log-bin (or ignored if the server is
explicitly started with --log-bin), and a
warning message is written to the error log. Setting
SQL_LOG_UPDATE silently sets
SQL_LOG_BIN instead (or do nothing if the
server is explicitly started with --log-bin).
Support for the ISAM storage engine has been
removed. If you have ISAM tables, you should
convert them before upgrading. See
Section 2.10.2, “Upgrading from Version 4.1 to 5.0”.
Support for RAID options in
MyISAM tables has been removed. If you have
tables that use these options, you should convert them before
upgrading. See Section 2.10.2, “Upgrading from Version 4.1 to 5.0”.
User variable names are now case insensitive: If you do
SET @a=10; then SELECT @A;
now returns 10. Case sensitivity of a
variable's value depends on the collation of the value.
Strict mode, which in essence means that you get an error instead of a warning when inserting an incorrect value into a column. See Section 5.3.2, “The Server SQL Mode”.
VARCHAR and VARBINARY
columns remember end space. A VARCHAR() or
VARBINARY column can contain up to 65,535
characters or bytes, respectively.
MEMORY (HEAP) tables can
have VARCHAR() columns.
When using a constant string or a function that generates a
string result in CREATE ... SELECT, MySQL
creates the result field based on the maximum length of the
string or expression:
| Maximum Length | Column type |
| = 0 | CHAR(0) |
| < 512 | VARCHAR( |
| >= 512 | TEXT |
For a full list of changes, please refer to the changelog sections for each individual 5.0.x release.
Functionality added or changed:
The syntax for CREATE TRIGGER now includes
a DEFINER clause for specifying which
access privileges to check at trigger invocation time. See
Section 18.1, “CREATE TRIGGER Syntax” for more information.
Added a DEFINER column to the
INFORMATION_SCHEMA.TRIGGERS table.
Invoking a stored function or trigger creates a new savepoint level. When the function or trigger finishes, the previous savepoint level is restored. (See Bug #13825 for more information.)
Bugs fixed:
In a stored procedure, continuing (via a condition handler) after a failed variable initialization caused a server crash. (Bug #14643)
Within a stored procedure, exception handling for
UPDATE statements that caused a
duplicate-key error caused a Packets out of
order error for the following statement. (Bug
#13729)
Creating a table containing an ENUM or
SET column from within a stored procedure
or prepared statement caused a server crash later when
executing the procedure or statement. (Bug #14410)
Selecting from a view used filesort
retrieval when faster retrieval was possible. (Bug #14816)
Warnings from a previous command were not being reset when fetching from a cursor. (Bug #13524)
RESET MASTER failed to delete log files on
Windows. (Bug #13377)
Using ORDER BY on a column from a view,
when also selecting the column normally, and via an alias,
caused a mistaken Column 'x' in order clause is
ambiguous error. (Bug #14662)
Invoking a stored procedure within another stored procedure caused the server to crash. (Bug #13549)
Stored functions making use of cursors were not replicated. (Bug #)
CAST() did not pad
with 0x00 to a length of expr AS
BINARY(N)N bytes.
(Bug #14255)
Casting a FLOAT or
DOUBLE whose value was less than
1.0E-06 to DECIMAL would
yield an inappropriate value. (Bug #14268)
In some cases, a left outer join could yield an invalid result
or cause the server to crash, due to a
MYSQL_DATA_TRUNCATED error. (Bug #13488)
For a invalid view definition, selecting from the
INFORMATION_SCHEMA.VIEWS table or using
SHOW CREATE VIEW failed, making it
difficult to determine what part of the definition was
invalid. Now the server returns the definition and issues a
warning. (Bug #13818)
The server could misinterpret old trigger definition files created before MySQL 5.0.17. Now they are interpreted correctly, but this takes more time and the server issues a warning that the trigger should be recreated. (Bug #14090)
mysqldump --triggers did not account for
the SQL mode and could dump trigger definitions with missing
whitespace if the IGNORE_SPACE mode was
enabled. (Bug #14554)
Within a trigger definition the
CURRENT_USER() function evaluated to the
user whose actions caused the trigger to be activated. Now
that triggers have a DEFINER value,
CURRENT_USER() evaluates to the trigger
definer. (Bug #5861)
CREATE TABLE could crash the server
and write invalid data into the tbl_name
(…) SELECT ….frm file
if the CREATE TABLE and
SELECT both contained a column with the
same name. Also, if a default value is specified in the column
definition, it is now actually used. (Bug #14480)
A newline character in a column alias in a view definition caused an error when selecting from the view later. (Bug #13622)
mysql_fix_privilege_tables.sql contained
an erroneous comment that resulted in an error when the file
contents were processed. (Bug #14469)
On Windows, the server could crash during shutdown if both replication threads and normal client connection threads were active. (Re-fix of Bug #11796)
The grammar for supporting the DEFINER =
CURRENT_USER clause in CREATE
VIEW and ALTER VIEW was
incorrect. (Bug #14719)
Queries on ARCHIVE tables that used the
filesort sorting method could result in a
server crash. (Bug #14433)
The mysql_stmt_fetch() C APP function could
return MYSQL_NO_DATA for a SELECT
COUNT(*) FROM statement, which should return 1 row. (Bug #14845)
tbl_name WHERE 1 =
0
A LIMIT-related optimization failed to take
into account that MyISAM table indexes can
be disabled, causing Error 124 when it tried to use such an
index. (Bug #14616)
A server crash resulted from the following sequence of events:
1) With no default database selected, create a stored
procedure with the procedure name explicitly qualified with a
database name (CREATE PROCEDURE
). 2) Create another stored procedure with
no database name qualifier. 3) Execute db_name.proc_name
…SHOW PROCEDURE
STATUS. (Bug #14569)
Complex subqueries could cause improper internal query execution environment initialization and crash the server. (Bug #14342)
For a table that had been opened with HANDLER
OPEN, issuing OPTIMIZE TABLE,
ALTER TABLE, or REPAIR
TABLE caused a server crash. (Bug #14397)
A server crash could occur if a prepared statement invoked a stored procedure that existed when the statement was prepared but had been dropped and recreated prior to statement execution. (Bug #12329)
A server crash could occur if a prepared statement updated a table for which a trigger existed when the statement was prepared but had been dropped prior to statement execution. (Bug #13399)
Statements that implicitly commit a transaction are prohibited in stored functions and triggers. An attempt to create a function or trigger containing such a statement produces an error. (Bug #13627) (The originally reported symptom was that a trigger that dropped another trigger could cause a server crash. That problem was fixed by the patch for Bug #13343.)
Functionality added or changed:
The read_only system variable no longer
applies to TEMPORARY tables. (Bug #4544)
Due to changes in binary logging, the restrictions on which
stored routine creators can be trusted not to create unsafe
routines have been lifted for stored procedures (but not
stored functions). Consequently, the
log_bin_trust_routine_creators system
variable and the corresponding
--log-bin-trust-routine-creators server
option were renamed to
log_bin_trust_function_creators and
--log-bin-trust-function-creators. For
backward compatibility, the old names are recognized but
result in a warning.
Section 17.4, “Binary Logging of Stored Routines and Triggers”
Added the Compression status variable,
which indicates whether the client connection uses compression
in the client/server protocol.
In MySQL 5.0.13, syntax for DEFINER and
SQL SECURITY clauses was added to the
CREATE VIEW and ALTER
VIEW statements, but the clauses had no effect. They
now are enabled. They specify the security context to be used
when checking access privileges at view invocation time. See
Section 19.2, “CREATE VIEW Syntax” for more information.
The InnoDB, NDB,
BDB, and ARCHIVE storage
engines now support spatial columns. See
Chapter 16, Spatial Extensions in MySQL.
You must now declare a prefix for an index on any column of
any Geometry class, the only exception
being when the column is a POINT. (Bug
#12267)
Added a --hexdump option to
mysqlbinlog that displays a hex dump of the
log in comments. This output can be helpful for replication
debugging.
MySQL 5.0 now supports character set conversion for seven
additional cp950 characters into the
big5 character set:
0xF9D6, 0xF9D7,
0xF9D8, 0xF9D9,
0xF9DA, 0xF9DB, and
0xF9DC.
Note: If you move data
containing these additional characters to an older MySQL
installation which does not support them, you may encounter
errors. (Bug #12476)
Bugs fixed:
Selecting from a table in both an outer query and a subquery could cause a server crash. (Bug #14482)
SHOW CREATE TABLE did not display the
CONNECTION string for
FEDERATED tables. (Bug #13724)
For some stored functions dumped by mysqldump --routines, the function definition could not be reloaded later due to a parsing error. (Bug #14723)
For a MyISAM table originally created in
MySQL 4.1, INSERT DELAYED could cause a
server crash. (Bug #13707)
The --exit-info=65536 option conflicted with
--temp-pool and caused problems with the
server's use of temporary files. Now
--temp-pool is ignored if
--exit-info=65536 is specified. (Bug #9551)
ORDER BY DESC within the
GROUP_CONCAT() function was not honored
when used in a view. (Bug #14466)
A comparison with an invalid date (such as WHERE
) caused any index on
col_name >
'2005-09-31'col_name not to be used and a
string comparison for each row, resulting in slow performance.
(Bug #14093)
Within stored routines, REPLACE() could
return an empty string (rather than the original string) when
no replacement was done, and IFNULL() could
return garbage results. (Bug #13941)
Inserts of too-large DECIMAL values were
handled inconsistently (sometimes set to the maximum
DECIMAL value, sometimes set to 0). (Bug
#13573)
Executing REPAIR TABLE, ANALYZE
TABLE, or OPTIMIZE TABLE on a
view for which an underlying table had been dropped caused a
server crash. (Bug #14540)
A prepared statement that selected from a view processed using the merge algorithm could crash on the second execution. (Bug #14026)
Deletes from a CSV table could cause table
corruption. (Bug #14672)
An update of a CSV table could cause a
server crash. (Bug #13894)
For queries with nested outer joins, the optimizer could choose join orders that query execution could not handle. The fix is that now the optimizer avoids choosing such join orders. (Bug #13126)
Starting mysqld with the
--skip-innodb and
--default-storage-engine=innodb (or
--default-table-type=innodb caused a server
crash. (Bug #9815, re-fix of bug from 5.0.5)
mysqlmanager did not start up correctly on Windows 2003. (Bug #14537)
The parser did not correctly recognize wildcards in the host
part of the DEFINER user in CREATE
VIEW statements. (Bug #14256)
Memory corruption and a server crash could be caused by
statements that used a cursor and generated a result set
larger than max_heap_table_size. (Bug
#14210)
mysqld_safe did not correctly start the
-max version of the server (if it was
present) if the --ledir option was given.
(Bug #13774)
The mysql parser did not properly strip the
delimiter from input lines less than nine characters long. For
example, this could cause USE abc; to
result in an Unknown database: abc; error.
(Bug #14358)
Statements of the form CREATE TABLE … SELECT
… that created a column with a multi-byte
character set could incorrectly calculate the maximum length
of the column, resulting in a Specified key was too
long error. (Bug #14139)
Some updatable views could not be updated. (Bug #14027)
Running OPTIMIZE TABLE and other
data-updating statements concurrently on an
InnoDB table could cause a crash or the
following warnings in the error log: Warning: Found
locks from different threads in write: enter
write_lock, Warning: Found locks from
different threads in write: start of release lock.
(Bug #11704)
Indexes for BDB tables were being limited
incorrectly to 255 bytes. (Bug #14381)
Use of in the
col_name =
VALUES(col_name)ON DUPLICATE KEY UPDATE clause of an
INSERT statement failed with an
Column ' error. (Bug #13392)
col_name' in field
list is ambiguous
On Windows, the server was not ignoring hidden or system directories that Windows may have created in the data directory, and would treat them as available databases. (Bug #4375)
mysqldump could not dump views if the
-x option was given. (Bug #12838)
mysqlimport now issues a SET
@@character_set_database = binary statement before
loading data so that a file containing mixed character sets
(columns with different character sets) can be loaded
properly. (Bug #12123)
Use of the deprecated --sql-bin-update-same
option caused a server crash. (Bug #12974)
Maximum values were handled incorrectly for command-line
options of type GET_LL. (Bug #12925)
For a user that has the SELECT privilege on
a view, the server erroneously was also requiring the user to
have the EXECUTE privilege at view
execution time for stored functions used in the view
definition. (Bug #9505)
Use of WITH ROLLUP PROCEDURE ANALYSE()
could hang the server. (Bug #14138)
TIMEDIFF(), ADDTIME(),
and STR_TO_DATE() were not reporting that
they could return NULL, so functions that
invoked them might misinterpret their results. (Bug #14009)
The example configuration files supplied with MySQL
distributions listed the thread_cache_size
variable as thread_cache. (Bug #13811)
Using ALTER TABLE to add an index could
fail if the operation ran out of temporary file space. Now it
automatically makes a second attempt that uses a slower method
but no temporary file. In this case, problems that occurred
during the first attempt can be displayed with SHOW
WARNINGS. (Bug #12166)
The input polling loop for Instance Manager did not sleep properly. Instance Manager used up too much CPU as a result. (Bug #14388)
Trying to take the logarithm of a negative value is now
handled in the same fashion as division by zero. That is, it
produces a warning when
ERROR_FOR_DIVISION_BY_ZERO is set, and an
error in strict mode. (Bug #13820)
LOAD DATA INFILE would not accept the same
character for both the ESCAPED BY and the
ENCLOSED BY clauses. (Bug #11203)
The value of Last_query_cost was not
updated for queries served from the query cache. (Bug #10303)
TIMESTAMPDIFF() returned an incorrect
result if one argument but not the other was a leap year and a
date was from March or later. (Bug #13534)
The server incorrectly accepted column definitions of the form
DECIMAL(0, for
D)D less than 11. (Bug #13667)
The displayed value for the
CHARACTER_MAXIMUM_LENGTH column in the
INFORMATION_SCHEMA.COLUMNS table was not
adjusted for multi-byte character sets. (Bug #14290)
A bugfix in MySQL 5.0.15 caused the displayed values for the
CHARACTER_MAXIMUM_LENGTH and
CHARACTER_OCTET_LENGTH columns in the
INFORMATION_SCHEMA.COLUMNS table to be
reversed. (Bug #14207)
On Windows, the value of character_sets_dir
in SHOW VARIABLES output was displayed
inconsistenly (using both ‘/’
and ‘\’ as pathname component
separators). (Bug #14137)
Subqueries in the FROM clause failed if the
current database was INFORMATION_SCHEMA.
(Bug #14089)
Corrected a parser precedence problem that resulted in an
Unknown column … in 'on clause'
error for some joins. (Bug #13832)
For LIKE … ESCAPE, an escape
sequence longer than one character was accepted as valid. Now
the sequence must be empty or one character long. If the
NO_BACKSLASH_ESCAPES SQL mode is enabled,
the sequence must be one character long. (Bug #12595)
SELECT DISTINCT
CHAR( returned
incorrect results after col_name)SET NAMES utf8.
(Bug #13233)
A prepared statement failed with Illegal mix of
collations if the client character set was
utf8 and the statement used a table that
had a character set of latin1. (Bug #12371)
Inserting a new row into an InnoDB table
could cause DATETIME values already stored
in the table to change. (Bug #13900)
The default value of query_prealloc_size
was set to 8192, lower than its minimum of 16384. The minimum
has been lowered to 8192. (Bug #13334)
The server did not take character set into account in checking
the width of the mysql.user.Password
column. As a result, it could incorrectly generate long
password hashes even if the column was not long enough to hold
them. (Bug #13064)
Inserting cp932 strings into a
VARCHAR column caused a server crash rather
than string truncation if the string was longer than the
column definition. (Bug #12547)
Two threads that were creating triggers on an
InnoDB table at the same time could
deadlock. (Bug #12739)
mysqladmin and mysqldump would hang on SCO OpenServer. (Bug #13238)
Where one stored procedure called another stored procedure: If
the second stored procedure generated an exception, the
exception was not caught by the calling stored procedure. For
example, if stored procedure A used an
EXIT statement to handle an exception,
subsequent statements in A would be
executed regardless when A was called by
another stored procedure B, even if an
exception that should have been handled by the
EXIT was generated in A.
(Bug #7049)
Trying to create a stored routine with no database selected would crash the server. (Bug #13514, Bug #13587)
Specifying --default-character-set=cp-932 for
mysqld would cause SQL scripts containing
comments written using that character set to fail with a
syntax error. (Bug #13487)
Trying to compile the server using the
--without-geometry option caused the build to
fail. (Bug #12991)
Functionality added or changed:
Warning: Incompatible change.
For BINARY columns, the pad value and how
it is handled has changed. The pad value for inserts now is
0x00 rather than space, and there is no
stripping of the pad value for selects. For details, see
Section 11.4.2, “The BINARY and VARBINARY Types”.
Warning: Incompatible change.
The CHAR() function now returns a binary
string rather than a string in the connection character set.
An optional USING
clause may be
used to produce a result in a specific character set instead.
Also, arguments larger than 256 produce multiple characters.
They are no longer interpreted modulo 256 to produce a single
character each. These changes may cause some
incompatibilities, as noted in
Section 2.10.2, “Upgrading from Version 4.1 to 5.0”.
charset
NDBCluster: The perror
utility included with the MySQL-Server RPM
now provides support for the --ndb option,
and so can be used to obtain error message text for MySQL
Cluster error codes. (Bug #13740)
When executing single-table UPDATE or
DELETE queries containing an ORDER
BY ... LIMIT clause,
but not having any NWHERE clause, MySQL can
now take advantage of an index to read the first
N rows in the ordering specified in
the query. If an index is used, only the first
N records will be read, as opposed
to scanning the entire table. (Bug #12915)
The MySQL-server RPM now explicitly assigns
the mysql system user to the
mysql user group during the
postinstallation process. This corrects an issue with
upgrading the server on some Linux distributions whereby a
previously existing mysql user was not
changed to the mysql group, resulting in
wrong groups for files created following the installation.
(Bug #12823)
Added the --tz-utc option to
mysqldump. This option adds SET
TIME_ZONE='+00:00' to the dump file so that
TIMESTAMP columns can be dumped and
reloaded between servers in different time zones and protected
from changes due to daylight saving time. (Bug #13052)
When declaring a local variable (or parameter) named
password or name, and
setting it with SET, e.g. SET
password = '', the new error message: ERROR
42000: Variable 'nnn' must be quoted with `...`, or
renamed is returned (where 'nnn' is 'password' or
'names'). This means there is a syntax conflict with special
sentences like SET PASSWORD = PASSWORD(...)
(for setting a user's password) and set names
default (for setting charset and collation).
This must be resolved either by quoting the variable name:
SET `password` = ..., which will set the
local variable `password`, or by renaming
the variable to something else (if setting the user's password
is the desired effect).
The following statements now cause an implicit
COMMIT:
CREATE VIEW
ALTER VIEW
DROP VIEW
CREATE TRIGGER
DROP TRIGGER
CREATE USER
RENAME USER
DROP USER
NDBCluster: A number of new or improved
error messages have been implemented in this release in order
to provide better and more accurate diagnostic information
regarding cluster configuration issues and problems. (Bug
#11739, Bug #11749, Bug #12044, Bug #12786, Bug #13197)
NDBCluster: A new “smart” node
allocation algorithm means that it is no longer necessary to
use sequential IDs for cluster nodes, and that nodes not
explicitly assigned IDs should now have IDs allocated
automatically in most cases. In practical terms, this means
that it is now possible to assign a set of node IDs such as
1, 2,
4, 5 without an error
being generated due to the missing 3. (Bug
#13009)
Bugs fixed:
For InnoDB tables, using a column prefix
for a utf8 column in a primary key caused
Cannot find record errors when attempting
to locate records. (Bug #14056)
An expression in an ORDER BY clause failed
with Unknown column
' if the expression referred to a column
alias. (Bug #11694)
col_name' in 'order
clause'
mysqldump could not dump views. (Bug #14061)
Using an undefined variable in an IF or
SET clause inside a stored routine produced
an incorrect unknown column ... in 'order
clause' error message. (Bug #13037)
Trying to create a view dynamically using a prepared statement within a stored procedure failed with error 1295. (Bug #13095)
mysqldump --triggers did not quote
identifiers properly if the --compatible
option was given, so the dump output could not be reloaded.
(Bug #13146)
Character set conversion was not being done for
FIND_IN_SET(). (Bug #13751)
CAST(1E+300 TO SIGNED INT) produced an
incorrect result on little-endian machines. (Bug #13344)
Corrected a memory-copying problem for big5
values when using icc compiler on Linux
IA-64 systems. (Bug #10836)
On BSD systems, the system crypt() call
could return an error for some salt values. The error was not
handled, resulting in a server crash. (Bug #13619)
Character set file parsing during
mysql_real_connect() read past the end of a
memory buffer. (Bug #6413)
InnoDB: Queries that were executed using an
index_merge union or intersection could
produce incorrect results if the underlying table used the
InnoDB storage engine and had a primary key
containing VARCHAR members. (Bug #13484)
CREATE DEFINER=... VIEW ... caused the
server to crash when run with
--skip-grant-tables. (Bug #13504)
The --interactive-timeout and
--slave-net-timeout options for
mysqld were not being obeyed on Mac OS X
and other BSD-based platforms. (Bug #8731)
Queries of the form (SELECT ...) ORDER BY
... were being treated as a
UNION. This improperly resulted in only
distinct values being returned (because
UNION by default eliminates duplicate
results). Also, references to column aliases in ORDER
BY clauses following parenthesized
SELECT statements were not resolved
properly. (Bug #7672)
If special characters such as '_' ,
'%', or the escape character were included
within the prefix of a column index, LIKE
pattern matching on the indexed column did not return the
correct result. (Bug #13046, Bug #13919)
An UPDATE query using a join would be
executed incorrectly on a replication slave. (Bug #12618)
Server crashed during a SELECT statement,
writing a message like this to the error log:
InnoDB: Error: MySQL is trying to perform a SELECT InnoDB: but it has not locked any tables in ::external_lock()!
NDBCluster: ndb_mgmd
would allow a node to be stopped or restarted while another
node was still starting up, which could crash the cluster. It
should now not be possible to issue a node stop or restart
while a different node is still restarting, and the cluster
management client issues an error if an attempt is made to do
so. (Bug #13461)
NDBCluster: Placing multiple [TCP
DEFAULT] sections in the cluster
config.ini file crashed
ndb_mgmd. (The ndb_mgmd
process now exits gracefully with an appropriate error message
instead.) (Bug #13611)
NDBCluster: Trying to run
ndbd as system root when
connecting to a mysqld process running as
the mysql system user via SHM caused the
ndbd process to crash.
(ndbd should now exit gracefully with an
appropriate error message instead.) (Bug #9249)
Server may over-allocate memory when performing a
FULLTEXT search for stopwords only. (Bug
#13582)
Queries that use indexes in normal SELECT
statements may cause range scans in VIEWs.
(Bug #13327)
When calling a stored procedure with the syntax CALL
and no default schema selected, schema.procedurenameERROR 1046
was displayed after the procedure returned. (Bug #13616)
With --log-slave-updates
Exec_master_log_pos of SQL thread lagged IO
(Bug #13023)
SHOW CREATE TABLE did not display any
FOREIGN KEY clauses if a temporary file
could not be created. Now SHOW CREATE TABLE
displays an error message in an SQL comment if this occurs.
(Bug #13002)
A column in the ON condition of a join that
referenced a table in a nested join could not be resolved if
the nested join was a right join. (Bug #13597)
A qualified reference to a view column in the
HAVING clause could not be resolved. (Bug
#13410)
comp_err did not detect when multiple error messages for a language were given for an error symbol. (Bug #13071)
For XA transaction IDs
(),
uniqueness is supposed to be assessed based on
gtrid.bqual.formatIDgtrid and
bqual. MySQL was also including
formatID in the uniqueness check.
(Bug #13143)
Local (non-XA) and XA transactions are supposed to be mutually exclusive within a given client connection, but this prohibition was not always enforced. (Bug #12935)
mysqlcheck --all-databases
--analyze
--optimize failed because it also
tried to analyze and optimize the
INFORMATION_SCHEMA tables which it can't.
(Bug #13783)
SELECT * INTO OUTFILE ... FROM
INFORMATION_SCHEMA.schemata failed with an
Access denied error. (Bug #13202)
A table or view named Ç (C-cedilla) couldn't be dropped. (Bug #13145)
Tests containing SHOW TABLE STATUS or
INFORMATION_SCHEMA failed on opnsrv6c.
(Bug, #14064, Bug #14065)
Functionality added or changed:
The limit of 255 characters on the input buffer for mysql on Windows has been lifted. The exact limit depends on what the system allows, but can be up to 64K characters. A typical limit is 16K characters. (Bug #12929)
Re-enabled the --delayed-inserts option for
mysqldump, which now checks for each table
dumped whether its storage engine supports
DELAYED inserts. (Bug #7815)
Added the myisam_stats_method, which controls
whether NULL values in indexes are considered
the same or different when collecting statistics for
MyISAM tables. This influences the query
optimizer as described in
Section 7.4.7, “MyISAM Index Statistics Collection”. (Bug #12232)
When an InnoDB foreign key constraint is
violated, the error message now indicates which table, column,
and constraint names are involved. (Bug #3443)
Configure-time checking for the availability of multi-byte
macros and functions in the bundled
readline library. This improves handling of
multi-byte character sets in the mysql
client. (Bug #3982)
The CHAR() function now takes into account
the character set and collation given by the
character_set_connection and
collation_connection system variables. For
an argument n to
CHAR(), the result is
n mod 256 for single-byte character
sets. For multi-byte character sets,
n must be a valid code point in the
character set. Also, the result string from
CHAR() is checked for well-formedness. For
invalid arguments, or a result that is not well-formed, MySQL
generates a warning (or, in strict SQL mode, an error). (Bug
#10504)
RENAME TABLE now works for views as well,
as long as you do not try to rename a view into a different
database. (Bug #5508)
Multi-table UPDATE and
DELETE statements that do not affect any
rows are now written to the binary log and will replicate.
(Bug #13348, Bug #12844)
Range scans can now be performed for queries on VIEWs such as
column IN (<constants>) and
column BETWEEN ConstantA AND ConstantB.
(Bug #13317)
Bugs fixed:
NDBCluster: A trigger updating the value of
an AUTO_INCREMENT column in a Cluster table
would insert an error code rather than the expected value into
the column. (Bug #13961)
NDBCluster: When performing a delete of a
great many (tens of thousands of) rows at once from a Cluster
table, an improperly dereferenced pointer could cause the
mysqld process to crash. (Bug #9282)
CHECKSUM TABLE locked
InnoDB tables and did not use a consistent
read. (Bug #12669)
The --skip-innodb-doublewrite option disables
use of the InnoDB doublewrite buffer.
However, having this option in effect when creating a new
MySQL installation prevented the buffer from even being
created, resulting in a server crash later. (Bug #13367)
MySQL programs in binary distributions for Solaris 8/9/10 x86 systems would not run on Pentium III machines. (Bug #6772)
When SELECT ... FOR UPDATE or
SELECT ... LOCK IN SHARE MODE for an
InnoDB table were executed from within a
stored function or a trigger, they were converted to a
non-locking consistent read. (Bug #11238)
NDB Cluster: If
ndb_restore could not find a free
mysqld process, it crashed. (Bug #13512)
NDB Cluster: Receipt of several
enter single user mode commands by multiple
ndb_mgmd processes within a short period of
time resulted in cluster shutdown. (Bug #13053)
NDB Cluster: Multiple
ndb_mgmd processes in a cluster would not
know each other's IP addresses. (Bug #12037)
NDB Cluster: With two
mgmd processes in a cluster,
ndb_mgmd output for SHOW
would display the same IP address for both processes, even
when they were on different hosts. (Bug #11595)
NDB Cluster: Queries on
NDB tables that are executed using
index_merge/union or
index_merge/intersection could produce
incorrect results. (Bug #13081)
The --replicate-rewrite-db and
--replicate-do-table options did not work for
statements in which tables were aliased to names other than
those listed by the options. (Bug #11139)
After running configure with the
--with-embedded-privilege-control option, the
embedded server failed to build. (Bug #13501)
Nested handlers within stored procedures didn't work. (Bug #6127)
The optimizer chose a less efficient execution plan for
than for
col_name BETWEEN
const AND
const, even though the
two expressions are logically equivalent. Now the optimizer
can use the col_name =
constref access method for both
expressions. (Bug #13455)
Incorrect creation of DECIMAL local
variables in a stored procedure could cause a server crash.
(Bug #12589)
Queries against a MERGE table that has a
composite index could produce incorrect results. (Bug #9112)
The server was not rejecting
FLOAT(
or
M,D)DOUBLE(
columns specifications when M,D)M was
less than D. (Bug #12694)
After running configure with the
--without-server option, the distribution
failed to build. (Bug #11680, Bug #13550)
Joins nested under NATURAL or
USING joins were sometimes not initialized
properly, causing a server crash. (Bug #13545)
Locking a view with the query cache enabled and
query_cache_wlock_invalidate enabled could
cause a server crash. (Bug #13424)
A HAVING clause that references an
unqualified view column name could crash the server. (Bug
#13411)
Comparisons involving row constructors containing constants could cause a server crash. (Bug #13356)
NDB Cluster: LOAD DATA
INFILE with a large data file failed. (Bug #10694)
NDB Cluster: Adding an index to a table
with a large number of columns (more then 100) crashed the
storage node. (Bug #13316)
Calling the FORMAT() function with a
DECIMAL column value caused a server crash
when the value was NULL. (Bug #13361)
Aggregate functions sometimes incorrectly were allowed in the
WHERE clause of UPDATE
and DELETE statements. (Bug #13180)
It was possible to create a view that executed a stored
function for which you did not have the
EXECUTE privilege. (Bug #12812)
BIT columns and following columns in
NDB tables were corrupt when dumped by
mysqldump. (Bug #13152)
NATURAL joins and joins with
USING against a view could return
NULL rather than the correct value. (Bug
#13127)
Use of a user-defined function within the
HAVING clause of a query resulted in an
Unknown column error. (Bug #11553)
For queries for which the optimizer determined a join type of
“Range checked for each record” (as shown by
EXPLAIN, the query sometimes could cause a
server crash, depending on the data distribution. (Bug #12291)
For queries with DISTINCT and WITH
ROLLUP, the DISTINCT should be
applied after the rollup operation, but was not always. (Bug
#12887)
The server crashed when processing a view that invoked the
CONVERT_TZ() function. (Bug #11416)
Shared-memory connections were not working on Windows. (Bug #12723)
Functionality added or changed:
The syntax for CREATE VIEW and
ALTER VIEW statements now includes
DEFINER and SQL SECURITY
clauses for specifying the security context to be used when
checking access privileges at view invocation time. (The
syntax is present in 5.0.13, but these clauses have no effect
until 5.0.16.) See Section 19.2, “CREATE VIEW Syntax” for more
information.
Added a --routines option for
mysqldump that enables dumping of stored
routines. (Bug #9056)
The connection string for FEDERATED tables
now is specified using a CONNECTION table
option rather than a COMMENT table option.
Better detection of connection timeout for replication servers
on Windows allows elimination of extraneous Lost
connection errors in the error log. (Bug #5588)
The counters for the Key_read_requests,
Key_reads,
Key_write_requests, and
Key_writes status variables were changed
from unsigned long to unsigned
longlong to accommodate larger variables without
rollover. (Bug #12920)
The restriction on the use of PREPARE,
EXECUTE, and DEALLOCATE
PREPARE within stored procedures was lifted. The
restriction still applies to stored functions and triggers.
(Bug #10975, Bug #7115, Bug #10605)
A new command line argument was added to
mysqld to ignore client character set
information sent during handshake, and use server side
settings instead, to reproduce 4.0 behavior (Bug #9948):
mysqld --skip-character-set-client-handshake
OPTIMIZE TABLE and
HANDLER now are prohibited in stored
procedures and functions and in triggers. (Bug #12953, Bug
#12995)
InnoDB: The TRUNCATE
TABLE statement for InnoDB tables
always resets the counter for an
AUTO_INCREMENT column now, regardless of
whether there is a foreign key constraint on the table.
(Beginning with 5.0.3, TRUNCATE TABLE reset
the counter, but only if there was no such constraint.) (Bug
#11946)
The LEAST() and
GREATEST() functions used to return
NULL only if all arguments were
NULL. Now they return
NULL if any argument is
NULL, the same as Oracle. (Bug #12791)
Two new collations have been added for Esperanto:
utf8_esperanto_ci and
ucs2_esperanto_ci.
Reorder network startup to come after all other initialization, particularly storage engine startup which can take a long time. This also prevents MySQL from being run on a privileged port (any port under 1024) unless run as the root user. (Bug #11707)
The Windows binary packages are now compiled with the Microsoft Visual Studio 2003 compiler instead of Microsoft Visual C++ 6.0.
The binaries compiled with the Intel icc compiler are now built using icc 9.0 instead of icc 8.1. You will have to install new versions of the Intel icc runtime libraries, which are available from here: ( http://dev.mysql.com/downloads/os-linux.html)
Bugs fixed:
Incompatible change: A lock
wait timeout caused InnoDB to roll back the
entire current transaction. Now it rolls back only the most
recent SQL statement. (Bug #12308)
mysqldump did not dump triggers properly. (Bug #12597)
NDBCluster: The average row size for
Cluster tables was being calcualted incorrectly. This affected
the values shown for the Data_length and
Avg_row_length columns in the output
generated by SHOW TABLE STATUS as well as
the values for the data_length and
data_length/table_rows columns shown in the
TABLES table of the
INFORMATION_SCHEMA database with respect to
Cluster tables (tables using other storage engines were not
affected by this bug). (Bug #9896)
Within a stored procedure, fetching a large number of rows in
a loop using a cursor could result in a server crash or an out
of memory error. Also, values inserted within a stored
procedure using a cursor were interpreted as
latin1 even if character set variables had
been set to a different character set. (Bug #6513, Bug #9819)
For a server compiled with yaSSL, clients that used MySQL Connector/J were not able to establish SSH connections. (Bug #13029)
When used in view definitions,
DAYNAME(,
expr)DAYOFWEEK(,
expr)WEEKDAY(
were incorrectly treated as though the expression was
expr)TO_DAYS( or
expr)TO_DAYS(TO_DAYS(.
(Bug #13000)
expr))
Incorrect implicit nesting of joins caused the parser to fail
on queries of the form SELECT ... FROM t1 JOIN t2
JOIN t3 ON t1.t1col = t3.t3col with an
Unknown column 't1.t1col' in 'on clause'
error. (Bug #12943)
NDB: A cluster shutdown following the crash
of a data node would fail to terminate the remaining node
processes, even though ndb_mgm showed the
shutdown request as having been completed. (Bug #10938, Bug
#9996, Bug #11623)
A column that can be NULL was not handled
properly for WITH ROLLUP in a subquery or
view. (Bug #12885)
Within a transaction, the following statements now cause an
implicit commit: CREATE FUNCTION,
DROP FUNCTION, DROP
PROCEDURE, ALTER FUNCTION,
ALTER PROCEDURE, CREATE
PROCEDURE. This corrects a problem where these
statements followed by ROLLBACK might not
be replicated properly. (Bug #12870)
Simultaneous execution of DML statements and CREATE
TRIGGER or DROP TRIGGER
statements on the same table could cause server crashes or
errors. (Bug #12704)
If a stored function invoked from a SELECT
failed with an error, it could cause the client connection to
be dropped. Now such errors generate warnings instead so as
not to interrupt the SELECT. (Bug #12379)
A concurrency problem for CREATE ... SELECT
could cause a server crash. (Bug #12845)
The server incorrectly generated an Unknown
table error message when for attempts to drop tables
in the INFORMATION_SCHEMA database. Now it
issues an Access denied message. (Bug
#9846)
The server allowed privileges to be granted explicitly for the
INFORMATION_SCHEMA database. Such
privileges are always implicit and should not be grantable.
(Bug #10734)
The server allowed TEMPORARY tables and
stored procedures to be created in the
INFORMATION_SCHEMA database. (Bug #9683,
Bug #10708)
The server failed to disallow SET
AUTOCOMMIT in stored functions and triggers. It is
allowed to change the value of AUTOCOMMIT
in stored procedures, but a runtime error might occur if the
procedure is invoked from a stored function or trigger. (Bug
#12712)
Using an INOUT parameter with a
DECIMAL data type in a stored procedure
caused a server crash. (Bug #12979)
Performing an IS NULL check on the
MIN() or MAX() of an
indexed column in a complex query could produce incorrect
results. (Bug #12695)
The mysql.server script contained
incorrect path for the libexec directory.
(Bug #12550)
The NDB START BACKUP command could be
interrupted by a SHOW command. (Bug #13054)
The LIKE ... ESCAPE syntax produced invalid
results when escape character was larger than one byte. (Bug
#12611)
A client connection thread cleanup problem caused the server to crash when closing the connection if the binary log was enabled. (Bug #12517)
Using AS to rename a column selected from a
view in a subquery made it not possible to refer to that
column in the outer query. (Bug #12993)
The character_set_system system variable
could not be selected with SELECT
@@character_set_system. (Bug #11775)
A view-creation statement of the form CREATE VIEW
failed with a
name AS SELECT ... FROM
tbl_name AS
nameNot unique table/alias:
' error. (Bug #6808)
name'
UNION [DISTINCT] was not removing all
duplicates for multi-byte character values. (Bug #12891)
Multiplying a DECIMAL value within a loop
in a stored routine could incorrectly result in a value of
NULL. (Bug #12938)
mysql and mysqldump were
ignoring the --defaults-extra-file option.
(Bug #12917)
Columns named in the USING() clause of
JOIN ... USING() were incorrectly resolved
in case-sensitive fashion. (Bug #13067)
Local variables in stored routines were not always initialized correctly. (Bug #13133)
SHOW FIELDS FROM
caused error 1046 when no default schema was set. (Bug #12905)
schemaname.viewname
The value of character_set_results could be
set to NULL, but returned the string
"NULL" when retrieved. (Bug #12363)
InnoDB: Limit recursion depth to 200 in
deadlock detection to avoid running out of stack space. (Bug
#12588)
GROUP_CONCAT() ignored an empty string if
it was the first value to occur in the result. (Bug #12863)
Outer join elimination was erroneously applied for some
queries that used a NOT BETWEEN condition,
an
IN(
condition, or an value_list)IF() condition. (Bug
#12101, Bug #12102)
SHOW FIELDS truncated the
TYPE column to 40 characters. (Bug #7142)
Use of PREPARE and
EXECUTE with a statement that selected from
a view in a subquery could cause a server crash. (Bug #12651)
On HP-UX 11.x (PA-RISC), the -L option caused
mysqlimport to crash. (Bug #12958)
If the binary log is enabled, execution of a stored procedure that modifies table data and uses user variables could cause a server crash or incorrect information to be written to the binary log. (Bug #12637)
Queries with subqueries, where the inner subquery uses the
range or index_merge
access method, could return incorrect results. (Bug #12720)
After changing the character set with SET CHARACTER
SET, the result of the
GROUP_CONCAT() function was not converted
to the proper character set. (Bug #12829)
A bug introduced in MySQL 5.0.12 caused SHOW TABLE
STATUS to display an
Auto_increment value of 0 for
InnoDB tables. (Bug #12973)
Foreign keys were not properly enforced in
TEMPORARY tables. Foreign keys now are
disallowed in TEMPORARY tables. (Bug
#12084)
Replication of LOAD DATA INFILE failed
between systems that use different pathname syntax (such as
delimiter characters). (Bug #11815)
Within a stored procedure, a server crash was caused by
assigning to a VARCHAR INOUT parameter the
value of an expression that included the variable itself. (For
example, SET c = c.) (Bug #12849)
SELECT ... JOIN ... ON ... JOIN ... USING
caused a server crash. (Bug #12977)
Using GROUP BY when selecting from a view
in some cases could cause incorrect results to be returned.
(Bug #12922)
myisampack did not properly pack
BLOB values larger than
224 bytes. (Bug #4214)
Incorrect results could be returned from a view processed using a temporary table. (Bug #12941)
The server crashed when one thread resized the query cache while another thread was using it. (Bug #12848)
mysqld_multi now quotes arguments on command lines that it constructs to avoid problems with arguments that contain shell metacharacters. (Bug #11280)
InnoDB: A consistent read could return
inconsistent results due to a bug introduced in MySQL 5.0.5.
(Bug #12947)
Deadlock occurred when several account management statements
were run (particularly between FLUSH
PRIVILEGES/SET PASSWORD and
GRANT/REVOKE
statements). (Bug #12423)
The Windows installer made a change to one of the
mysql.proc table files, causing stored
routine functionality to be compromised. The Windows installer
now never overwrites files in the MySQL data directory. During
an upgrade from one version to another, a file in the data
directory will not be overwritten even if it has not been
modified since it was put there by an older installer.
If you have already lost access to stored routines because of this problem, you can get them back using the following procedure:
Stop the server.
In the mysql\data directory under
your MySQL installation directory, and replace the
proc.frm file with corresponding file
from the version of MySQL that you were using before you
upgraded.
Start the server
Start the mysql command-line client
(use the root account or another
account that has full database privileges) and execute the
mysql_fix_privilege_tables.sql script
that upgrades the grant tables to the current structure.
Instructions for doing this are given in
Section 2.10.3, “Upgrading the Grant Tables”.
After this, all stored routine functionality should work. (Bug #12820)
On Windows, the server was preventing tables from being
created if the table name was a prefix of a forbidden name.
For example, nul is a forbidden name
because it's the same as a Windows device name, but a table
with the name of n or nu
was being forbidden as well. (Bug #12325)
InnoDB was too permissive with
LOCK TABLE ... READ LOCAL and alowed new
inserts into the table. Now READ LOCAL is
equivalent to READ for
InnoDB. This will cause slightly more
locking in mysqldump, but makes
InnoDB table dumps consistent with
MyISAM table dumps. (Bug #12410)
Use of the mysql client
HELP command from within a stored routine
caused a “packets out of order” error and a lost
connection. Now HELP is detected and
disallowed within stored routines. (Bug #12490)
Use of yaSSL for a secure client connection caused
LOAD DATA LOCAL INFILE to fail. (Bug
#11286)
SHOW CREATE PROCEDURE and SHOW
CREATE FUNCTION no longer qualify the routine name
with the database name, for consistency with the behavior of
SHOW CREATE TABLE. (Bug #10362)
A UNION of long utf8
VARCHAR columns was sometimes returned as a
column with a LONGTEXT data type rather
than VARCHAR. This could prevent such
queries from working at all if selected into a
MEMORY table because the
MEMORY storage engine does not support the
TEXT data types. (Bug #12537)
If a client has opened an InnoDB table for
which the .ibd file is missing,
InnoDB would not honor a DROP
TABLE statement for the table. (Bug #12852)
ALTER TABLE ... DISCARD TABLESPACE for
non-InnoDB table caused the client to lose
the connection. (The server was not returning the error
properly.) (Bug #12207)
DO IFNULL(NULL, NULL) and SELECT
CAST(IFNULL(NULL, NULL) AS DECIMAL) caused a server
crash. (Bug #12841)
When using a cursor, a SELECT statement
that uses a GROUP BY clause could return
incorrect results. (Bug #11904)
The SYSDATE() function now returns the time
at which it was invoked. In particular, within a stored
routine or trigger, SYSDATE() returns the
time at which it executes, not the time at which the stored
routine or triggering statement began to execute. (Bug #12480)
CREATE VIEW inside a stored procedure
caused a server crash if the table underlying the view had
been deleted. (Bug #12468)
A memory leak resulting from repeated SELECT ...
INTO statements inside a stored procedure could
cause the server to crash. (Bug #11333)
Functionality added or changed:
Incompatible change:
Beginning with MySQL 5.0.12, natural joins and joins with
USING, including outer join variants, are
processed according to the SQL:2003 standard. The changes
include elimination of redundant output columns for
NATURAL joins and joins specified with a
USING clause and proper ordering of output
columns. (Bug #6136, Bug #6276, Bug #6489, Bug #6495, Bug
#6558, Bug #9067, Bug #9978, Bug #10428, Bug #10646, Bug
#10972.) The precedence of the comma operator also now is
lower compared to JOIN. (Bug #4789, Bug
#12065, Bug #13551.)
These changes make MySQL more compliant with standard SQL.
However, they can result in different output columns for some
joins. Also, some queries that appeared to work correctly
prior to 5.0.12 must be rewritten to comply with the standard.
For details about the scope of the changes and examples that
show what query rewrites are necessary, see
Section 13.2.7.1, “JOIN Syntax”.
SHOW TABLE STATUS for a view now shows
VIEW in uppercase, consistent with
SHOW TABLES and
INFORMATION_SCHEMA. (Bug #5501)
An optimizer estimate of zero rows for a non-empty
InnoDB table used in a left or right join
could cause incomplete rollback for the table. (Bug #12779)
Calls to stored procedures were written to the binary log even within transactions that were rolled back, causing them to be executed on replication slaves. (Bug #12334)
Interleaved execution of stored procedures and functions could be written to the binary log incorrectly, causing replication slaves to get out of sync. (Bug #12335)
A query of the form SHOW TABLE STATUS FROM
would
crash the server. (Bug #12636)
db_name WHERE name IN
(select_query)
Users created using an IP address or other alias rather than a
hostname listed in /etc/hosts could not
set their own passwords. (Bug #12302)
Using DESCRIBE on a view after renaming a
column in one of the view's base tables caused the server to
crash. (Bug #12533)
Recursive triggers are detected and disallowed. (Bug #11896, Bug #12644)
SHOW OPEN TABLES now supports
FROM and LIKE clauses.
(Bug #12183)
SHOW TABLE STATUS FROM INFORMATION_SCHEMA
now sorts output by table name the same as it does for other
databases. (Bug #12315)
SHOW ENGINE INNODB STATUS now can display
longer query strings. (Bug #7819)
Added the SLEEP() function, which pauses
for the number of seconds given by its argument. (Bug #6760)
Trying to drop the default keycache by setting
@@global.key_buffer_size to zero now
returns a warning that the default keycache cannot be dropped.
(Bug #10473)
The stability of cursors when used with
InnoDB tables was greatly improved. (Bug
#11832, Bug #12243, Bug #11309)
It is no longer possible to issue FLUSH
commands from within stored functions or triggers. See
Section I.1, “Restrictions on Stored Routines and Triggers” for details. (Bug
#12280, Bug #12307)
INFORMATION_SCHEMA objects are now reported
as a SYSTEM VIEW table type. (Bug #11711)
Bugs fixed:
CHECKSUM TABLE command returned incorrect
results for tables with deleted rows. After upgrading, users
who used stored checksum information to detect table changes
should rebuild their checksum data. (Bug #12296)
A data type of CHAR BINARY was not
recognized as valid for stored routine parameters. (Bug #9048)
SET GLOBAL TRANSACTION ISOLATION LEVEL was
not working. (Bug #11207)
NDB Cluster: Corrected the parsing of the
CLUSTERLOG command by
ndb_mgm to allow multiple items. (Bug
#12833)
NDB Cluster: Improved error messages
related to filesystem issues. (Bug #11218)
NDB Cluster: When a schema was detected to
be corrupt, ndb neglected to close it,
resulting in a “file already open” error if the
schema was opened again later. written. (Bug #12027)
NDB Cluster: When it could not copy a
fragment, ndbd exited without printing a
message about the condition to the error log. Now the message
is written. (Bug #12900)
NDB Cluster: When a disk full condition
occurred, ndbd exited without printing a
message about the condition to the error log. Now the message
is written. (Bug #12716)
mysql_fix_privilege_tables.sql was
missing a comma, causing a syntax error when executed. (Bug
#12705)
STRCMP() was not handled correctly in
views. (Bug #12489)
NDB Cluster: Bad values in
config.ini caused
ndb_mdmd to crash. (Bug #12043)
TRUNCATE TABLE did not work with
TEMPORARY InnoDB tables.
(Bug #11816)
Built-in commands for the mysql client,
such as delimiter and \d
are now always parsed within files that are read using the
\. and source commands.
(Bug #11523)
ALTER TABLE did not move the
table to default database unless the new name was qualified
with the database name. (Bug #11493)
db_name.t
RENAME t
It was not possible to create a stored function with a spatial return value data type. (Bug #10499)
The only valid values for the PACK_KEYS
table option are 0 and 1, but other values were being
accepted. (Bug #10056)
If a DROP DATABASE fails on a master server
due to the presence of a non-database file in the database
directory, the master have have the database tables deleted,
but not the slaves. To deal with failed database drops, we now
write DROP TABLE statements to the binary
log for the tables so that they are dropped on slav