2005.11.22

MySQL

MySQL 5.0.16 GA版がリリースされました。

オリジナル版:http://dev.mysql.com/doc/refman/5.0/en/news-5-0-16.html

最も普及しているオープンソースデータベース管理システムであるのMySQL 5.0.16 GA/製品版がリリースされました。
コミュニティーエディションは、http://dev.mysql.com/downloads/とミラーサイトのダウンロード・ページから多くのプラットフォームのためのソースおよびバイナリで、現在利用可能です。

すべてのミラーサイトが現在、最新であるとは限らないことに注意してください。あるミラーサイトでこのバージョンを見つけることができない場合は、再度確認を行うか、あるいは別のダウンロード・サイトを選択してください。

これは、現行製品版に対するバグ修正リリースです。

バージョン5.0で導入された変更が不明な場合は、http://dev.mysql.com/doc/mysql/en/MySQL_5.0_Nutshell.html
にて、ハイレベルな説明をご覧ください。また、マニュアルのセクション2.10.2「バージョン4.1から5.0までのアップグレード」へ特別な注意を払ってください。

このバージョンで公開され解消された個々のバグに関するその他の詳細については、http://bugs.mysql.com/のバグデータベースを参照してください。

リリース5.0.16の変更点
===========

Functionality added or changed:

