|
MySQL 5.1.40 リリースノート (日本語翻訳)
InnoDBPluginに関する注意事項:
・今回のリリースでは、
InnoDBPlugin
は、RHEL3、RHEL4、SuSE9(x86、x86_64、ia64)、およびLinuxRPM汎用パッケージを除き、ソースおよびライブラリディストリビューションに含まれている。また、FreeBSD6とHP-UX、およびS/390、PowerPC、ia64全般のLinuxでは動作しない。
修正されたバグ:
・
矛盾を含む可能性がある変更
:MySQLのバイナリインストールの場合、支給されている
binary-configure
スクリプトを実行すると、コマンドラインオプション
--help
を指定したコマンドでヘルプを要求した場合でも、
MySQL
の起動および構成が実行された。
現在では、
--help
を指定しても、サーバの起動およびインストールは実行されない
(
Bug#30954
)
。
・ パーティショニング :パーティションの再編成時、影響を受けるすべてのサブパーティションが名前変更の前に削除されるわけではなかった。2つのパーティションを再編成により、元のパーティションの1つと同じ名前を持つ単一のパーティションにしようとすることでもこの問題を確認できる。この場合、サーバがクラッシュする可能性があった( Bug#47029 )。
・
パーティショニング
:パーティションドテーブルに対してオンラインまたは高速の
ALTERTABLE
を実行すると、テンポラリファイルがデータベースディレクトリに残される可能性があった(
Bug#46483
)。
・
パーティショニング
:パーティションドテーブルに対して
INSERT...SELECT
を実行すると、メモリの
read_buffer_size
バイトがターゲットテーブル内の各パーティションに割り当てられ、テーブルにパーティションが多数(100以上)存在する場合は、大量のメモリが消費された。
本修正により、各パーティションに必要なバッファサイズの見積もりに使用される方法が変更され、総バッファサイズが
read_buffer_size
の約10倍を最大値とするよう制限された(
Bug#45840
)。
・
パーティショニング
:パーティションドテーブルの
AUTO_INCREMENT
カラムに負の値を挿入すると、明らかに無関係なエラーになるか、サーバがクラッシュする可能性があった(
Bug#45823
)。
・ パーティショニング :挿入が不要なパーティションに対して一括挿入を実行する場合、サーバコード内で不必要な呼び出しが実行された( Bug#35845 )。
Bug#35843 も参照。
・
レプリケーション
:スレーブテーブルに対して
ALTERTABLE...DISABLEKEYS
を実行すると、行ベースのレプリケーションが失敗した(
Bug#47312
)。
・
レプリケーション
:
BEGIN
ステートメントが、
mysqlbinlog
の出力に含まれていなかった(
Bug#46998
)。
・
レプリケーション
:行ベースのレプリケーションの使用時、該当するステートメント内で指定されているテーブルが存在しない場合は、バイナリログに
DROPTEMPORARYTABLEIFEXISTS
が書き込まれた。
DROPTEMPORARYTABLE
ステートメントは、実際には、該当するテーブルが存在するか否かとは無関係に、行ベースロギングモードではログに記録されないはずである(
Bug#46572
)。
・
レプリケーション
:行ベースのレプリケーションの使用時、
mysqldump
で出力されたダンプのインポート時、および
AUTO_INCREMENT
カラムが0に設定された行の複製時、マスタ上で
NO_AUTO_VALUE_ON_ZERO
がアクティブであると、その行はマスタ上で正常に挿入された。ただし、スレーブ上では
NO_AUTO_VALUE_ON_ZERO
の設定が無視された。
AUTO_INCREMENT
カラムの増分時は、重複キーエラーにより、スレーブ上でレプリケーションが失敗した。場合によっては、サーバがクラッシュする可能性もあった(
Bug#45999
)。
・
レプリケーション
:カレントのトランザクションで
AUTO_INCREMENT
カラムを持つテーブルに行を挿入すると、ステートメントベースまたは混合形式のレプリケーションエラー1062「Duplicateentry'...'forkey'PRIMARY'」がスレーブ上で発生する可能性があった。これは特に、
AUTO_INCREMENT
カラムを持つテーブルに行を挿入したトランザクションの1つがトリガをアクティブ化したものの、別の条件によってこの問題も発生する可能性がある場合に起こる確率が高かった(
Bug#45677
)。
・ レプリケーション :デフォルト時、マスタ上の mysql_upgrade プログラムによって実行されたすべてのステートメントは、バイナリログに書き込まれた後、スレーブに複製される。しかし、複製されたデータベース上のログテーブルを変更しようとした場合(ロギングが有効であったために失敗)など、これが問題になる場合もある。
本修正の一部として、
mysql_upgrade
の新しいオプション
--write-binlog
が追加されている。
その逆の
--skip-write-binlog
オプションを使用すると、アップグレードの実行中に、バイナリロギングを無効にすることができる
(
Bug#43579
)
。
・
レプリケーション
:マスタ上では、バイナリログイベントが
max_allowed_packet
よりも大きい場合、スレーブがマスタにダンプを要求すると、エラーメッセージER_MASTER_FATAL_ERROR_READING_BINLOGがスレーブに送信され、I/Oスレッドが停止する。スレーブでは、
max_allowed_packet
よりも大きなパケットを受信すると、I/Oスレッドが停止する。
ただし、いずれの場合でも、
Last_IO_Error
は報告されなかった。そのため、このような場合にスレーブが停止した原因の特定が困難であった。現在では、
max_allowed_packet
を超過すると
Last_IO_Error
が報告され、スレーブのI/Oスレッドが停止した理由が通知される(
Bug#42914
)。
Bug#14068 、 Bug#47200 、 Bug#47303 も参照。
・ API : Bug#24507 の修正により、競合が原因でクライアントアプリケーションが失敗する可能性があった。現在では、サーバが「ダミー」スレッドのリターンを待ってから終了するので、POSIXスレッドライブラリは1つのスレッドしか初期化できないようになっている( Bug#42850 )。
・Windowsに実装される
pthread_cond_wait()
は、まれに、デッドロックする可能性があった
(
Bug#47768
)
。
・MacOSXまたはWindowsの場合、サーバまたは非同期FLUSH(
flush_time
によってトリガされる)に
SIGHUP
シグナルを送信すると、サーバがクラッシュした(
Bug#47525
)。
・デバッグビルドの場合、SunStudioコンパイラでコンパイルすることができなかった( Bug#47474 )。
・自然結合およびマージ可能ビューが含まれる複数テーブルの
UPDATE
で、表明が発生した(
Bug#47150
)。
・Solarisライブラリパッケージは現在、
-g
ではなく
-g0
でコンパイルする
(
Bug#47137
)
。
・特定の有効なクエリに対し、
EXPLAIN
でサーバがクラッシュした(
Bug#47106
)。
・ configure オプション --without-server が機能しなかった( Bug#46980 )。
・複数テーブルの
DELETE
ステートメントの失敗により、表明が発生する可能性があった(
Bug#46958
)。
・Windows上で
mysqld-nt
および
--install
パラメータを使用して新しいインスタンスを作成する際、サービスの値が正しく設定されず、構成済みサービスを起動できなかった(
Bug#46917
)。
・相関関係のあるサブクエリ内で外部カラム参照を再使用する際、エンクロージング型クエリでテンポラリテーブルを使用すると、サーバがクラッシュした( Bug#46791 )。
・
InnoDB
テーブルの場合、メタデータのみの変更に対して、
ALTERTABLE
の不必要なテーブルの再ビルドがときどき発生する可能性があった(
Bug#46760
)。
・サブセレクトを使用した正しくないクエリが含まれるストアドプロシージャを反復実行すると、表明違反が発生する可能性があった( Bug#46629 )。
・
CREATETABLE...LIKE
の
sync_frm
の設定をサーバが無視した(
Bug#46591
)。
・既存のビューと同じ名前のテーブルを作成しようとすると、サーバがクラッシュした( Bug#46384 )。
・パーサの問題が原因で、UDF(User-DefinedFunction:ユーザ定義関数)の引数からバッククォートが正しく削除されなかった。UDFが
ORDERBY
句にあった場合、その名前はSELECTリスト内の同名のエイリアスに照らして正しく解決されなかった(
Bug#46259
)。
・不明な照合(別のサーバに基づいて作成されたものなど)を使用しているInnoDBテーブルを削除すると、サーバがクラッシュした( Bug#46256 )。
・
DISTINCT
、
GROUPBY
、および
HAVING
句が含まれる特定の
SELECT
ステートメントが、無限ループでハングする可能性があった(
Bug#46159
)。
・
InnoDB
が、
GEN_CLUST_INDEX
という名前を持つインデックス(内部で使用されている)の作成を禁止しなかった
(
Bug#46000
)
。
・
lower_case_table_names
=2
で、テンポラリファイルのディレクトリのパス名に大文字が含まれている場合、ファイルシステムで大文字
/
小文字が区別されるシステムでは、
InnoDB
テーブルに対して
CREATETEMPORARYTABLE
が失敗した(
Bug#45638
)。
・
ENUM
または
SET
の定義に値を追加することはメタデータの変更であり、
ALTERTABLE
ではテーブルの再ビルドが不要であるが、再ビルドが実行された(
Bug#45567
)。
・Windows上で、システム変数
socket
が利用できなかった(
Bug#45498
)。
・Windows上で、以前インストールされたMySQLのデータディレクトリが存在するサーバにMySQLを再インストールする際、インストーラは該当するインストールの存在とrootユーザ用のパスワードを認識できなかった( Bug#45200 )。
・埋め込みサーバの場合、クライアントフラグの初期化が正しく実行されないため、
jp
テストスイート内のテストがいくつか失敗した
(
Bug#45159
)
。
・
DB_ROW_ID
、
DB_TRX_ID
、
DB_ROLL_PTR
、
DB_MIX_ID
のような内部カラムの名前に一致する名前を持つカラムが含まれるテーブルの作成を、InnoDBが禁止しない場合があった(
Bug#44369
)。
・NULLのない同じクエリで効率のよいレンジスキャンを使用した場合でも、フルテーブルスキャンを使用した
SELECT...WHERE...IN(NULL,...)
が実行された(
Bug#44139
)。
Bug#18360 も参照。
・
MySQL
のデータディクショナリの同期が崩れているときに、
InnoDB
で
SELECTMAX(
autoinc_column
)
を使用すると、クラッシュする可能性があった(
Bug#44030
)。
・
LOADDATAINFILE
ステートメントがバイナリログに書き込まれ、バイナリログ内のそのステートメントを再実行すると、解析に関する問題が発生する可能性があった(
Bug#43746
)。
・埋め込みサーバ内のプロセスリストから選択すると、クラッシュした( Bug#43733 )。
Bug#47304 も参照。
・4GBより大きな共有メモリセグメントを持つ
large_pages
を有効にしようとすると、サーバがクラッシュした(
Bug#43606
)。
・一部のプラットフォームでスタック成長テストに失敗し、これがサーバクラッシュの原因となっていた( Bug#42213 )。
・
UPDATE
ステートメントのサブクエリで使用されるテーブルに対して、MySQLサーバが間違ったロックタイプを使用した(適切な場合は
TL_READ_NO_INSERT
の代わりに常に
TL_READ
を使用した)。その結果、ステートメントが間違った順序でバイナリログに書き込まれるので、レプリケーション障害になる場合があった
(
Bug#42108
)
。
・Windows上のnoinstallパッケージから、 mysql-stress-test.pl テストスクリプトが消失していた( Bug#41546 )。
・
SHOWCREATEVIEW
の権限が正しくチェックされていなかった(
Bug#35996
)。
・空間データタイプのカラムが含まれるテーブルに対して
CHECKSUMTABLE
を実行すると、実行のたびに返される結果が異なった(
Bug#35570
)。
・
FLUSHTABLES
を
SHOWFUNCTIONSTATUS
または
SHOWPROCEDURESTATUS
と同時に実行すると、サーバがクラッシュする可能性があった(
Bug#34895
)。
・ myisamchk が起動時にパラメータ値のキャストを実行し、不要な警告メッセージが生成された( Bug#33785 )。
・Windows上でソースからMySQLをビルドする際、
WITH_BERKELEY_STORAGE_ENGINE
オプションを指定すると、
BDB
のサポートを正しく構成することができなかった(
Bug#27693
)。