Functionality added or changed:
Incompatible Change:
The behavior of LOAD DATA INFILE and
SELECT ... INTO OUTFILE has changed when the
FIELDS TERMINATED BY and FIELDS
ENCLOSED 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 correctly with LOAD 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
LOAD DATA INFILE and SELECT ... INTO
OUTFILE. For more information, see
Section 12.2.5, “LOAD DATA INFILE Syntax”.
(Bug#12564)
Incompatible Change:
MyISAM and InnoDB tables
created with 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.)
(Bug#10435)
The GRANT and REVOKE
statements now support an object_type
clause to be used for disambiguating whether the grant object is
a table, a stored function, or a stored procedure. Use of this
clause requires that you upgrade your grant tables. See
Section 4.4.5, “mysql_fix_privilege_tables — Upgrade MySQL System Tables”.
(Bug#10246)
Added REFERENCED_TABLE_SCHEMA,
REFERENCED_TABLE_NAME, and
REFERENCED_COLUMN_NAME columns to the
KEY_COLUMN_USAGE table of
INFORMATION_SCHEMA.
(Bug#9587)
The use of SESSION or
GLOBAL for user variables, or for local
variables in stored routines, is now disallowed.
(Bug#9286)
New /*> prompt for
mysql. This prompt indicates that a
/* ... */ comment was begun on an earlier
line and the closing */ sequence has not yet
been seen.
(Bug#9186)
The INFORMATION_SCHEMA.SCHEMATA table now has
a DEFAULT_COLLATION_NAME column.
(Bug#8998)
Added 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 and \W may be used to
enable and disable warning display.
(Bug#8684)
If strict SQL mode is enabled, VARCHAR and
VARBINARY columns with a length greater than
65,535 no longer are silently converted to
TEXT or BLOB columns.
Instead, an error occurs.
(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)
SHOW VARIABLES now shows the
slave_compressed_protocol,
slave_load_tmpdir and
slave_skip_errors system variables.
(Bug#7800)
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.
(Bug#5436)
Updated version of libedit to 2.9.
(Bug#2596)
InnoDB: If
innodb_locks_unsafe_for_binlog option is set
and the isolation level of the transaction is not set to
serializable then InnoDB uses a consistent
read for select in clauses like INSERT INTO ...
SELECT and UPDATE ... (SELECT) that
do not specify FOR UPDATE or IN
SHARE MODE. Thus no locks are set to rows read from
selected table.
Added the div_precision_increment system
variable, which indicates the number of digits by which to
increase the scale of the result of division operations
performed with the / operator.
Removed mysqlshutdown.exe and
mysqlwatch.exe from the Windows “With
Installer” distribution.
The precision of the DECIMAL data type has
been increased from 64 to 65 decimal digits.
Added the --log-bin-trust-routine-creators
server option for setting the
log_bin_trust_routine_creators system
variable from the command line.
Implemented the STMT_ATTR_PREFETCH_ROWS
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.
Added the log_bin_trust_routine_creators
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
myisam_max_extra_sort_file_size.
Changed default value of
myisam_data_pointer_size from 4 to 6. This
allows us to avoid table is full errors for
most cases.
Added a --debug option to
my_print_defaults.
The variable concurrent_insert 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.
Bugs fixed:
Security Fix:
mysql_install_db created the
mysql_install_db.X file with a predictable
filename and insecure permissions, which allowed local users to
execute arbitrary SQL statements by modifying the file's
contents.
(CVE-2005-1636)
MERGE tables could fail on Windows due to
incorrect interpretation of pathname separator characters for
filenames in the .MRG file.
(Bug#10687)
Fixed a server crash resulting from repeated calls to
ABS() when the argument
evaluated to NULL.
(Bug#10599)
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 Section 20.4, “Binary Logging of Stored Routines and Triggers”. (Bug#10417)
SELECT 0/0 returned 0
rather than NULL.
(Bug#10404)
Fixed a server crash for INSERT ... ON DUPLICATE KEY
UPDATE with MERGE tables, which do
not have unique indexes.
(Bug#10400)
AUTO_INCREMENT in InnoDB
tables could assign the same value for several rows.
(Bug#10359)
Fixed a mysqldump crash that occurred with
the --complete-insert option when dumping
tables with a large number of long column names.
(Bug#10286)
Incomplete results were returned from
INFORMATION_SCHEMA.COLUMNS for
INFORMATION_SCHEMA tables for
non-root users.
(Bug#10261)
Fixed a portability problem in compiling
mysql.cc with VC++ on
Windows.
(Bug#10245)
Using #pragma interface or #pragma
implementation in source files caused portability
issues for cygwin.
(Bug#10241)
Corrected a problem where DEFAULT values were
not assigned properly to BIT(1) or
CHAR(1) columns if certain other columns
preceded them in the table definition.
(Bug#10179)
Fixed a server crash in the BLACKHOLE storage
engine.
(Bug#10175)
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 ON and
WHERE conditions.
(Bug#10162)
Corrected a problem resolving outer column references in correlated subqueries when using the prepared statements. (Bug#10041)
Fixed a problem with INFORMATION_SCHEMA
tables being inaccessible depending on lettercase used to refer
to them.
(Bug#10018)
Fixed some awk script portability problems in cmd-line-utils/libedit/makelist.sh. (Bug#9954)
The error message for exceeding
MAX_CONNECTIONS_PER_HOUR mistakenly referred
to max_connections.
(Bug#9947)
RENAME TABLE for an
ARCHIVE table failed if the
.arn file was not present.
(Bug#9911)
Fixed a server crash resulting from a CHECK
TABLE statement where the arguments were a view name
followed by a table name.
(Bug#9897)
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 Table
' error.
(Bug#9841)tbl_name' was locked with a READ
lock and can't be updated
The INFORMATION_SCHEMA.COLUMNS table was
missing columns of views for which the user has access.
(Bug#9838)
Fixed a server crash resulting from use of a
CHAR or VARCHAR column
with MIN() or
MAX() and GROUP BY ...
WITH ROLLUP.
(Bug#9820)
Fixed a server crash resulting from use of DISTINCT
AVG() with GROUP BY ... WITH
ROLLUP.
(Bug#9800)
Fixed a server crash resulting from use of
AVG(DISTINCT) with
GROUP BY ... WITH ROLLUP.
(Bug#9799)
Fixed a server crash when using GROUP BY ... WITH
ROLLUP on an indexed column in an
InnoDB table.
(Bug#9798)
Corrected some failures of prepared statements for SQL
(PREPARE plus EXECUTE) to
return all rows for some SELECT statements.
(Bug#9777, Bug#9096)
Fix CREATE TABLE ... LIKE to work when
lower_case_table_names is set on a
case-sensitive filesystem and the source table name is not given
in lowercase.
(Bug#9761)
Corrected an inability to select from a view within a stored procedure. (Bug#9758)
net_read_timeout and
net_write_timeout were not being respected on
Windows.
(Bug#9721)
Fixed problems with static variables and do not link with
libsupc++ to allow building on FreeBSD 5.3.
(Bug#9714)
The mysql_stmt_attr_set() C API
function now returns an error for option values that are defined
in mysql.h but not yet implemented, such as
CURSOR_TYPE_SCROLLABLE.
(Bug#9643)
Fixed incorrect memory block allocation for the query cache in the embedded server. (Bug#9549)
CREATE TABLE t AS SELECT UUID() created a
VARCHAR(12) column, which is too small to
hold the 36-character result from
UUID().
(Bug#9535)
Fixed a server crash resulting from use of SELECT
DISTINCT with a prepared statement that uses a cursor.
(Bug#9520)
Fixed a problem with mishandling of NULL key
parts in hash indexes on VARCHAR columns,
resulting in incorrect query results.
(Bug#9489, Bug#10176)
The mysql_stmt_execute() and
mysql_stmt_reset() C API
functions now close any cursor that is open for the statement,
which prevents a server crash.
(Bug#9478)
SELECT from
INFORMATION_SCHEMA tables failed if the
statement has a GROUP BY clause and an
aggregate function in the select list.
(Bug#9404)
MAX() for an INT
UNSIGNED (unsigned 4-byte integer) column could return
negative values if the column contained values larger than
231.
(Bug#9298)
Disabled binary logging within stored routines to avoid writing
spurious extra statements to the binary log. For example, if a
routine p() executes an
INSERT statement, then for CALL
p(), the CALL statement appears in
the binary log, but not the INSERT statement.
(Bug#9100)
Fix FORMAT() to do better
rounding for double values (for example,
FORMAT(4.55,1) returns
4.6, not 4.5).
(Bug#9060)
SHOW CREATE VIEW got confused and could not
find the view if there was a temporary table with the same name
as the view.
(Bug#8921)
Selecting from a single-table view defined on multiple-table views caused a server crash. (Bug#8528)
Remove extra slashes in --tmpdir value (for
example, convert /var//tmp to
/var/tmp, because they caused various
errors.
(Bug#8497)
Invoking a stored function that executed a
SHOW statement resulted in a server crash.
(Bug#8408)
An error in the implementation of the MyISAM
compression algorithm caused myisampack to
fail with very large sets of data (total size of all the records
in a single column needed to be at least 3 GB in order to
trigger this issue).
(Bug#8321)
Added Create_routine_priv,
Alter_routine_priv, and
Execute_priv privileges to the
mysql.host privilege table. (They had been
added to mysql.db in MySQL 5.0.3 but not to
the host table.)
(Bug#8166)
Fixed a deadlock resulting from use of FLUSH TABLES
WITH READ LOCK while an INSERT
DELAYED statement is in progress.
(Bug#7823)
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
CAST() operation).
(Bug#6961)
For MERGE tables, avoid writing absolute
pathnames in the .MRG file for the names of
the constituent 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 pathnames may still be used.
(Bug#5964)
Fixed server crash resulting from multiple calls to a stored
procedure that assigned the result of a subquery to a variable
or compared it to a value with IN.
(Bug#5963)
If the file named by a --defaults-extra-file
option does not exist or is otherwise inaccessible, an error now
occurs.
(Bug#5056)
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 Section 20.4, “Binary Logging of Stored Routines and Triggers”. (Bug#2610)
configure did not properly recognize whether NPTL was available on Linux. (Bug#2173)

User Comments
Add your own comment.