Functionality added or changed:
Replication:
The syntax for CREATE TRIGGER
now
includes a DEFINER
clause for specifying
which access privileges to check at trigger invocation time. See
Section 12.1.11, “CREATE TRIGGER
Syntax”, for more information.
Known issue.
If you attempt to replicate from a master server older than
MySQL 5.0.17 to a slave running MySQL 5.0.17 through 5.0.19,
replication of CREATE TRIGGER
statements fails on the slave with a Definer not
fully qualified error. A workaround is to create
triggers on the master using a version-specific comment
embedded in each CREATE TRIGGER
statement:
CREATE /*!50017 DEFINER = 'root'@'localhost' */ TRIGGER ... ;
CREATE TRIGGER
statements
written this way will replicate to newer slaves, which pick up
the DEFINER
clause from the comment and
execute successfully.
Support files for compiling with Visual Studio 6 have been removed. (Bug#15094)
In the latin5_turkish_ci
collation, the order
of the characters A WITH CIRCUMFLEX
,
I WITH CIRCUMLEX
, and U WITH
CIRCUMFLEX
was changed. If you have used these
characters in any indexed columns, you should rebuild those
indexes.
(Bug#13421)
Recursion is allowed in stored procedures. Recursive stored functions and triggers still are disallowed. (Bug#10100)
Added a DEFINER
column to the
INFORMATION_SCHEMA.TRIGGERS
table.
Invoking a stored function or trigger creates a new savepoint level. When the function or trigger finishes, the previous savepoint level is restored.
See also Bug#13825.
The maximum key length for InnoDB
indexes was
increased from 1024 bytes to 3072 bytes for all builds. (In
MySQL 5.0.15, the length was increased but only for 64-bit
builds.)
Added the SHOW FUNCTION CODE
and
SHOW PROCEDURE CODE
statements
(available only for servers that have been built with debugging
support). See Section 12.4.5.25, “SHOW PROCEDURE CODE
Syntax”.
Bugs fixed:
MySQL Cluster:
A forced cluster shutdown occurred when the management daemon
was restarted with a changed config.ini
file that added an API or SQL node.
(Bug#15512)
MySQL Cluster: There was a small window for a node failure to occur during a backup without an error being reported. (Bug#15425)
MySQL Cluster:
Using ORDER BY
when
selecting from a table having the primary key on a
primary_key_column
VARCHAR
column caused a forced
shutdown of the cluster.
(Bug#15240, Bug#15682, Bug#14828, Bug#15517)
MySQL Cluster: Under certain circumstances, when mysqld connected to a cluster management server, the connection would fail before a node ID could be allocated. (Bug#15215)
MySQL Cluster:
Creating a table with packed keys failed silently.
NDB
now supports the
PACK_KEYS
option to
CREATE TABLE
correctly.
(Bug#14514)
MySQL Cluster:
REPLACE
failed when attempting to
update a primary key value in a Cluster table.
(Bug#14007)
Replication: Stored functions making use of cursors were not replicated. (Bug#14077)
Replication: On Windows, the server could crash during shutdown if both replication threads and normal client connection threads were active. (Bug#11796)
Replication:
InnoDB
: During replication, There was a
failure to record events in the binary log that still occurred
even in the event of a
ROLLBACK
. For
example, this sequence of commands:
BEGIN; CREATE TEMPORARY TABLE t1 (a INT) ENGINE=INNODB; ROLLBACK; INSERT INTO t1 VALUES (1);
would succeed on the replication master as expected. However,
the INSERT
would fail on the
slave because the
ROLLBACK
would
(erroneously) cause the
CREATE TEMPORARY
TABLE
statement not to be written to the binlog.
(Bug#7947)
Corrected an error-handling problem within stored routines on 64-bit platforms. (Bug#15630)
Slave SQL thread cleanup was not handled properly on Mac OS X when a statement was killed, resulting in a slave crash. (Bug#15623, Bug#15668)
The CREATE
test case in
mysql-test-run.pl failed on AIX and SCO.
(Bug#15607)
A bug in mysql-test/t/mysqltest.test
caused
that test to fail.
(Bug#15605)
A statement that produced a warning, when fetched via
mysql_stmt_fetch()
, did not
produce a warning count according to
mysql_warning_count()
.
(Bug#15510)
The database-changing code for stored routine handling caused an error-handling problem resulting in a server crash. (Bug#15392)
The original Linux RPM packages (5.0.17-0) had an issue with a
zlib
dependency that would result in an error
during an install or upgrade. They were replaced by new
binaries, 5.0.17-1. Here is a list of the new RPM binaries:
MySQL-{Max,client,devel,server,shared,ndb*}-5.0.17-1.i386.rpm
MySQL-*-standard-5.0.17-1.rhel3.i386.rpm, MySQL-*-standard-5.0.17-1.rhel3.ia64.rpm, MySQL-*-standard-5.0.17-1.rhel3.x86_64.rpm
MySQL-*-pro-5.0.17-1.rhel3.i386.rpm, MySQL-*-pro-5.0.17-1.rhel3.ia64.rpm, MySQL-*-pro-5.0.17-1.rhel3.x86_64.rpm
MySQL-*-pro-gpl-5.0.17-1.rhel3.i386.rpm, MySQL-*-pro-gpl-5.0.17-1.rhel3.ia64.rpm, MySQL-*-pro-gpl-5.0.17-1.rhel3.x86_64.rpm
mysqld would not start on Windows 9X operating systems including Windows Me. (Bug#15209)
Queries that select records based on comparisons to a set of column could crash the server if there was one index covering the columns, and a set of other noncovering indexes that taken together cover the columns. (Bug#15204)
Selecting from a view processed with the temptable algorithm caused a server crash if the query cache was enabled. (Bug#15119)
mysql --help was missing a newline after the
version string when the bundled readline
library was not used.
(Bug#15097)
Creating a view that referenced a stored function that selected from a view caused a crash upon selection from the view. (Bug#15096)
The server crashed if compiled without any transactional storage engines. (Bug#15047)
Multiple-table update operations were counting updates and not updated rows. As a result, if a row had several updates it was counted several times for the “rows matched” value but updated only once. (Bug#15028)
Symbolic links did not function properly on Windows platforms. (Bug#14960, Bug#14310)
ROW_COUNT()
returned an incorrect
result after EXECUTE
of a
prepared statement.
(Bug#14956)
When using an aggregate function to select from a table that has
a multiple-column primary key, adding ORDER
BY
to the query could produce an incorrect result.
(Bug#14920)
ANALYZE TABLE
did not properly
update table statistics for a MyISAM
table
with a FULLTEXT
index containing stopwords,
so a subsequent ANALYZE TABLE
would not recognize the table as having already been analyzed.
(Bug#14902)
Creating a view within a stored procedure could result in an out of memory error or a server crash. (Bug#14885)
GROUP BY
on a view column did not correctly
account for the possibility that the column could contain
NULL
values.
(Bug#14850)
The mysql_stmt_fetch()
C API
function could return MYSQL_NO_DATA
for a
SELECT COUNT(*) FROM
statement, which should return 1 row.
(Bug#14845)tbl_name
WHERE 1 = 0
Selecting from a view used filesort
retrieval
when faster retrieval was possible.
(Bug#14816)
InnoDB
: A race condition allowed two threads
to drop a hash index simultaneously.
(Bug#14747)
SHOW CREATE TABLE
for a view
could fail if the client had locked the view.
(Bug#14726)
The grammar for supporting the DEFINER =
CURRENT_USER
clause in CREATE
VIEW
and ALTER VIEW
was
incorrect.
(Bug#14719)
ALTER TABLE ... SET DEFAULT
had no effect.
(Bug#14693)
Using ORDER BY
on a column from a view, when
also selecting the column normally, and via an alias, caused a
mistaken Column 'x' in order clause is
ambiguous
error.
(Bug#14662)
SELECT
queries that began with an
opening parenthesis were not being placed in the query cache.
(Bug#14652)
In a stored procedure, continuing (via a condition handler) after a failed variable initialization caused a server crash. (Bug#14643)
A LIMIT
-related optimization failed to take
into account that MyISAM
table indexes can be
disabled, causing Error 124 when it tried to use such an index.
(Bug#14616)
mysqlhotcopy tried to copy
INFORMATION_SCHEMA
tables.
(Bug#14610)
A server crash resulted from the following sequence of events:
1) With no default database selected, create a stored procedure
with the procedure name explicitly qualified with a database
name (CREATE PROCEDURE
). 2) Create another stored procedure with no
database name qualifier. 3) Execute db_name
.proc_name
...SHOW
PROCEDURE STATUS
.
(Bug#14569)
mysqldump --triggers did not account for the
SQL mode and could dump trigger definitions with missing
whitespace if the IGNORE_SPACE
mode was enabled.
(Bug#14554)
CREATE TABLE
could crash the server and write invalid
data into the tbl_name
(...)
SELECT ....frm
file if the
CREATE TABLE
and
SELECT
both contained a column
with the same name. Also, if a default value is specified in the
column definition, it is now actually used.
(Bug#14480)
The value of
INFORMATION_SCHEMA.TABLES.TABLE_TYPE
sometimes was reported as empty.
(Bug#14476)
mysql_fix_privilege_tables.sql
contained an
erroneous comment that resulted in an error when the file
contents were processed.
(Bug#14469)
Queries on ARCHIVE
tables that used the
filesort
sorting method could result in a
server crash.
(Bug#14433)
Creating a table containing an
ENUM
or SET
column from within a stored procedure or prepared statement
caused a server crash later when executing the procedure or
statement.
(Bug#14410)
For a table that had been opened with HANDLER
OPEN
, issuing OPTIMIZE
TABLE
, ALTER TABLE
, or
REPAIR TABLE
caused a server
crash.
(Bug#14397)
Declaring a stored routine variable to have a
DEFAULT
value that referred to a variable of
the same name caused a server crash. (For example:
DECLARE x INT DEFAULT x
) Now the
DEFAULT
variable is interpreted as referring
to a variable in an outer scope, if there is one.
(Bug#14376)
Complex subqueries could cause improper internal query execution environment initialization and crash the server. (Bug#14342)
Within a stored procedure, inserting with
INSERT ...
SELECT
into a table with an
AUTO_INCREMENT
column did not generate the
correct sequence number.
(Bug#14304)
Space truncation was being ignored when inserting into
BINARY
or
VARBINARY
columns. Now space
truncation results in a warning, or an error in strict mode.
(Bug#14299)
Casting a FLOAT
or
DOUBLE
whose value was less than
1.0E-06
to
DECIMAL
would yield an
inappropriate value.
(Bug#14268)
CAST(
) did not pad with
0x00 to a length of expr
AS
BINARY(N
)N
bytes.
(Bug#14255)
Manual manipulation of the mysql.proc
table
could cause a server crash. This should not happen, but it is
also not supported that the server will notice such changes.
(Bug#14233)
A UNION
of
DECIMAL
columns could produce
incorrect results.
(Bug#14216)
The maximum value of MAX_ROWS
was handled
incorrectly on 64-bit systems.
(Bug#14155)
CHAR(... USING ...)
and
CONVERT(CHAR(...) USING ...)
,
though logically equivalent, could produce different results.
(Bug#14146)
The server could misinterpret old trigger definition files created before MySQL 5.0.17. Now they are interpreted correctly, but this takes more time and the server issues a warning that the trigger should be re-created. (Bug#14090)
For a invalid view definition, selecting from the
INFORMATION_SCHEMA.VIEWS
table or
using SHOW CREATE VIEW
failed,
making it difficult to determine what part of the definition was
invalid. Now the server returns the definition and issues a
warning.
(Bug#13818)
InnoDB
: Activity on an
InnoDB
table caused execution time for
SHOW CREATE TABLE
for the table
to increase.
(Bug#13762)
Within a stored procedure, exception handling for
UPDATE
statements that caused a
duplicate-key error caused a Packets out of
order
error for the following statement.
(Bug#13729)
Statements that implicitly commit a transaction are prohibited in stored functions and triggers. An attempt to create a function or trigger containing such a statement produces an error. (The originally reported symptom was that a trigger that dropped another trigger could cause a server crash. That problem was fixed by the patch for Bug#13343.) (Bug#13627)
A newline character in a column alias in a view definition caused an error when selecting from the view later. (Bug#13622)
Invoking a stored procedure within another stored procedure caused the server to crash. (Bug#13549)
Warnings from a previous command were not being reset when fetching from a cursor. (Bug#13524)
In some cases, a left outer join could yield an invalid result
or cause the server to crash, due to a
MYSQL_DATA_TRUNCATED
error.
(Bug#13488)
DELETE
from
CSV
tables reported an incorrect
rows-affected value.
(Bug#13406)
A server crash could occur if a prepared statement updated a table for which a trigger existed when the statement was prepared but had been dropped prior to statement execution. (Bug#13399)
RESET MASTER
failed to delete log
files on Windows. One consequence of this change is that server
opens the general query and slow log files in shared mode, so
now they can be renamed while the server has them open
(something not true in previous versions).
(Bug#13377)
For binary string data types, mysqldump
--hex-blob produced an illegal output value of
0x
rather than ''
.
(Bug#13318)
REPAIR TABLE
,
BACKUP TABLE
,
RESTORE TABLE
within a stored
procedure caused a server crash.
(Bug#13012)
Implicit versus explicit conversion of float to integer (such as
inserting a float value into an integer column versus using
CAST(... AS UNSIGNED)
before
inserting the value) could produce different results. Implicit
and explicit typecasts now are done the same way, with a value
equal to the nearest integer according to the prevailing
rounding mode.
(Bug#12956)
Some comparisons for the IN()
operator were inconsistent with equivalent comparisons for the
=
operator.
(Bug#12612)
A server crash could occur if a prepared statement invoked a stored procedure that existed when the statement was prepared but had been dropped and re-created prior to statement execution. (Bug#12329)
make failed when attempting to build MySQL in different directory other than that containing the source. (Bug#11827)
Revised table locking to allow proper assessment of view security. (Bug#11555)
Perform character set conversion of constant values whenever possible without data loss. (Bug#10446)
Within a trigger definition the
CURRENT_USER()
function evaluated
to the user whose actions caused the trigger to be activated.
Now that triggers have a DEFINER
value,
CURRENT_USER()
evaluates to the
trigger definer.
(Bug#5861)
mysql ignored the
MYSQL_TCP_PORT
environment variable.
(Bug#5792)
User Comments
Add your own comment.