Functionality Added or Changed
The behavior of
DATA INFILE and
SELECT ... INTO
OUTFILE has changed when the
TERMINATED BY and
BY values both are empty. Formerly, a column was read
or written the display width of the column. For example,
INT(4) was read or written using a field with
a width of 4. Now columns are read and written using a field
width wide enough to hold all values in the field. However, data
files written before this change was made might not be reloaded
DATA INFILE for MySQL 4.1.12 and up. This change also
affects data files read by mysqlimport and
written by mysqldump --tab, which use
SELECT ... INTO
OUTFILE. For more information, see
LOAD DATA INFILE Syntax.
DECIMAL columns in
MySQL 5.0.3 to 5.0.5 will appear corrupt after an upgrade to
MySQL 5.0.6. Dump such tables with mysqldump
before upgrading, and then reload them after upgrading. (The
same incompatibility will occur for these tables created in
MySQL 5.0.6 after a downgrade to MySQL 5.0.3 to 5.0.5.)
(Bug #10465, Bug #10625)
When the server cannot read a table because it cannot read the
.frm file, print a message that the table
was created with a different version of MySQL. (This can happen
if you create tables that use new features and then downgrade to
an older version of MySQL.)
REVOKE statements now support an
object_type clause to be used for
disambiguating whether the grant object is a table, a stored
procedure, or a stored function. Use of this clause requires
that you upgrade your grant tables. See
mysql_fix_privilege_tables — Upgrade MySQL System Tables.
REFERENCED_COLUMN_NAME columns to the
KEY_COLUMN_USAGE table of
The use of
GLOBAL for user variables, or for local
variables in stored routines, is no longer permitted.
/*> prompt for
mysql. This prompt indicates that a
/* ... */ comment was begun on an earlier
line and the closing
*/ sequence has not yet
table now has a
--show-warnings option to
mysql to cause warnings to be shown after
each statement if there are any. This option applies to
interactive and batch mode. In interactive mode,
\W may be used to
enable and disable warning display.
If strict SQL mode is enabled,
VARBINARY columns with a length
greater than 65,535 no longer are silently converted to
BLOB columns. Instead, an error
(Bug #8295, Bug #8296)
Removed a limitation that prevented use of FIFOs as logging targets (such as for the general query log). This modification does not apply to the binary log and the relay log. (Bug #8271)
InnoDB: When the maximum length of
SHOW INNODB STATUS output would
be exceeded, truncate the beginning of the list of active
transactions, instead of truncating the end of the output.
Updated version of
libedit to 2.9.
option for the
mysql_stmt_attr_set() C API
function. This sets how many rows to fetch at a time when using
cursors with prepared statements.
now takes 3 values. Setting this to 2 changes
MyISAM to do concurrent inserts to end of
table if table is in use by another thread.
system variable, which applies when binary logging is enabled.
It controls whether stored routine creators can be trusted not
to create stored routines that will cause unsafe events to be
written to the binary log.
Removed unused system variable
mysqlwatch.exe from the Windows “With
Changed default value of
myisam_data_pointer_size from 4
to 6. This enables us to avoid
table is full
errors for most cases.
variable, which indicates the number of digits by which to
increase the scale of the result of division operations
performed with the
The precision of the
type has been increased from 64 to 65 decimal digits.
is enabled and the isolation level of the transaction is not set
InnoDB uses a consistent read for select in
clauses such as
INSERT INTO ...
UPDATE ... (SELECT) that
do not specify
FOR UPDATE or
SHARE MODE. Thus, no locks are set to rows read from
server option for setting the
variable from the command line.
mysql_install_db created the
mysql_install_db.X file with a predictable
file name and insecure permissions, which permitted local users
to execute arbitrary SQL statements by modifying the file's
Replication: Statements that create and drop triggers were not being written to the binary log, which affects replication and data recovery options. Trigger-related statements now are logged, subject to the issues and limitations discussed in Binary Logging of Stored Programs. (Bug #10417)
Replication: Statements that create and use stored routines were not being written to the binary log, which affects replication and data recovery options. Stored routine-related statements now are logged, subject to the issues and limitations discussed in Binary Logging of Stored Programs. (Bug #2610)
MERGE tables could fail on Windows due to
incorrect interpretation of path name separator characters for
file names in the
Repeated calls to
ABS() when the
argument evaluated to
NULL crashed the
SELECT 0/0 returned
ON DUPLICATE KEY UPDATE with
tables, which do not have unique indexes, caused the server to
tables could assign the same value for several rows.
mysqldump crashed using the
--complete-insert option while
dumping tables with a large number of long column names.
Incomplete results were returned from
INFORMATION_SCHEMA tables for
mysql.cc did not compile correctly using
VC++ on Windows.
#pragma interface or
implementation in source files caused portability
Corrected a problem where
DEFAULT values were
not assigned properly to
CHAR(1) columns if certain other columns
preceded them in the table definition.
BLACKHOLE storage engine failed in
testing, causing the server to crash.
The optimizer was choosing suboptimal execution plans for
certain outer joins where the right table of a left join (or
left table of a right join) had both
Corrected a problem resolving outer column references in correlated subqueries when using the prepared statements. (Bug #10041)
INFORMATION_SCHEMA tables were inaccessible
depending on the lettercase used to refer to them.
awk script portability problems were found in
The error message for exceeding
MAX_CONNECTIONS_PER_HOUR mistakenly referred
RENAME TABLE for an
ARCHIVE table failed if the
.arn file was not present.
CHECK TABLE statement whose
arguments were a view name followed by a table name caused the
server to crash.
my_print_defaults was ignoring the
--defaults-extra-file option or
crashing when the option was given.
(Bug #9851, Bug #9136)
Within a stored procedure, attempting to update a view defined
as an inner join failed with a
tbl_name' was locked with a READ
lock and can't be updated
table was missing columns of views for which the user has
DISTINCT AVG() with
GROUP BY ...
WITH ROLLUP caused the server to crash.
GROUP BY ... WITH ROLLUP caused the server to
GROUP BY ... WITH ROLLUP on an indexed
column in an
InnoDB table could cause the
server to crash.
Corrected an inability to select from a view within a stored procedure. (Bug #9758)
libsupc++ was longer required for building on
mysql_stmt_attr_set() C API
function now returns an error for option values that are defined
mysql.h but not yet implemented, such as
Memory block allocation did not function correctly for the query cache in the embedded server. (Bug #9549)
DISTINCT with a prepared statement that used a cursor
could cause the server to crash.
NULL key parts in hash indexes on
VARCHAR columns were not handled
correctly, resulting in incorrect query results.
(Bug #9489, Bug #10176)
INFORMATION_SCHEMA tables failed if the
statement has a
GROUP BY clause and an
aggregate function in the select list.
MAX() for an
UNSIGNED (unsigned 4-byte integer) column could return
negative values if the column contained values larger than
Disabled binary logging within stored routines to avoid writing
spurious extra statements to the binary log. For example, if a
p() executes an
INSERT statement, then for
CALL p(), the
CALL statement appears in the
binary log, but not the
SHOW CREATE VIEW got confused and
could not find the view if there was a temporary table with the
same name as the view.
Selecting from a single-table view defined on multiple-table views caused a server crash. (Bug #8528)
Remove extra slashes in
--tmpdir value (for
/var/tmp, because they caused various
Invoking a stored function that executed a
SHOW statement resulted in a
An error in the implementation of the
compression algorithm caused
fail with very large sets of data (total size of all the records
in a single column needed to be at least 3 GB to trigger this
Execute_priv privileges to the
mysql.host privilege table. (They had been
mysql.db in MySQL 5.0.3 but not to
In strict SQL mode, some assignments to numeric columns that
should have been rejected were not (such as the result of an
arithmetic expression or an explicit
MERGE tables, avoid writing absolute path
names in the
.MRG file for the names of the
MyISAM tables so that if the data
directory is moved,
MERGE tables will not
break. For mysqld, write just the
MyISAM table name if it is in the same
database as the
MERGE table, and a path
relative to the data directory otherwise. For the embedded
servers, absolute path names may still be used.
Multiple calls to a stored procedure that assigned the result of
a subquery to a variable or compared it to a value with
IN could cause the server to crash.
If the file named by a
does not exist or is otherwise inaccessible, an error now
configure did not properly recognize whether NPTL was available on Linux. (Bug #2173)