Functionality added or changed:
Replication:
Better detection of connection timeout for replication servers
on Windows allows elimination of extraneous Lost
connection
errors in the error log.
(Bug#5588)
OPTIMIZE TABLE
and
HANDLER
now are prohibited in
stored procedures and functions and in triggers.
(Bug#12953, Bug#12995)
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)
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)
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 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#10605)
See also Bug#7115.
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 :
mysqld --skip-character-set-client-handshake
(Bug#9948)
Added a --routines
option for
mysqldump that enables dumping of stored
routines.
(Bug#9056)
RAND()
no longer allows
nonconstant initializers. (Prior to MySQL 5.0.13, the effect of
nonconstant initializers is undefined.)
(Bug#6172)
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 12.1.12, “CREATE VIEW
Syntax”, for
more information.
The --hex-dump
option for
mysqldump now also applies to
BIT
columns.
Two new collations have been added for Esperanto:
utf8_esperanto_ci
and
ucs2_esperanto_ci
.
The Windows binary packages are now compiled with the Microsoft Visual Studio 2003 compiler instead of Microsoft Visual C++ 6.0.
The connection string for FEDERATED
tables
now is specified using a CONNECTION
table
option rather than a COMMENT
table option.
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)
MySQL Cluster:
The cluster management client START BACKUP
command could be interrupted by a
SHOW
command.
(Bug#13054)
MySQL Cluster: A cluster shutdown following the crash of a data node failed to terminate any remaining node processes, even though ndb_mgm showed the shutdown request as having been completed. (Bug#9996, Bug#10938, Bug#11623)
MySQL Cluster:
The average row size for Cluster tables was calculated
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 storage engines other than
NDB
were not affected by this bug.
(Bug#9896)
Replication:
Within a transaction, the following statements now cause an
implicit commit: CREATE FUNCTION
,
DROP FUNCTION
,
DROP PROCEDURE
(for stored
functions, not UDFs), ALTER
FUNCTION
, ALTER
PROCEDURE
, CREATE
PROCEDURE
. This corrects a problem where these
statements followed by
ROLLBACK
might
not be replicated properly.
(Bug#12870)
Replication:
Replication of LOAD
DATA INFILE
failed between systems using different
path name syntax (such as delimiter characters).
(Bug#11815)
Local variables in stored routines were not always initialized correctly. (Bug#13133)
The FEDERATED
storage engine does not support
ALTER TABLE
, but no appropriate
error message was issued.
(Bug#13108)
Columns named in the USING()
clause of
JOIN ... USING()
were incorrectly resolved in
case-sensitive fashion.
(Bug#13067)
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
))
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)
Using an INOUT
parameter with a
DECIMAL
data type in a stored
procedure caused a server crash.
(Bug#12979)
SELECT ... JOIN ... ON ... JOIN ... USING
caused a server crash.
(Bug#12977)
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)
On HP-UX 11.x (PA-RISC), the -L
option caused
mysqlimport to crash.
(Bug#12958)
InnoDB
: A consistent read could return
inconsistent results due to a bug introduced in MySQL 5.0.5.
(Bug#12947)
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)
Incorrect results could be returned from a view processed using a temporary table. (Bug#12941)
Multiplying a DECIMAL
value
within a loop in a stored routine could incorrectly result in a
value of NULL
.
(Bug#12938)
Using GROUP BY
when selecting from a view in
some cases could cause incorrect results to be returned.
(Bug#12922)
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
values before the variables roll over and restart from 0.
(Bug#12920)
mysql and mysqldump were
ignoring the
--defaults-extra-file
option.
(Bug#12917)
SHOW FIELDS FROM
caused error 1046 when no default schema was set.
(Bug#12905)schemaname
.viewname
UNION [DISTINCT]
was not removing all
duplicates for multi-byte character values.
(Bug#12891)
A column that can be NULL
was not handled
properly for WITH ROLLUP
in a subquery or
view.
(Bug#12885)
GROUP_CONCAT()
ignored an empty
string if it was the first value to occur in the result.
(Bug#12863)
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)
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)
The server crashed when one thread resized the query cache while another thread was using it. (Bug#12848)
A concurrency problem for CREATE ... SELECT
could cause a server crash.
(Bug#12845)
DO IFNULL(NULL, NULL)
and SELECT
CAST(IFNULL(NULL, NULL) AS DECIMAL)
caused a server
crash.
(Bug#12841)
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)
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 4.4.5, “mysql_fix_privilege_tables — Upgrade MySQL System Tables”.
After this, all stored routine functionality should work. (Bug#12820)
Queries with subqueries, where the inner subquery uses the
range
or
index_merge
access method,
could return incorrect results.
(Bug#12720)
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)
Simultaneous execution of DML statements and
CREATE TRIGGER
or
DROP TRIGGER
statements on the
same table could cause server crashes or errors.
(Bug#12704)
Performing an IS NULL
check on the
MIN()
or
MAX()
of an indexed column in a
complex query could produce incorrect results.
(Bug#12695)
Use of PREPARE
and
EXECUTE
with a statement that
selected from a view in a subquery could cause a server crash.
(Bug#12651)
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)
The LIKE ... ESCAPE
syntax produced invalid
results when escape character was larger than one byte.
(Bug#12611)
InnoDB
: Limit recursion depth to 200 in
deadlock detection to avoid running out of stack space.
(Bug#12588)
The mysql.server
script contained an
incorrect path for the libexec
directory.
(Bug#12550)
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)
A client connection thread cleanup problem caused the server to crash when closing the connection if the binary log was enabled. (Bug#12517)
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)
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)
Deadlock occurred when several account management statements
were run (particularly between
FLUSH
PRIVILEGES
/SET PASSWORD
and
GRANT
/REVOKE
statements).
(Bug#12423)
InnoDB
was too permissive with LOCK
TABLE ... READ LOCAL
and allowed 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)
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)
The value of
character_set_results
could be
set to NULL
, but returned the string
"NULL"
when retrieved.
(Bug#12363)
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 is the
same as a Windows device name, but a table with the name of
n
or nu
was being
forbidden as well.
(Bug#12325)
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)
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#12102, Bug#12101)
Foreign keys were not properly enforced in
TEMPORARY
tables. Foreign keys now are
disallowed in TEMPORARY
tables.
(Bug#12084)
When using a cursor, a SELECT
statement that uses a GROUP BY
clause could
return incorrect results.
(Bug#11904)
The character_set_system
system
variable could not be selected with SELECT
@@character_set_system
.
(Bug#11775)
A memory leak resulting from repeated
SELECT ...
INTO
statements inside a stored procedure could cause
the server to crash.
(Bug#11333)
Use of yaSSL for a secure client connection caused
LOAD DATA LOCAL
INFILE
to fail.
(Bug#11286)
mysqld_multi now quotes arguments on command lines that it constructs to avoid problems with arguments that contain shell metacharacters. (Bug#11280)
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)
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)
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)
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#9819, Bug#6513)
The server allowed TEMPORARY
tables and
stored procedures to be created in the
INFORMATION_SCHEMA
database.
(Bug#9683, Bug#10708)
SHOW FIELDS
truncated the
TYPE
column to 40 characters.
(Bug#7142)
See also Bug#12817.
A view-creation statement of the form CREATE VIEW
failed with a
name
AS SELECT ... FROM
tbl_name
AS
name
Not unique table/alias:
'
error.
(Bug#6808)name
'
myisampack did not properly pack
BLOB
values larger than
224 bytes.
(Bug#4214)
User Comments
Add your own comment.