|
D.1.2.MySQL5.1.67 での変更点( 2012-12-21 )
修正されたバグ
・ パフォーマンス : InnoDB : SSD などの高速ストレージデバイスによるパフォーマンスの向上に合わせ、下位レベルの InnoDB 読み取り操作のタイミング値が調整された。この改善は、主に、 圧縮 テーブルの BLOB カラムの読み取り操作に影響を与える(Bug#13702112、Bug#64258)。
・ InnoDB : InnoDB テーブルに対するオンラインのDDL操作で、インデックスプリフィックスを使用したユニークインデックスに対して重複キーエラーをレポートするときに、正しいキー値ではなく、空の値( '' )を誤ってレポートしていた(Bug#14729221)。
・ InnoDB :ディスクフルエラーにより CREATE TABLE ステートメントがエラーになった場合、操作中に割り当てられた一部のメモリが適切に解放されなかった(Bug#14708715)。
・ InnoDB : 変更バッファ エントリがバッファプールページにマージされている間にサーバがクラッシュした場合、トランザクションログと変更バッファが一貫性のない状態で放置されていた。再起動後に、対応するセカンダリインデックスページを読み込むと、MySQLがクラッシュする可能性がある。この問題は、他の操作に対応するために本来の 挿入バッファリング メカニズムが一般化されたMySQL5.5またはそれ以降で発生する可能性が高かった(Bug#14636528、Bug#66819、Bug#58571、Bug#61104、Bug#65443)。
・ InnoDB :まれな状況において、BLOBカラムを変更した操作の ROLLBACK 時に、MySQLが正しくない順序で InnoDB undo レコードを適用する可能性があった。この問題はデバッグビルドで表明エラーを起こす可能性があった。
!bpage->file_page_was_freed
(Bug#13249921)
・ レプリケーション : --replicate-ignore-table を使用した状態で、スレーブで値が設定されていないユーザ変数を書き込む更新を行うと、スレーブでエラーが発生する可能性があった(Bug#14597605)。
参考:このバグは、Bug#14275000で取り上げられた。
・ レプリケーション :バックティック( ` )文字が、内部で生成されたSQLステートメントで必ずしも正しく処理されず、場合によってはスレーブでエラーを招く可能性があった(Bug#14548159)。
・ レプリケーション :非トランザクショナルテーブルへの挿入がディスクの空き容量が不十分であるために失敗した結果、サーバがすべての保留中のイベントを適切にクリーンアップせず、表明エラーが発生したり、場合によってはその他のエラーが発生していた(Bug#11750014)。
・ クエリに非常に長いデータベース名があると、サーバが終了する可能性があった(Bug#15912213)。
・ ストアドプロシージャ内部で、非常に長いテーブルエイリアスを使用したマルチテーブル DELETE ステートメントを実行すると、サーバが終了する可能性があった(Bug#15954896)。
・ NULL タイプ属性で InnoDB テーブルに auto-increment カラムを作成しようとすると、重大なエラーが発生する可能性があった(Bug#14758479)。
・ InnoDB テーブルに対する DELETE ステートメントで間違ったトランザクションのメタデータがレコードに書き込まれ、エラーが発生してサーバが停止する可能性があった。この問題を回避するには、プライマリキーの長さを1Kバイト未満に指定する(Bug#14731482)。
・ MAX() を使用したサブクエリを含むクエリを繰り返し実行すると、メモリ消費の増大を招く可能性があった(Bug#14683676)。
・ dbname に複数のバックティック( ` )文字が含まれる場合、Unknowndatabaseで USE dbname がエラーになる可能性があった(Bug#14645196)。
・ SHOW PROFILE を使用すると、サーバの過剰なメモリ消費を引き起こす可能性があった(Bug#14629232)。
・ スレッドキャッシュがFIFO形式でなくLIFO形式で動作するように実装されているため、スレッドがサービスを拒否される可能性があった(ただし、この可能性はほとんどなかった)(Bug#14621627)。
・ CREATE USER および DROP USER が権限をフラッシュできず、 FLUSH PRIVILEGES を明示的に使用しなければならない可能性があった(Bug#13864642)。
・ 外部カラムで GROUPBY を使用したサブクエリを含むクエリの場合、メモリリークが発生する可能性があった(Bug#13724099)。
・ サーバでカウントされる所定のホストからの接続エラーの数が定期的にリセットされ、その結果 max_connect_errors に達することはなく、無効なホストからの接続がブロックされなかった(Bug#11753779)。
参考:Bug#38247、Bug#43006、Bug#45584、Bug#45606も参照。
・ 最適化時に、 ZEROFILL 値が文字列定数に変換される。しかし、 CASE 式で計画後にデータタイプの切り換えを処理できず、引数でなくnullポインタが CASE で検出されていた(Bug#57135、Bug#11764313)。
・myisamchk コマンドのエラーメッセージである“buffer too small”は、 sort_buffer_sizeの設定値を参照しなければならなかったが、 myisam_sort_buffer_size の設定値を参照している (Bug #11754894, Bug #46578)。
・ Windowsにおいて、Perlバージョンの mysql_install_db により、正しく設定されていないシステムテーブルが mysql データベースに作成されていた(Bug#65584、Bug#14181049)。
・ mysqld_safe が UMASK 環境変数の値を無視したため、作成されたファイルのアクセスモードについて、 mysqld と異なる動作になっていた。現在、 mysqld_safe (および mysqld_multi )は mysqld とほぼ同じ動作になるよう試行している(Bug#57406、Bug#11764559)。
・ expr 値が符号付きの BIGINT の最大値よりも大きい場合に LAST_INSERT_ID( expr ) が機能しなかった(Bug#20964、Bug#11745891)。