MySQL 5.0.10 ベータ版がリリースされました。


最も普及しているオープンソースデータベース管理システムであるのMySQL 5.0.10 ベータ版がリリースされました。







Functionality added or changed:

* Security improvement: Applied a patch that addresses a zlib data vulnerability that could result in a buffer overflow and code execution. (CAN-2005-2096(http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-2096)) (Bug #11844 (http://bugs.mysql.com/11844))
* The viewing of triggers and trigger metadata has been enhanced as follows:
  + An extension to the SHOW command has been added: SHOW TRIGGERS can be used to view a listing of triggers. See Section, "SHOW TRIGGERS Syntax" for details.
  + The INFORMATION_SCHEMA database now includes a TRIGGERS table. See Section 22.1.16, "The INFORMATION_SCHEMA TRIGGERS Table" for details. (Bug #9586 (http://bugs.mysql.com/9586))
* On Windows, the search path used by MySQL applications for my.ini now includes ..\my.ini (that is, the application's parent directory, and hence, the installation directory). (Bug #10419(http://bugs.mysql.com/10419))
* Added mysql_get_character_set_info() C API function for obtaining information about the default character set of the current connection.
  The bundled version of the readline library was upgraded to version 5.0.
* It is no longer necessary to issue an explicit LOCK TABLES for any tables accessed by a trigger prior to executing any statements that might invoke the trigger. (Bug #9581 (http://bugs.mysql.com/9581), Bug #8406 (http://bugs.mysql.com/8406))
* MySQL Cluster: A new -p option is available for use with the ndb_mgmd client. When called with this option, ndb_mgmd prints all configuration data to stdout, then exits.
* The namespace for triggers has changed. Previously, trigger names had to be unique per table. Now they must be unique within the schema (database). An implication of this change is that DROP TRIGGER syntax now uses a schema name instead of a table name (schema name is optional and, if omitted, the current schema will be used). Note: When upgrading from a previous version of MySQL 5 to MySQL 5.0.10 or newer, you must drop all triggers before upgrading and re-create them after or DROP TRIGGER will not work after the upgrade. (Bug #5892 (http://bugs.mysql.com/5892))

Bugs fixed:

* * NDB_MGMD was leaking file descriptors. (Bug #11898 (http://bugs.mysql.com/11898))
* * IP addresses not shown in ndb_mgm SHOW command on second ndb_mgmd (or on ndb_mgmd restart). (Bug #11596 (http://bugs.mysql.com/11596))
* Functions that evaluate to constants (such as NOW() and CURRENT_USER() were being evaluated in the definition of a VIEW rather than included verbatim. (Bug #4663 (http://bugs.mysql.com/4663))
* Execution of SHOW TABLES failed to increment the Com_show_tables status variable. (Bug #11685 (http://bugs.mysql.com/11685))
* For execution of a stored procedure that refers to a view, changes to the view definition were not seen. The procedure continued to see the old contents of the view. (Bug #6120 (http://bugs.mysql.com/6120))
* For prepared statements, the SQL parser did not disallow '?' parameter markers immediately adjacent to other tokens, which could result in malformed statements in the binary log. (For example, SELECT * FROM t WHERE? = 1 could become SELECT * FROM t WHERE0 = 1.) (Bug #11299 (http://bugs.mysql.com/11299))
* When two threads compete for the same table, a deadlock could occur if one thread has also a lock on another table through LOCK TABLES and the thread is attempting to remove the table in some manner and the other thread want locks on both tables. (Bug #10600 (http://bugs.mysql.com/10600))
* Aliasing the column names in a VIEW did not work when executing a SELECT query on the VIEW. (Bug #11399 (http://bugs.mysql.com/11399))
* Performing an ORDER BY on a SELECT from a VIEW produced unexpected results when VIEW and underlying table had the same column name on different columns. Bug #11709 (http://bugs.mysql.com/11709))
* The C API function mysql_statement_reset() did not clear error information. (Bug #11183 (http://bugs.mysql.com/11183))
* When used within a subquery, SUBSTRING() returned an empty string. (Bug #10269 (http://bugs.mysql.com/10269))
* Multiple-table UPDATE queries using CONVERT_TZ() would fail with an error. (Bug #9979 (http://bugs.mysql.com/9979))
* mysql_fetch_fields() returned incorrect length information for MEDIUM and LONG TEXT and BLOB columns. (Bug #9735 (http://bugs.mysql.com/9735))
* mysqlbinlog was failing the test suite on Windows due to BOOL being incorrectly cast to INT. (Bug #11567 (http://bugs.mysql.com/11567))
* NDBCLuster: Server left core files following shutdown if data nodes had failed. (Bug #11516 (http://bugs.mysql.com/11516))
* Creating a trigger in one database that references a table in another database was being allowed without generating errors. (Bug #8751 (http://bugs.mysql.com/8751))
* Duplicate trigger names were allowed within a single schema. (Bug #6182 (http://bugs.mysql.com/6182))
* Server did not accept some fully-qualified trigger names. (Bug #8758 (http://bugs.mysql.com/8758))
* The traditional SQL mode accepted invalid dates if the date value provided was the result of an implicit type conversion. (Bug #5906 (http://bugs.mysql.com/5906))
* The MySQL server had issues with certain combinations of basedir and datadir. (Bug #7249 (http://bugs.mysql.com/7249))
* INFORMATION_SCHEMA.COLUMNS had some inaccurate values for some data types. (Bug #11057 (http://bugs.mysql.com/11057))
* LIKE pattern matching using prefix index didn't return correct result. (Bug #11650 (http://bugs.mysql.com/11650))
* For several character sets, MySQL incorrectly converted the character code for the division sign to the eucjpms character set. (Bug #11717 (http://bugs.mysql.com/11717))
* When invoked within a view, SUBTIME() returned incorrect values. (Bug #11760 (http://bugs.mysql.com/11760))
* SHOW BINARY LOGS displayed a file size of 0 for all log files but the current one if the files were not located in the data directory. (Bug #12004 (http://bugs.mysql.com/12004))
* Server-side prepared statements failed for columns with a character set of ucs2. (Bug #9442 (http://bugs.mysql.com/9442))
* References to system variables in an SQL statement prepared with PREPARE were evaluated during EXECUTE to their values at prepare time, not to their values at execution time. (Bug #9359 (http://bugs.mysql.com/9359))
* For server shutdown on Windows, error messages of the form Forcing close of thread n user: 'name' were being written to the error log. Now connections are closed more gracefully without generating error messages. (Bug #7403 (http://bugs.mysql.com/7403))
* Increased the version number of the libmysqlclient shared library from 14 to 15 because it is binary incompatible with the MySQL 4.1 client library. (Bug #11893 (http://bugs.mysql.com/11893))
* A recent optimizer change caused DELETE ... WHERE ... NOT LIKE and DELETE ... WHERE ... NOT BETWEEN to not properly identify the rows to be deleted. (Bug #11853 (http://bugs.mysql.com/11853))
* Within a stored procedure that selects from a table, invoking another procedure that requires a write lock for the table caused that procedure to fail with a message that the table was read-locked. (Bug #9565 (http://bugs.mysql.com/9565))
* Within a stored procedure, selecting from a table through a view caused subsequent updates to the table to fail with a message that the table was read-locked. (Bug #9597 (http://bugs.mysql.com/9597))
* For a stored procedure defined with SQL SECURITY DEFINER characteristic, CURRENT_USER() incorrectly reported the use invoking the procedure, not the user who defined it. (Bug #7291 (http://bugs.mysql.com/7291))
* Creating a table with a SET or ENUM column with the DEFAULT 0 clause caused a server crash if the table's character set was utf8. (Bug #11819 (http://bugs.mysql.com/11819))
* With strict SQL mode enabled, ALTER TABLE reported spurious "Invalid default value" messages for columns that had no DEFAULT clause. (Bug #9881 (http://bugs.mysql.com/9881))
* In SQL prepared statements, comparisons could fail for values not equally space-padded. For example, SELECT 'a' = 'a '; returns 1, but PREPARE s FROM 'SELECT ?=?'; SET @a = 'a', @b = 'a '; PREPARE s FROM 'SELECT ?=?'; EXECUTE s USING @a, @b; incorrectly returned 0. (Bug #9379 (http://bugs.mysql.com/9379))
* Labels in stored routines did not work if the character set was not latin1. (Bug #7088 (http://bugs.mysql.com/7088))
* Invoking the DES_ENCRYPT() function could cause a server crash if the server was started without the --des-key-file option. (Bug #11643 (http://bugs.mysql.com/11643))
* The server crashed upon execution of a statement that used a stored function indirectly (via a view) if the function was not yet in the connection-specific stored routine cache and the statement would update a Handler_xxx status variable. This fix allows the use of stored routines under LOCK TABLES without explicitly locking the mysql.lock table. However, you cannot use mysql.proc in statements that will combine locking of it with modifications for other tables. (Bug #11554 (http://bugs.mysql.com/11554))
* The server crashed when dropping a trigger that invoked a stored procedure, if the procedure was not yet in the connection-specific stored routine cache. (Bug #11889 (http://bugs.mysql.com/11889))
* Selecting the result of an aggregate function for an ENUM or SET column within a subquery could result in a server crash. (Bug #11821 (http://bugs.mysql.com/11821))
* Incorrect column values could be retrieved from views defined using statements of the form SELECT * FROM tbl_name. (Bug #11771 (http://bugs.mysql.com/11771))
* The mysql.proc table was not being created properly with the proper utf8 character set and collation, causing server crashes for stored procedure operations if the server was using a multi-byte character set. To take advantage of the bug fix, mysql_fix_privileges_tables should be run to correct the structure of the mysql.proc table. (Bug #11365 (http://bugs.mysql.com/11365))
* Execution of a prepared statement that invoked a non-existent or dropped stored routine would crash the server. (Bug #11834 (http://bugs.mysql.com/11834))
* Executing a statement that invoked a trigger would cause problems unless a LOCK TABLES was first issued for any tables accessed by the trigger. Note: The exact nature of the problem depended upon the MySQL 5.0 release being used: prior to 5.0.3, this resulted in a crash; from 5.0.3 to 5.0.7, MySQL would issue a warning; in 5.0.9, the server would issue an error. (Bug #8406 (http://bugs.mysql.com/8406)) The same issue caused LOCK TABLES to fail following UNLOCK TABLES if triggers were involved. (Bug #9581 (http://bugs.mysql.com/9581))
* In a shared Windows environment, MySQL could not find its configuration file unless the file was in the C:\ directory. (Bug #5354 (http://bugs.mysql.com/5354))