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.