Functionality added or changed:
MySQL Cluster:
The InnoDB
, NDB
,
BDB
, and ARCHIVE
storage
engines now support spatial columns. See
Section 11.12, “Spatial Extensions”.
Replication:
Added a --hexdump
option to
mysqlbinlog that displays a hex dump of the
log in comments. This output can be helpful for replication
debugging.
When a date column is set NOT NULL
and
contains 0000-00-00
, it will be updated for
UPDATE statements that contains
in the
WHERE clause.
(Bug#14186)columnname
IS NULL
When trying to run the server with yaSSL enabled, MySQL now
tries to open /dev/random
automatically if
/dev/urandom
is not available.
(Bug#13164)
MySQL 5.0 now supports character set conversion for
seven additional cp950
characters into the
big5
character set:
0xF9D6
, 0xF9D7
,
0xF9D8
, 0xF9D9
,
0xF9DA
, 0xF9DB
, and
0xF9DC
.
If you move data containing these additional characters to an older MySQL installation which does not support them, you may encounter errors.
You must now declare a prefix for an index on any column of any
Geometry
class, the only exception being when
the column is a POINT
.
(Bug#12267)
The read_only
system variable
no longer applies to TEMPORARY
tables.
(Bug#4544)
Due to changes in binary logging, the restrictions on which
stored routine creators can be trusted not to create unsafe
routines have been lifted for stored procedures (but not stored
functions). Consequently, the
log_bin_trust_routine_creators
system
variable and the corresponding
--log-bin-trust-routine-creators
server option
were renamed to
log_bin_trust_function_creators
and --log-bin-trust-function-creators
. For
backward compatibility, the old names are recognized but result
in a warning. See Section 18.5, “Binary Logging of Stored Programs”.
The CHECK TABLE
statement now
works for ARCHIVE
tables.
In MySQL 5.0.13, syntax for DEFINER
and
SQL SECURITY
clauses was added to the
CREATE VIEW
and
ALTER VIEW
statements, but the
clauses had no effect. They now are enabled. They specify the
security context to be used when checking access privileges at
view invocation time. See Section 12.1.12, “CREATE VIEW
Syntax”, for
more information.
Added the Compression
status
variable, which indicates whether the client connection uses
compression in the client/server protocol.
Bugs fixed:
MySQL Cluster:
Repeated transactions using unique index lookups could cause a
memory leak leading to error 288, Out of index
operations in transaction coordinator
.
(Bug#14199)
MySQL Cluster: A memory leak occurred when performing ordered index scans using indexes on columns larger than 32 bytes. This would eventually lead to the forced shutdown of all mysqld server processes used with the cluster. (Bug#13078)
For some stored functions dumped by mysqldump --routines, the function definition could not be reloaded later due to a parsing error. (Bug#14723)
Deletes from a CSV
table could cause table
corruption.
(Bug#14672)
Executing REPAIR TABLE
,
ANALYZE TABLE
, or
OPTIMIZE TABLE
on a view for
which an underlying table had been dropped caused a server
crash.
(Bug#14540)
mysqlmanager did not start up correctly on Windows 2003. (Bug#14537)
Selecting from a table in both an outer query and a subquery could cause a server crash. (Bug#14482)
ORDER BY DESC
within the
GROUP_CONCAT()
function was not
honored when used in a view.
(Bug#14466)
The input polling loop for Instance Manager did not sleep properly. Instance Manager used up too much CPU as a result. (Bug#14388)
Indexes for BDB
tables were being limited
incorrectly to 255 bytes.
(Bug#14381)
The mysql parser did not properly strip the
delimiter from input lines less than nine characters long. For
example, this could cause USE abc;
to result
in an Unknown database: abc;
error.
(Bug#14358)
The displayed value for the
CHARACTER_MAXIMUM_LENGTH
column in the
INFORMATION_SCHEMA.COLUMNS
table
was not adjusted for multi-byte character sets.
(Bug#14290)
The parser did not correctly recognize wildcards in the host
part of the DEFINER
user in
CREATE VIEW
statements.
(Bug#14256)
Memory corruption and a server crash could be caused by
statements that used a cursor and generated a result set larger
than max_heap_table_size
.
(Bug#14210)
A bug fix in MySQL 5.0.15 caused the displayed values for the
CHARACTER_MAXIMUM_LENGTH
and
CHARACTER_OCTET_LENGTH
columns in the
INFORMATION_SCHEMA.COLUMNS
table to
be reversed.
(Bug#14207)
Statements of the form
CREATE TABLE ...
SELECT ...
that created a column with a multi-byte
character set could incorrectly calculate the maximum length of
the column, resulting in a Specified key was too
long
error.
(Bug#14139)
Use of WITH ROLLUP PROCEDURE ANALYSE()
could
hang the server.
(Bug#14138)
On Windows, the value of
character_sets_dir
in
SHOW VARIABLES
output was
displayed inconsistently (using both
“/
” and
“\
” as path name component
separators).
(Bug#14137)
A comparison with an invalid date (such as WHERE
)
caused any index on col_name
> '2005-09-31'col_name
not to
be used and a string comparison for each row, resulting in slow
performance.
(Bug#14093)
Subqueries in the FROM
clause failed if the
current database was INFORMATION_SCHEMA
.
(Bug#14089)
For InnoDB
tables, using a column prefix for
a utf8
column in a primary key caused
Cannot find record
errors when attempting to
locate records.
(Bug#14056)
Some updatable views could not be updated. (Bug#14027)
A prepared statement that selected from a view processed using the merge algorithm could crash on the second execution. (Bug#14026)
When the DATE_FORMAT()
function
appeared in both the SELECT
and
ORDER BY
clauses of a query but with
arguments that differ by case (for example,
%m
and %M
), incorrect
sorting may have occurred.
(Bug#14016)
TIMEDIFF()
,
ADDTIME()
, and
STR_TO_DATE()
were not reporting
that they could return NULL
, so functions
that invoked them might misinterpret their results.
(Bug#14009)
Within stored routines, REPLACE()
could return an empty string (rather than the original string)
when no replacement was done, and
IFNULL()
could return garbage
results.
(Bug#13941)
Inserting a new row into an InnoDB
table
could cause DATETIME
values
already stored in the table to change.
(Bug#13900)
An update of a CSV
table could cause a server
crash.
(Bug#13894)
Corrected a parser precedence problem that resulted in an
Unknown column ... in 'on clause'
error for
some joins.
(Bug#13832)
Trying to take the logarithm of a negative value is now handled
in the same fashion as division by zero. That is, it produces a
warning when
ERROR_FOR_DIVISION_BY_ZERO
is
set, and an error in strict mode.
(Bug#13820)
The example configuration files supplied with MySQL
distributions listed the
thread_cache_size
variable as
thread_cache
.
(Bug#13811)
mysqld_safe did not correctly start the
-max
version of the server (if it was
present) if the --ledir
option was given.
(Bug#13774)
SHOW CREATE TABLE
did not display
the CONNECTION
string for
FEDERATED
tables.
(Bug#13724)
For a MyISAM
table originally created in
MySQL 4.1, INSERT DELAYED
could
cause a server crash.
(Bug#13707)
The server incorrectly accepted column definitions of the form
DECIMAL(0,
for
D
)D
less than 11.
(Bug#13667)
Trying to create a stored routine with no database selected would crash the server. (Bug#13587, Bug#13514)
Inserts of too-large DECIMAL
values were handled inconsistently (sometimes set to the maximum
DECIMAL
value, sometimes set to
0).
(Bug#13573)
TIMESTAMPDIFF()
returned an
incorrect result if one argument but not the other was a leap
year and a date was from March or later.
(Bug#13534)
Specifying --default-character-set=cp-932
for
mysqld would cause SQL scripts containing
comments written using that character set to fail with a syntax
error.
(Bug#13487)
Use of
in the
col_name
=
VALUES(col_name
)ON DUPLICATE KEY UPDATE
clause of an
INSERT
statement failed with an
Column '
error.
(Bug#13392)col_name
' in field
list is ambiguous
The default value of
query_prealloc_size
was set to
8192, lower than its minimum of 16384. The minimum has been
lowered to 8192.
(Bug#13334)
InnoDB
: When dropping and adding a
PRIMARY KEY
, if a loose index scan using only
the second part of multiple-part index was chosen, incorrect
keys were created and an endless loop resulted.
(Bug#13293)
mysqladmin and mysqldump would hang on SCO OpenServer. (Bug#13238)
SELECT DISTINCT
CHAR(
returned
incorrect results after col_name
)SET NAMES utf8
.
(Bug#13233)
For queries with nested outer joins, the optimizer could choose join orders that query execution could not handle. The fix is that now the optimizer avoids choosing such join orders. (Bug#13126)
The server did not take character set into account in checking
the width of the mysql.user.Password
column.
As a result, it could incorrectly generate long password hashes
even if the column was not long enough to hold them.
(Bug#13064)
The source distribution failed to compile when configured with
the --without-geometry
option.
(Bug#12991)
Use of the deprecated --sql-bin-update-same
option caused a server crash.
(Bug#12974)
Maximum values were handled incorrectly for command-line options
of type GET_LL
.
(Bug#12925)
mysqldump could not dump views if the
-x
option was given.
(Bug#12838)
Two threads that were creating triggers on an
InnoDB
table at the same time could deadlock.
(Bug#12739)
InnoDB
: Large
innobase_buffer_pool_size
and
innobase_log_file_size
values were displayed
incorrectly on 64-bit systems.
(Bug#12701)
For LIKE ... ESCAPE
, an escape sequence
longer than one character was accepted as valid. Now the
sequence must be empty or one character long. If the
NO_BACKSLASH_ESCAPES
SQL mode
is enabled, the sequence must be one character long.
(Bug#12595)
Inserting cp932
strings into a
VARCHAR
column caused a server
crash rather than string truncation if the string was longer
than the column definition.
(Bug#12547)
A prepared statement failed with Illegal mix of
collations
if the client character set was
utf8
and the statement used a table that had
a character set of latin1
.
(Bug#12371)
Using ALTER TABLE
to add an index
could fail if the operation ran out of temporary file space. Now
it automatically makes a second attempt that uses a slower
method but no temporary file. In this case, problems that
occurred during the first attempt can be displayed with
SHOW WARNINGS
.
(Bug#12166)
mysqlimport now issues a SET
@@character_set_database = binary
statement before
loading data so that a file containing mixed character sets
(columns with different character sets) can be loaded properly.
(Bug#12123)
Running OPTIMIZE TABLE
and other
data-updating statements concurrently on an
InnoDB
table could cause a crash or the
following warnings in the error log: Warning: Found
locks from different threads in write: enter
write_lock
, Warning: Found locks from
different threads in write: start of release lock
.
(Bug#11704)
LOAD DATA
INFILE
would not accept the same character for both
the ESCAPED BY
and the ENCLOSED
BY
clauses.
(Bug#11203)
The value of Last_query_cost
was not updated for queries served from the query cache.
(Bug#10303)
Starting mysqld with the
--skip-innodb
and
--default-storage-engine=innodb
(or --default-table-type=innodb
caused a server crash.
(Bug#9815)
The --exit-info=65536
option conflicted with
--temp-pool
and caused problems
with the server's use of temporary files. Now
--temp-pool
is ignored if
--exit-info=65536
is specified.
(Bug#9551)
For a user that has the SELECT
privilege on a view, the server erroneously was also requiring
the user to have the EXECUTE
privilege at view execution time for stored functions used in
the view definition.
(Bug#9505)
Where one stored procedure called another stored procedure: If
the second stored procedure generated an exception, the
exception was not caught by the calling stored procedure. For
example, if stored procedure A
used an
EXIT
statement to handle an exception,
subsequent statements in A
would be executed
regardless when A
was called by another
stored procedure B
, even if an exception that
should have been handled by the EXIT
was
generated in A
.
(Bug#7049)
On Windows, the server was not ignoring hidden or system directories that Windows may have created in the data directory, and would treat them as available databases. (Bug#4375)
User Comments
Add your own comment.