|
MySQL 5.1.56 リリースノート (日本語翻訳)
機能の追加または変更 :
・ mysqldump--xml は現在、カラム定義からのコメントを表示する(Bug#13618、Bug#11745324)。
修正されたバグ :
・ InnoDB ストレージエンジン : InnoDB は、クエリ計画の"rowsexamined"に対して、予期されるものより大きい値を返した。 NULL 値の処理方法が一貫していなかった。不正確な統計によって、 MAX_JOIN_SIZE 設定と組み合わせたとき、擬陽性となる場合があった。これは、クエリで実際にはレポートされるとおりの数の行が調査されなかったためである(Bug#30423)。
・ パーティショニング : KEY でテーブルをパーティショニングするとき、パーティショニングキーで同じカラムを複数回使用しようとすると、 mysqld がクラッシュしていた。このようなキーカラムの重複は現在、明示的に禁止され、適切なエラーで終了するようになっている(Bug#53354、Bug#57924)。
・ レプリケーション :ステートメントベースのロギングフォーマットを使用するとき、失敗しなかったトランザクショナルテーブルに影響する INSERTONDUPLICATEKEYUPDATE ステートメントおよび INSERTIGNORE ステートメントが、1行も挿入しなかった場合にバイナリログに書き込まれなかった(ステートメントベースのロギングでは、正常に実行されたステートメントは、行に変更を加えるかどうかにかかわらず、すべてログに記録される必要がある)(Bug#59338、Bug#11766266)。
・ レプリケーション :以前は、 STOPSLAVE はまずスレーブI/Oスレッドを停止してから、スレーブSQLスレッドを停止していたため、SQLスレッドで実行されているトランザクションの一部のみを複製した後でI/Oスレッドを停止することが可能であった。その場合、トランザクションを安全にロールバックできないと、SQLスレッドがハングする可能性があった。
現在、 STOPSLAVE はまずスレーブSQLスレッドを停止してからI/Oスレッドを停止するようになったので、SQLスレッドで実行されているトランザクションにイベントが残っていればI/Oスレッドがそれをフェッチすることが保証される。したがって、SQLスレッドはトランザクションを安全にロールバックできない場合でも、トランザクションを終了できるようになっている(Bug#58546、Bug#11765563)。
・ 次の形のクエリで不正な結果が返され、結果セットにおける col_name の値が完全に NULL 値に置き換えられていた。
・SELECTDISTINCT col_name ...ORDERBY col_name DESC;
(Bug#59308、Bug#11766241)
・ DELETE または UPDATE ステートメントは、 DATE または DATETIME 値で年や月を使うか、日の部分をゼロにすると失敗する可能性があった(Bug#59173)。
・ LIKE 演算子の ESCAPE 句で使用できるのは、実行時に定数に評価される式のみだが、集計関数が拒否されていなかった(Bug#59149、Bug#11766110)。
・ Valgrindによって検出されるメモリリークは、場合によって不正なクエリ結果の原因となっていたが、修正された(Bug#59110、Bug#11766075)。
・ mysqlslap が mysql_store_result() からの NULL の戻りチェックに失敗し、結果セットを処理しようとしてクラッシュしていた(Bug#59109、Bug#11766074)。
・ デバッグビルドでは、 SUBSTRING_INDEX(FORMAT(...),FORMAT(...)) が原因でサーバがクラッシュする可能性があった(Bug#58371、Bug#11765406)。
・ --sleep および --count オプションを指定して mysqladmin を実行すると、指定されたコマンドを実行して無限ループになっていた(Bug#58221、Bug#11765270)。
・ 文字列を操作する一部のSQL関数は、不変の空文字列を含む共有文字列オブジェクトを使用する。このオブジェクトをSQL関数 SUBSTRING_INDEX() で使用すると、1つの引数のデータタイプが誤っている場合に空の文字列が返される。その後この空の文字列をSQL関数 INSERT() によって変更すると、未定義の動作が続いた(Bug#58165、Bug#11765225)。
・ ネストした正規表現を解析すると再帰状態になり、スタックオーバーフローでクラッシュする可能性があった(Bug#58026、Bug#11765099)。
・ 標準入力がディレクトリの場合、 mysql クライアントが無限ループになっていた(Bug#57450、Bug#11764598)。
・ 式 const1 BETWEEN const2 AND field が不正に最適化され、不正な結果になっていた(Bug#57030、Bug#11764215)。
・ RPMインストールスクリプトの一部はデータディレクトリにハードコードされた値を使用していたため、ユーザが標準以外のデータディレクトリ位置を指定した場合にはインストールが失敗することがあった。PIDファイル名など他の構成値でもこれは同様だった(Bug#56581、Bug#11763817)。
・ FreeBSDとOpenBSDで、サーバによるシステム日付の範囲チェックが誤っていたため、正しい値が拒否されていた(Bug#55755、Bug#11763089)。
・ ExtractValue() または UpdateXML() を使用するとき、読み込まれるXMLに不完全なXMLコメントが含まれていた場合、MySQLは処理中にXML文字列の末尾を超えて読み込みを行うため、サーバがクラッシュしていた(Bug#44332、Bug#11752979)。