* The InnoDB, NDB, BDB, and ARCHIVE storage engines now support spatial columns. See Chapter 16, "Spatial Extensions in MySQL."
* 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 (http://bugs.mysql.com/12267))
* Added a --hexdump option to mysqlbinlog that displays a hex dump of the log in comments. This output can be helpful for replication debugging.
* 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.
  Note: If you move data containing these additional characters to an older MySQL installation which does not support them, you may encounter errors.
  (Bug #12476 (http://bugs.mysql.com/12476))

Packaging changes:

* The Solaris packages ("pkgadd" format) has changed. In earlier releases, running "pkgadd" simply unpacked the distribution into "/usr/local/mysql-<product>-<version>/", i.e. nothing more than unpacking a TAR package would do. The new packages
   - install into "/opt/mysql/mysql/" (vendor/product)
   - register the package with the name "mysql"
   - add and set group/user
   - initiate/update the data directory "/var/lib/mysql", run "mysql_install_db" to initialize system tables
   - install a startup script as "/etc/init.d/mysql"
   - add a soft link from "/usr/local/mysql" to "/opt/mysql/mysql"
  (for compatibility and to enable the binaries to find character set definitions etc)
   - add soft links in "/usr/bin", "/usr/sbin", "/usr/lib" and other locations to files in "/opt/mysql/mysql/"
   - stop the server when the package is removed with "pkgrm"
  Note that the server is *not* started as part of the packageinstall, and that the directory "/var/lib/mysql" is not altered during package removal using "pkgrm".
* Please see the "additional notes" in the 5.0.15 announcement mail, if you did not already do so earlier. The mail is archived here:http://lists.mysql.com/mysql/190752

Bugs fixed:

* ORDER BY DESC within the GROUP_CONCAT() function was not honored when used in a view.
  (Bug #14466 (http://bugs.mysql.com/14466))
* A comparison with an invalid date (such as WHERE col_name > '2005-09-31') caused any index on col_name not to be used and a string comparison for each row, resulting in slow performance.
  (Bug #14093 (http://bugs.mysql.com/14093))
* 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 (http://bugs.mysql.com/13941))
* Inserts of too-large DECIMAL values were handled inconsistently
  (sometimes set to the maximum DECIMAL value, sometimes set to 0).
  (Bug #13573 (http://bugs.mysql.com/13573))
* 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 (http://bugs.mysql.com/14540))
* A prepared statement that selected from a view processed using the merge algorithm could crash on the second execution.
  (Bug #14026 (http://bugs.mysql.com/14026))
* Deletes from a CSV table could cause table corruption.
  (Bug #14672 (http://bugs.mysql.com/14672))
* An update of a CSV table could cause a server crash.
  (Bug #13894(http://bugs.mysql.com/13894))
* 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 (http://bugs.mysql.com/13126))
* Starting mysqld with the --skip-innodb and --default-storage-engine=innodb (or --default-table-type=innodb
  caused a server crash.
  (Bug #9815 (http://bugs.mysql.com/9815), re-fix of bug from 5.0.5)
* mysqlmanager did not start up correctly on Windows 2003.
  (Bug #14537 (http://bugs.mysql.com/14537))
* The parser did not correctly recognize wildcards in the host part of the DEFINER user in CREATE VIEW statements.
  (Bug #14256 (http://bugs.mysql.com/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 (http://bugs.mysql.com/14210))
* mysqld_safe did not correctly start the -max version of the server (if it was present) if the --ledir option was given.
  (Bug #13774 (http://bugs.mysql.com/13774))
* 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 (http://bugs.mysql.com/14358))
* 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 (http://bugs.mysql.com/14139))
* Some updatable views could not be updated.
  (Bug #14027 (http://bugs.mysql.com/14027))
* 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 (http://bugs.mysql.com/11704))
* Indexes for BDB tables were being limited incorrectly to 255 bytes.
  (Bug #14381 (http://bugs.mysql.com/14381))
* Use of col_name = VALUES(col_name) in the ON DUPLICATE KEY UPDATE clause of an INSERT statement failed with an Column 'col_name' in field list is ambiguous error.
  (Bug #13392 (http://bugs.mysql.com/13392))
* 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 (http://bugs.mysql.com/4375))
* mysqldump could not dump views if the -x option was given.
  (Bug #12838 (http://bugs.mysql.com/12838))
* 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 (http://bugs.mysql.com/12123))
* Use of the deprecated --sql-bin-update-same option caused a server crash.
  (Bug #12974 (http://bugs.mysql.com/12974))
* Maximum values were handled incorrectly for command-line options of type GET_LL.
  (Bug #12925 (http://bugs.mysql.com/12925))
* 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 (http://bugs.mysql.com/9505))
* Use of WITH ROLLUP PROCEDURE ANALYSE() could hang the server.
  (Bug #14138 (http://bugs.mysql.com/14138))
* 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 (http://bugs.mysql.com/14009))
* The example configuration files supplied with MySQL distributions listed the thread_cache_size variable as thread_cache.
  (Bug #13811 (http://bugs.mysql.com/13811))
* 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 (http://bugs.mysql.com/12166))
* The input polling loop for Instance Manager did not sleep properly. Instance Manager used up too much CPU as a result.
  (Bug #14388 (http://bugs.mysql.com/14388))
* 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 (http://bugs.mysql.com/13820))
* LOAD DATA INFILE would not accept the same character for both the ESCAPED BY and the ENCLOSED BY clauses.
  (Bug #11203 (http://bugs.mysql.com/11203))
* The value of Last_query_cost was not updated for queries served from the query cache.
  (Bug #10303 (http://bugs.mysql.com/10303))
* 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 (http://bugs.mysql.com/13534))
* The server incorrectly accepted column definitions of the form DECIMAL(0,D) for D less than 11.
  (Bug #13667 (http://bugs.mysql.com/13667))
* 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 (http://bugs.mysql.com/14290))
* A bugfix 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 (http://bugs.mysql.com/14207))
* On Windows, the value of character_sets_dir in SHOW VARIABLES output was displayed inconsistenly (using both `/' and `\' as pathname component separators).
  (Bug #14137 (http://bugs.mysql.com/14137))
* Subqueries in the FROM clause failed if the current database was INFORMATION_SCHEMA.
  (Bug #14089 (http://bugs.mysql.com/14089))
* Corrected a parser precedence problem that resulted in an Unknown column ... in 'on clause' error for some joins.
  (Bug #13832 (http://bugs.mysql.com/13832))
* 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 (http://bugs.mysql.com/12595))
* SELECT DISTINCT CHAR(col_name) returned incorrect results after SET NAMES utf8.
  (Bug #13233 (http://bugs.mysql.com/13233))
* 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 (http://bugs.mysql.com/12371))
* Inserting a new row into an InnoDB table could cause DATETIME values already stored in the table to change.
  (Bug #13900 (http://bugs.mysql.com/13900))
* 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 (http://bugs.mysql.com/13334))
* 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 (http://bugs.mysql.com/13064))
* 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 (http://bugs.mysql.com/12547))
* Two threads that were creating triggers on an InnoDB table at the same time could deadlock.
  (Bug #12739 (http://bugs.mysql.com/12739))
* mysqladmin and mysqldump would hang on SCO OpenServer.
  (Bug #13238 (http://bugs.mysql.com/13238))
* RESET MASTER failed to delete log files on Windows.
  (Bug #13377 (http://bugs.mysql.com/13377))
* 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 (http://bugs.mysql.com/7049))
* Trying to create a stored routine with no database selected would crash the server.
  (Bug #13514 (http://bugs.mysql.com/13514),Bug#13587 (http://bugs.mysql.com/13587))
* 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 (http://bugs.mysql.com/13487))
* Trying to compile the server using the --without-geometry option caused the build to fail.
  (Bug #12991 (http://bugs.mysql.com/12991))