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.