MySQL 5.1.32リリース

MySQL 5.1.32でました。といってもCommunity Serverは本日時点でまだのようで、リリースを確認したのは有償のEnterprise Serverの方です。(2009/03/05追記 Community Serverもリリースされました)
MySQL 5.1.32のリリースノートを確認すると、今回は約40個のバグが修正されています。と、これだけだと面白くないので、私が個人的に衝撃を受けたバグをご紹介します。Bug#42634です。
my.cnfでバイナリログをONにして、ステートメントベースにします。

log-bin = server01-bin
binlog_format = STATEMENT

以下のようなテーブルを作って、1レコードINSERTしておきます。

mysql> create table t (c1 int primary key, c2 varchar(10)) engine = myisam;
Query OK, 0 rows affected (0.01 sec)

mysql> insert into t values (1, 'a');
Query OK, 1 row affected (0.00 sec)

以下のUPDATE文を実行します。

mysql> update t set c2 = '%5b' where c1 = 1 limit 1;
ERROR 2013 (HY000): Lost connection to MySQL server during query

サーバがクラッシュします。
このような一発でサーバを落とすコマンドを、1行クラッシャーと呼びます。今決めました(笑)。バグ報告をする際にこういう明白な再現ケースが作れる人ってすごいですね。ちなみにこのバグはlimit句をつけないと再現しないのと、UPDATE文にlimit句をつけるのは結果が非決定的になるためご法度なので、実際にバグを踏む人はほとんどいないと思います。
ちなみに5.1.31で直ったバグの中にも1行クラッシャーがあります。MySQL 5.1を使っている方は、半年程度ははてなアンテナなどを利用してリリースノートをウォッチすることをおすすめします。