mysql:10236
From: "Zen Kishimoto" <"Zen Kishimoto" <zen@xxxxxxxxxx>>
Date: Mon, 27 Sep 2004 20:33:01 -0700
Subject: [mysql 10236] MySQL 4.0.21版がリリース(詳細)
MySQL 4.0.21版がリリース 2004年9月10日 http://lists.mysql.com/announce/217 MySQL 4.0.21版がリリースされました。ソース形式と バイナリー形式で以下からダウンロードできます。 http://www.mysql.com/downloads/ とミラーサイト 全てのミラーサイトが更新されているとは限りません。この版を見つけられなかった 場合は後ほどチェックしてください。または違うサイトをお試しください。 この版は現在の製品版のバグ修正版です。 この版は4.0.x 版の中で最初にFLOSSライセンス除外が適用される版です。 この除外はオープンソース・フリーソースのプロジェクトのライセンスと 問題がありません。FLOSSライセンスとの詳細は以下を参照してください。 http://dev.mysql.com/doc/mysql/en/MySQL_FLOSS_License_Exception.html この版で修正されたそれぞれのバグに関してはhttp://bugs.mysql.com/ を参照してください。 変更のログ: 追加および変更された機能: * サーバー実行時にVERSION_COMMENT (コンパイル時の `./configure --comment' から) を表示。 例 `Version:'4.0.21-debug' socket: '/tmp/mysql.sock' port: 0 Official MySQL Binary' * Mac OS X 10.3でサーバーが`SIGHUP'と`SIGQUIT'のシグナルに 反応しないように改造。このOSでは MySQLサーバはたくさんの この種類のシグナルを受け取る。(バグ番号 #2030). * Windows上で `mysqld-nt' と`mysqld-max-nt' サーバーはMySQLエラー ログのほかにWindowsのイベントログにもエラーメッセージを書くこと ができる。 * `innodb.status.<PID>' ファイルを(データディレクトリーに 生成される) を `innodb_status.<PID>'と名前を変更. これで ファイルの名前に複数のピリオッドを許可しないファイルシステム 上の問題を解決。 * `innodb_status_file' システム変数を`mysqld'に追加して、データデレクトリ の `innodb_status.<PID>'ファイルに`SHOW INNODB STATUS'の出力 を追加するかどうかを制御。デフォルトではファイルは生成されない。 生成するには、`mysqld' を`--innodb_status_file=1' のオプションで スタート。 修正されたバグ: * `MERGE'テーブルへの同時アクセスに関する古いバグの修理(1つの `MERGE' テーブルと`MyISAM' テーブルでも)。このバグはサーバクラッシュか サーバハングをもたらす可能性あり。(バグ番号 #2408) * `BLOB'(`TEXT', `TINYBLOB'など)フィールドを指し示す`HAVING' クローズのエクスプレッションの`GROUP BY'クエリからの 誤った結果を生ずるバグを修正。(バグ番号 #4358) * `HEAP'テーブルが閉められた際にメモリーがリリースされないバグを 修正。 これはWindowsでsymlinkファイル(.sym)が使用されたときのみで しかも、ymlinkファイルが2つのバックスラッシュを含む場合に 限る。(バグ番号 #4973) * `TIMESTAMP(19)'フィールドが生成されないバグを修正。 (バグ番号 #4491) * `MyISAM'テーブルのBLOB' (`TINYBLOB', `TEXT',`TINYTEXT'など) コラム で`NULL'の値をサーチするインデクスを使用するクエリに誤った 結果を呈するバグを修正。(バグ番号 #4816) * 誤ったメタデータ(小数点以下の桁数)を返還する`ROUND()' 関数を 修理。例: `CREATE TABLE t1 SELECT ROUND(1, 34)'. (バグ番号 #4393) * `SQRT()'や`LOG()'などの数学関数の精度のバグを修正。(バグ番号 #4356) * `LOCAL'オプションで生ずる`LOAD DATA'のバグを修正。エラーは`LOAD DATA' の際に生ずる。以前は接続が切れた。現在はエラーメッセージを 発行して、接続は継続。 * オプティマイザーは `col IN (val)' と`col = val'を同様にプロセスする。 * `DBD::mysql' Perlモジュールを建設中に生ずる`net_buffer_length'に 関するバグを修正 (バグ番号 #4206) * `lower_case_table_names=2' (テーブルの名前のケースを保存)は `ALTER TABLE' および`CREATE/DROP INDEX' では機能しなかった。 (バグ番号 #3109) * `DECIMAL(0,...)'コラムの宣言でのクラッシュ. (バグ番号 #4046) * `IF()'関数がアグりゲート関数が関わった際に誤った結果を返還する バグの修正。 (バグ番号 #3987) * 場合によって、権限のないユーザがデータベースへの権限を与えること ができるバグの修正。(バグ番号 #3933) * `MATCH ... AGAINST()'で語句サーチオペレーターにダブルクオート がない場合のクラッシュのバグを修正。(バグ番号 #3870) * 64ビットのシステム変数の大きな値(4294967295以上)のトランケーションを 修正。(バグ番号 #3754) * `server-id' がスタートアップ オプションで指定されずに`SET GLOBAL' でされている場合、リプリケーション・スレーブは指定されていないと 報告するバグの修正。(バグ番号 #3829) * `mysql_real_connect()' (DNS サーバーやあるOSに必要)でのメモリー 領域侵犯のバグを修正。(バグ番号 #4017) * Linuxで RPMでインストレーションを行う場合、`mysqld'は`root'で 実行され、`--log-bin=<somewhere_out_of_var_lib_mysql>'のオプション があれば、そのディレクトリーに`root'所有のバイナリのログを生成する。 このログはインストレーションの終わるまでrootに所有される。現在は `mysqld'を`mysql' ユーザとして立ち上げる。(バグ番号 #4038) * DROP DATABASEに`lower_case_table_names'の値をサポート。 (バグ番号 #4066) * SQLのスレーブ・スレッド は40億行を検査したら、`INSERT ... SELECT' のリプリケーションをしなくなる。(バグ番号 #3871) * クエリが無視された場合(`replicate-*-table'のルールのため、 リプリケーションサーバかシンタクス・エラーのためにMySQLの サーバーによるか)、複雑な`AND'/`OR'のエクスプレッションで サーバークラッシュにつながるエクスプレッションの誤ったディストラクション の修理 (バグ番号 #3969, バグ番号 #4494) * `mysqlbinlog --position --read-from-remote-server' に誤った `# at'が。 (バグ番号 #4506) * `CREATE TEMPORARY TABLE t SELECT'がデータのローディングの際 クラッシュして、テンポラリー・テーブルがなくなる。(バグ番号 #4551) * 複数テーブルの`DROP TABLE'がマスターでテーブルを消滅しそこなうと バイナリログに記録されない。(バグ番号 #4553) * スレーブSQLスレッドオが`LOAD DATA INFILE'をリプリケート するときに `SHOW PROCESSLIST'の出力に表示せず。 (バグ番号 #4326) * `CREATE TABLE ... TYPE=HEAP ... AS SELECT...' がリプリケーション スレーブを停止するバグを修正。(バグ番号 #4971) * クライアントが`mysql_options(...,MYSQL_READ_DEFAULT,...)'を 利用してコンフィギュレーション・ファイルからオプションを読んだ場合 'disable-local-infile' オプションはなんの影響もない。(バグ番号 #5073) * テストがインストールされたディレクトリー('make install' のターゲット)から実行されると、`mysql-test-run'は`rpl_trunc_binlog' でクラッシュ。(バグ番号 #5050) * `KILLを使用中に起こり得るデッドロックのバグを修正。 (バグ番号 #4810) * `START SLAVE'を実行中の接続が停止させられと、クラシュするバグを 修正(バグ番号 #4827) * サーバーがバイナリ・ロギングで実行中の際`FLUSH TABLES WITH READ LOCK' が`COMMIT' をブロックするように変更。これによりテーブルと バイナリーログをフルバックアップする際バイナリーログの ポジションが信用できるようになる。 (バグ番号 #4953) * テーブルがテンポラリのときは`TRUNCATE TABLE'で`auto_increment'の コラムのカウンターがリセットされないバグを修正。(バグ番号 #5033) * `lower_case_table_names=1'のときデータベースの名前をケースに かかわらず完全コラム指定の名前(`データベース.テーブル.コラム')を比較 できるように。(バグ番号 #4792) * `SET CHARACTER SET'が正しくリプリケートしないバグを修正。MySQL 4.1版にはこのバグは存在しない。(バグ番号 #4500) * `ON DELETE CASCADE' と `ON UPDATE CASCADE' ホーリン・キーの制約 のバグを修正:カスケードされたオペレーションの長いチェーンがスタック オーバーフローを生じ、サーバーをクラッシュ。 カスケードされた オペレーションは15レベルに限定。 (バグ番号 #4446) * MySQL/InnoDB-4.0.19版で挿入された`LOCK TABLES'でのバグを修正: トランスアクションで明示的にロックされるテーブルの数はロックが 与えられた後に増加し、ロックがデストロイされた時に 減少させる。 * MySQL/InnoDB-4.0.19で挿入された`AUTOCOMMIT=0'での'UNLOCK TABLES' のバグを修正。トランスアクションによって入手されたロックの ために割り当てられたメモリーがロックがリリースされる前に リリースされる可能性がある。 トランスアクションが大量のロックの (テーブルまたは行レベル)を必要とした場合、クラッシュや バッファープールのメモリーのコラプションを引き起こす。 * `CHECK TABLE'の際InnoDBワッチドッグのタイムアウトを増加. (バグ番号 #2694) * `innodb_additional_mem_pool_size'を小さくしすぎると、InnoDB メモリー の割り当てがはみだし、40億ごとのはみ出しがメモリーのコラプション を引き起こす。 予兆は`.err'ログのなかに下記のようなメッセージ が表示される。この解決は`innodb_additional_mem_pool_size' を十分大きくとってすべてのメモリーを含めることである。 `SHOW INNODB STATUS'を使って追加のメモリープールに十分に フリースペースがあることを確認し、割り当てのメモリーの 大きさがコンスタントであることを確認するべき。 InnoDB: Error: Mem area size is 0. Possibly a memory overrun of the InnoDB: previous allocated area! InnoDB: Apparent memory corruption: mem dump len 500; hex * `CREATE TABLE'と`DROP TABLE' ステートメントにある`innodb_monitor', `innodb_lock_monitor', `innodb_tablespace_monitor', `innodb_table_monitor'と`innodb_validate' の特別の意味が MySQL/InnoDB-4.0.19から除去された。診断関数この特別テーブル の名前(*注: InnoDB Monitor::)はMySQL/InnoDB-4.0.21から再びアクセス可能。 * InnoDBのプライベートSQLパーサーInnoDBがMySQL/InnoDB-4.0.19で テーブルとコラム名の中でアポストロフィを使用可能にする ために変更された際、修理方法は`mem_realloc()'を使用することだったが、 その関数にエラーがあった。 結果として、InnoDBがコラムとテーブル名を 誤って空のストリングとパースした。 InnoDB の`realloc()' 実装はMySQL/InnoDB-4.0.21で修理。 * 4.0.18 と 4.1.2で生じた問題を解決。`SHOW TABLE STATUS' でInnoDB は テーブルが16KBのデータページに収まる場合、行の数を1つ多めに数える。 * InnoDB はテンポラリ・ファイルをC ライブラリー関数の`tmpfile()' で生成。Windowsではこのファイルは現在使用のファイルシステムのルート ディレクトリに生成される。 これを修正するため、`tmpfile()'は MySQLのポータビリティ層にある`create_temp_file()'を使用するコードに変更。 (バグ番号 #3998) -- Matt Wagner, プロダクション・エンジニア MySQL AB, www.mysql.com ノースフィルド市, ミネソタ州, 米国 --------------------- Zen Kishimoto zen@xxxxxxxxxx IP Devices, Inc. (408) 567-9391 2175 De La Cruz Blvd., Suite 10 (801) 720-8847 (FAX) Santa Clara, CA 95050