MySQL 5.0.17がリリースされました。


最も普及しているオープンソースデータベース管理システムであるMySQL 5.0.17がリリースされました。コミュニティエディションは、http://dev.mysql.com/downloads/とミラーサイトのダウンロード・ページから、ソースコード及び多くのプラットフォーム





Functionality added or changed:

* The syntax for CREATE TRIGGER now includes a DEFINER clause for specifying which access privileges to check at trigger invocation time. See Section 18.1, "CREATE TRIGGER Syntax" for more information.
* Invoking a stored function or trigger creates a news avepoint level. When the function or trigger finishes, the previous savepoint level is restored.
  (See Bug #13825 (http://bugs.mysql.com/13825) formore information.)
* Recursion is allowed in stored procedures. Recursive stored functions and triggers still aredisallowed.
  (Bug#10100 (http://bugs.mysql.com/10100))
* Inthe latin5_turkish_ci collation, the order of the characters A WITH CIRCUMFLEX, I WITH CIRCUMFLEX, and U WITH CIRCUMFLEX was changed. Ifyou have used these characters in any indexed columns, you shouldrebuild those indexes.
  (Bug#13421 (http://bugs.mysql.com/13421))

Bugs fixed:

* NDB Cluster: Using ORDER BY primary_key_column when selecting from a table having the primary key on a VARCHAR column caused a forcedshutdown of the cluster.
  (Bug #14828 (http://bugs.mysql.com/14828),
  Bug #15240 (http://bugs.mysql.com/15240),
  Bug #15682 (http://bugs.mysql.com/15682),
  Bug #15517 (http://bugs.mysql.com/15517))
* NDB Cluster: Under certain circumstances, when mysqld connects to acluster management server, the connection would fail before a nodeIDcould be allocated.
  (Bug #15215 (http://bugs.mysql.com/15215))
* NDB Cluster: There was a small window for a node failure to occurduring a backup without an error being reported.
  (Bug #15425 (http://bugs.mysql.com/15425))
* mysql --help was missing a newline after the version string when the bundled readline library was not used.
  (Bug #15097 (http://bugs.mysql.com/15097))
* Implicit versus explicit conversion of float to integer (such asinserting a float value into an integer column versus using CAST(... AS UNSIGNED before inserting the value) could producedifferent results. Implicit and explicit type casts now are done thesame way, with a value equal to the nearest integer according tothe prevailing rounding mode.
  (Bug #12956 (http://bugs.mysql.com/12956))
* GROUP BY on a view column did not correctly account for the possibility that the column could contain NULL values.
  (Bug #14850 (http://bugs.mysql.com/14850))
* 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 (http://bugs.mysql.com/14902))
* The maximum value of MAX_ROWS was handled incorrectly on 64-bitsystems.
  (Bug #14155 (http://bugs.mysql.com/14155))
* NDB Cluster: A forced cluster shutdown occurred when the management daemon was restarted with a changed config. inifile that added anAPI/SQL node.
  (Bug #15512 (http://bugs.mysql.com/15512))
* Multiple-table update operations were counting updates and not updatedrows. As a result, if a row had several updates it was counted sever altimes for the "rows matched" value but updated onlyonce.
  (Bug #15028(http://bugs.mysql.com/15028))
* A statement that produced a warning, when fetched viamysql_stmt_fetch(), did not produce a warning count according tomysql_warning_count().
  (Bug #15510 (http://bugs.mysql.com/15510))
* Manual manipulation of the mysql.proc table could cause a server crash.This should not happen, but it is also not supported that the serve rwill notice such changes.
  (Bug #14233 (http://bugs.mysql.com/14233))
* Revised table locking to allow proper assessment of view security.
  (Bug#11555 (http://bugs.mysql.com/11555))
* Within a stored procedure, inserting with INSERT ... SELECT into atable with an AUTO_INCREMENT column did not generate the correct sequence number. (Bug #14304 (http://bugs.mysql.com/14304))
* SELECT queries that began with an opening parenthesis were not being placed in the query cache.
  (Bug #14652 (http://bugs.mysql.com/14652))
* Space truncation was being ignored when inserting into BINARY orVARBINARY columns. Now space truncation results in a warning, or anerror in strict mode. (Bug #14299 (http://bugs.mysql.com/14299))
* The database-changing code for stored routine handling caused anerror-handling problem resulting in a server crash.
  (Bug #15392 (http://bugs.mysql.com/15392))
* Selecting from a view processed with the temptable algorithm causedaserver crash if the query cache was enabled.
  (Bug #15119 (http://bugs.mysql.com/15119))
* REPAIR TABLES, BACKUP TABLES, RESTORE TABLES within a stored procedure caused a server crash.
  (Bug #13012 (http://bugs.mysql.com/13012))
* Creating a view that referenced a stored function that selected from aview caused a crash upon selection from the view.
  (Bug #15096 (http://bugs.mysql.com/15096))
* ALTER TABLE ... SET DEFAULT had no effect.
  (Bug #14693 (http://bugs.mysql.com/14693))
* Creating a view within a stored procedure could result in an out of memory error or a server crash.
  (Bug #14885 (http://bugs.mysql.com/14885))
* InnoDB: A race condition allowed two threads to drop a hash index simult aneously.
  (Bug #14747 (http://bugs.mysql.com/14747))
* mysqlhotcopy tried to copy INFORMATION_SCHEMA tables.
  (Bug #14610 (http://bugs.mysql.com/14610))
* CHAR(... USING ...) and CONVERT(CHAR(...) USING ...), though logically equivalent, could produce different results.
  (Bug #14146 (http://bugs.mysql.com/14146))
* The value of INFORMATION_SCHEMA.TABLES.TABLE_TYPE sometimes was reported as empty.
  (Bug #14476 (http://bugs.mysql.com/14476))
* InnoDB: Activitity on an InnoDB table caused execution time forSHOW CREATE TABLE for the table to increase.
  (Bug #13762 (http://bugs.mysql.com/13762))
* DELETE from CSV tables reported an incorrect rows-affected value.
  (Bug #13406 (http://bugs.mysql.com/13406))
* The server crashed if compiled without any transactional storageengines.
  (Bug #15047 (http://bugs.mysql.com/15047))
* Declaring a stored routine variable to have a DEFAULT value thatreferred to a variable of the same name caused a server crash. (Forexample: DECLARE x INT DEFAULT x) Now the DEFAULT variable is interpreted as referring to a variable in an outer scope, if thereisone.
  (Bug #14376 (http://bugs.mysql.com/14376))
* Perform character set conversion of constant values when ever possible without data loss.
  (Bug #10446 (http://bugs.mysql.com/10446))
* mysql ignored the MYSQL_TCP_PORT environment variable.
  (Bug #5792 (http://bugs.mysql.com/5792))
* ROW_COUNT() returned an incorrect result after EXECUTE of aprepared statement.
  (Bug #14956 (http://bugs.mysql.com/14956))
* AUNION of DECIMAL columns could produce incorrect results.
  (Bug #14216(http://bugs.mysql.com/14216))
* Queries that select records based on comparisons to a set of columncould crash the server if there was one index covering the columns,anda set of other non-covering indexes that taken together cover the columns.
  (Bug #15204 (http://bugs.mysql.com/15204))
* When using an aggregate function to select from a table that has amultiple-column primary key, adding ORDER BY to the query couldproduce an incorrect result.
  (Bug #14920 (http://bugs.mysql.com/14920))
* SHOW CREATE TABLE for a view could fail if the client had lockedtheview.
* (Bug #14726 (http://bugs.mysql.com/14726))
* For binary string data types, mysqldump --hex-blob produced anillegaloutput value of 0x rather than ''.
  (Bug #13318 (http://bugs.mysql.com/13318))
* Some comparisons for the IN() operator were inconsistent withequivalent comparisons for the = operator.
  (Bug #12612 (http://bugs.mysql.com/12612))
* Ina stored procedure, continuing (via a condition handler) after afailedvariable initialization caused a server crash.
  (Bug #14643 (http://bugs.mysql.com/14643))
* Within a stored procedure, exception handling for UPDATE statementsthat caused a duplicate-key error caused a Packets out of ordererrorfor the following statement.
  (Bug #13729 (http://bugs.mysql.com/13729))
* Creating a table containing an ENUM or SET column from within astored procedure or prepared statement caused a server crash laterwhenexecuting the procedure or statement.
  (Bug #14410 (http://bugs.mysql.com/14410))
* Selecting from a view used filesort retrieval when faster retrieval was possible.
  (Bug #14816 (http://bugs.mysql.com/14816))
* Warnings from a previous command were not being reset when fetchingfrom a cursor.
  (Bug #13524 (http://bugs.mysql.com/13524))
* RESET MASTER failed to delete log files on Windows.
  (Bug #13377 (http://bugs.mysql.com/13377))
* Using ORDER BY on a column from a view, when also selecting the column normally, and via an alias, caused a mistaken Column 'x' inorderclause is ambiguous error.
  (Bug #14662 (http://bugs.mysql.com/14662))
* Invoking a stored procedure within another stored procedure caused the server to crash.
  (Bug #13549 (http://bugs.mysql.com/13549))
* Stored functions making use of cursors were not replicated.
  (Bug #14077(http://bugs.mysql.com/14077))
* CAST(expr AS BINARY(N)) did not pad with 0x00 to a length of N bytes.
  (Bug #14255 (http://bugs.mysql.com/14255))
* Casting a FLOAT or DOUBLE whose value was less than 1.0E-06 to DECIMAL would yield an inappropriate value.
  (Bug #14268 (http://bugs.mysql.com/14268))
* Insome cases, a left outer join could yield an invalid result o rcause the server to crash, due to a MYSQL_DATA_TRUNCATED error.
  (Bug #13488(http://bugs.mysql.com/13488))
* For a invalid view definition, selecting from theINFORMATION_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 awarning.
  (Bug #13818 (http://bugs.mysql.com/13818))
* The server could misinterpret old trigger definition files createdbefore 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 recreated.
  (Bug #14090 (http://bugs.mysql.com/14090))
* mysql dump --triggers did not account for the SQL mode and could dump trigger definitions with missing whit espace if the IGNORE_SPACE mode was enabled.
  (Bug #14554 (http://bugs.mysql.com/14554))
* 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 (http://bugs.mysql.com/5861))
* CREATE TABLE tbl_name (...) SELECT ... could crash the server andwriteinvalid data into the .frm file if the CREATE TABLE andSELECT bothcontained a column with the same name. Also, if adefault value isspecified in the column definition, it is now actually used.
  (Bug#14480 (http://bugs.mysql.com/14480))
* Anewline character in a column alias in a view definition cause danerror when selecting from the view later.
  (Bug #13622 (http://bugs.mysql.com/13622))
* mysql_fix_privilege_tables. sql contained an erroneous comment that resulted in an error when the file contents were processed.
  (Bug #14469(http://bugs.mysql.com/14469))
* On Windows, the server could crash during shutdown if both replication threads and normal client connection threads were active.
* (Re-fix of Bug #11796 (http://bugs.mysql.com/11796))
* The grammar for supporting the DEFINER = CURRENT_USER clause inCREATEVIEW and ALTER VIEW was incorrect.
  (Bug #14719 (http://bugs.mysql.com/14719))
* Queries on ARCHIVE tables that used the filesort sorting method could result in a server crash.
  (Bug #14433 (http://bugs.mysql.com/14433))
* The mysql_stmt_fetch() C APP function could return MYSQL_NO_DATA for a SELECT COUNT(*) FROM tbl_name WHERE 1 = 0 statement, which should return 1 row.
  (Bug #14845 (http://bugs.mysql.com/14845))
* ALIMIT-related optimization failed to take into account that MyISAM table indexes can be disabled, causing Error 124 when ittried to usesuch an index.
  (Bug #14616 (http://bugs.mysql.com/14616))
* Aserver crash resulted from the following sequence of events:
  1) With nodefault database selected, create a stored procedure with the procedure name explicitly qualified with a database name (CREATEPROCEDURE db_name.proc_name ...).
  2) Create another stored procedure with no database name qualifier.
  (Bug #14569 (http://bugs.mysql.com/14569))
* Complex subqueries could cause improper internal query execution environment initialization and crash the server.
  (Bug #14342 (http://bugs.mysql.com/14342))
* For a table that had been opened with HANDLER OPEN, issuing OPTIMIZE TABLE, ALTER TABLE, or REPAIR TABLE caused a server crash.
  (Bug #14397(http://bugs.mysql.com/14397))
* 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 recreated prior to statement execution.
  (Bug #12329 (http://bugs.mysql.com/12329))
* Aserver 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 (http://bugs.mysql.com/13399))
* Statements that implicitly commit a transaction are prohibited instored functions and triggers. An attempt to create a function or trigger containing such a statement produces an error.
  (Bug #13627 (http://bugs.mysql.com/13627))
  (The originally reported symptom was that a trigger that droppedanother trigger could cause a server crash. That problem was fixed by the patch for Bug #13343 (http://bugs.mysql.com/13343).)