MySQL 5.0.17 がリリースされました。 5.0系としては約1ヶ月ぶりのリリースです。
バージョン 5.0で新たに加えられた、ビューやトリガ、情報スキーマなどに関する修正が目立ちます。
その他目につくものとしては、「mysqldump で バイナリ列の値がゼロバイトの時、0x のみが出力されていた」問題が、ようやく修正されました。
ダウンロードはこちら。
http://dev.mysql.com/downloads/
以下チェンジログ(5.0.17):
-----------------------------------------------
■機能の追加と変更:
- 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.
- Added a DEFINER column to the INFORMATION_SCHEMA.TRIGGERS table.
- Invoking a stored function or trigger creates a new savepoint level. When the function or trigger finishes, the previous savepoint level is restored. (See Bug #13825 (http://bugs.mysql.com/13825) for more information.)
- Recursion is allowed in stored procedures. Recursive stored functions and triggers still are disallowed. (Bug#10100 (http://bugs.mysql.com/10100))
- In the latin5_turkish_ci collation, the order of the characters A WITH CIRCUMFLEX, I WITH CIRCUMFLEX, and U WITH CIRCUMFLEX was changed. If you have used these characters in any indexed columns, you should rebuild those indexes. (Bug#13421 (http://bugs.mysql.com/13421))
■バグ修正:
- NDB Cluster: Using ORDER BY primary_key_column when selecting from a table having the primary key on a VARCHAR column caused a forced shutdown 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 a cluster management server, the connection would fail before a node ID could be allocated. (Bug #15215 (http://bugs.mysql.com/15215))
- NDB Cluster: There was a small window for a node failure to occur during 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 as inserting a float value into an integer column versus using CAST(... AS UNSIGNED before inserting the value) could produce different results. Implicit and explicit typecasts now are done the same way, with a value equal to the nearest integer according to the 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-bit systems. (Bug #14155 (http://bugs.mysql.com/14155))
- NDB Cluster: A forced cluster shutdown occurred when the management daemon was restarted with a changed config.ini file that added an API/SQL node. (Bug #15512 (http://bugs.mysql.com/15512))
- Multiple-table update operations were counting updates and not updated rows. As a result, if a row had several updates it was counted several times for the "rows matched" value but updated only once. (Bug #15028 (http://bugs.mysql.com/15028))
- A statement that produced a warning, when fetched via mysql_stmt_fetch(), did not produce a warning count according to mysql_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 server will 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 a table 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 or VARBINARY columns. Now space truncation results in a warning, or an error in strict mode. (Bug #14299 (http://bugs.mysql.com/14299))
- The database-changing code for stored routine handling caused an error-handling problem resulting in a server crash. (Bug #15392 (http://bugs.mysql.com/15392))
- Selecting from a view processed with the temptable algorithm caused a server 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 a view 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 simultaneously. (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 for SHOW 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 storage engines. (Bug #15047 (http://bugs.mysql.com/15047))
- Declaring a stored routine variable to have a DEFAULT value that referred to a variable of the same name caused a server crash. (For example: DECLARE x INT DEFAULT x) Now the DEFAULT variable is interpreted as referring to a variable in an outer scope, if there is one. (Bug #14376 (http://bugs.mysql.com/14376))
- Perform character set conversion of constant values whenever 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 a prepared statement. (Bug #14956 (http://bugs.mysql.com/14956))
- A UNION 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 column could crash the server if there was one index covering the columns, and a 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 a multiple-column primary key, adding ORDER BY to the query could produce an incorrect result. (Bug #14920 (http://bugs.mysql.com/14920))
- SHOW CREATE TABLE for a view could fail if the client had locked the view. (Bug #14726 (http://bugs.mysql.com/14726))
- For binary string data types, mysqldump --hex-blob produced an illegal output value of 0x rather than ''. (Bug #13318 (http://bugs.mysql.com/13318))
- Some comparisons for the IN() operator were inconsistent with equivalent comparisons for the = operator. (Bug #12612 (http://bugs.mysql.com/12612))
- In a stored procedure, continuing (via a condition handler) after a failed variable initialization caused a server crash. (Bug #14643 (http://bugs.mysql.com/14643))
- Within a stored procedure, exception handling for UPDATE statements that caused a duplicate-key error caused a Packets out of order error for the following statement. (Bug #13729 (http://bugs.mysql.com/13729))
- Creating a table containing an ENUM or SET column from within a stored procedure or prepared statement caused a server crash later when executing 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 fetching from 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' in order clause 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))
- In some cases, a left outer join could yield an invalid result or cause 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 the INFORMATION_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 a warning. (Bug #13818 (http://bugs.mysql.com/13818))
- The server could misinterpret old trigger definition files created before 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))
- mysqldump --triggers did not account for the SQL mode and could dump trigger definitions with missing whitespace 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 and write invalid data into the .frm file if the CREATE TABLE and SELECT both contained a column with the same name. Also, if a default value is specified in the column definition, it is now actually used. (Bug #14480 (http://bugs.mysql.com/14480))
- A newline character in a column alias in a view definition caused an error 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 in CREATE VIEW 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))
- A LIMIT-related optimization failed to take into account that MyISAM table indexes can be disabled, causing Error 124 when it tried to use such an index. (Bug #14616 (http://bugs.mysql.com/14616))
- A server crash resulted from the following sequence of events:
1) With no default database selected, create a stored procedure with the procedure name explicitly qualified with a database name (CREATE PROCEDURE db_name.proc_name ...).
2) Create another stored procedure with no database name qualifier.
3) Execute SHOW PROCEDURE STATUS. (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))
- A server 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 in stored 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 dropped another trigger could cause a server crash. That problem was fixed by the patch for Bug #13343 (http://bugs.mysql.com/13343).)
投稿者 | スレッド |
---|