Version 1.3.170 (2012-11-30)
忘れてたけど一年ぶりくらいにパッチを送ってたのだった。
今回のリリースはIssueからの不具合修正が多いです。リリースノートには挙げられていませんが、MVStoreのベースになるmultiversionmapがメインのソースツリーに入ってきています。
- Issue 407: TriggerAdapterがCLOB/BLOBカラムと動作していなかった。
- H2のTriggerインターフェースは行毎の実行の場合は、void fire(Connection conn, Object oldRow, Object newRow) throws SQLException を実装する形となっていて、それをvoid fire(Connection conn, ResultSet oldRow, ResultSet newRow) throws SQLExceptionにするアダプターがTriggerAdapterなのだけれど、そのoldRow/newRowにCLOB/BLOBが含まれていたらClassCastExceptionが発生していたようです。
- PostgreSQL compatibility: AUTO_INCREMENTのエイリアスとしてデータ型BIGSERIAL型とSERIAL型をサポート。
- Issue 417: H2 Console: webのセッションタイムアウトが動作しておらず結果としてメモリリークになっていた。これは、H2 Consoleを長時間開いていて、多くのセッションが張られているときのみ問題になる。
- Issue 412: サーバーツールを"-browswer"オプションのみで起動した場合、警告がログ出力されるようになった。
- webオプションなしでbrowserオプションをつけても仕方がないので。
- Issue 411: CloseWatcherの登録が同時実行セーフではなかった。
- conncurrency-safeとあるけど、実装上は普通にthread safeなのだけど、意図はあるのだろうか。
- HashSetで管理されていたのを、Collections.synchronizedSetに変更しています。
- MySQL compatibility: CONCAT_WSのサポート。
- MySQL互換性と言う事で、最近PostgreSQLにも入ったCONCAT_WS。
- 外部キー制約を検証するために間違ったユニークキー制約を使用していたバグを修正。
- 原文は、"Fix for a bug where we would sometimes use the wrong unique constraint to validate foreign key constraints."なんだけど、sometimes?
- RUNSCRIPTコマンドでBOMで始まるファイルをサポート
- Windowsのメモ帳でちょろっと書いてしまったりしても大丈夫に。
- SET @X = IDENTITY() でNULLが不正に返るのを修正
- 制約とH2-Log-Writerスレッドの間でのデッドロックを修正
- IN(...)のすべての値が定数で同じ型の場合の最適化
- Restore tool: パラメータ "quiet"が使用されていなかったため削除
- テーブルの作成とSHOW TABLESが並列に実行された場合のConcurrentModificationExceptionを修正
- システムプロパティ"h2.javaObjectSerializer"を使用する事でシリアライゼーションがプラガブルになった