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.6, “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
is enabled and the isolation level of the transaction is not set
to SERIALIZABLE,
InnoDB uses a consistent read for select in
clauses such as
INSERT INTO ...
SELECT and UPDATE ... (SELECT) that
do not specify FOR UPDATE or LOCK 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
file name and insecure permissions, which allowed local users to
execute arbitrary SQL statements by modifying the file's
contents.
(CVE-2005-1636)
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 Section 18.5, “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 Section 18.5, “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 .MRG file.
(Bug#10687)
Repeated calls to ABS() when the
argument evaluated to NULL crashed the
server.
(Bug#10599)
SELECT 0/0 returned 0
rather than NULL.
(Bug#10404)
INSERT ...
ON DUPLICATE KEY UPDATE with MERGE
tables, which do not have unique indexes, caused the server to
crash.
(Bug#10400)
AUTO_INCREMENT in InnoDB
tables could assign the same value for several rows.
(Bug#10359)
mysqldump crashed using the
--complete-insert option while
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)
mysql.cc did not compile correctly using
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)
The BLACKHOLE storage engine failed in
testing, causing the server to crash.
(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)
INFORMATION_SCHEMA tables were inaccessible
depending on the lettercase used to refer to them.
(Bug#10018)
awk script portability problems were found 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)
A CHECK TABLE statement whose
arguments were a view name followed by a table name caused the
server to crash.
(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)
Use of a CHAR or
VARCHAR column with
MIN() or
MAX() and GROUP BY ...
WITH ROLLUP caused the server to crash.
(Bug#9820)
Usi DISTINCT AVG() with GROUP BY ...
WITH ROLLUP caused the server to crash.
(Bug#9800)
Using AVG(DISTINCT) with
GROUP BY ... WITH ROLLUP caused the server to
crash.
(Bug#9799)
Using GROUP BY ... WITH ROLLUP on an indexed
column in an InnoDB table could cause the
server to crash.
(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)
CREATE TABLE ... LIKE did not work correctly
when lower_case_table_names was
set on a case-sensitive file system and the source table name
was 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)
libsupc++ was longer required for 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)
Memory block allocation did not function correctly 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)
SELECT
DISTINCT with a prepared statement that used a cursor
could cause the server to crash.
(Bug#9520)
NULL key parts in hash indexes on
VARCHAR columns were not handled
correctly, 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)
FORMAT() now performs 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)
A deadlock resulted from using
FLUSH TABLES WITH READ
LOCK while an INSERT
DELAYED statement was 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 path
names 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 path names may still be used.
(Bug#5964)
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.
(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)
configure did not properly recognize whether NPTL was available on Linux. (Bug#2173)

User Comments
Add your own comment.