H2Databaseを追っかけていたりしたブログ

H2 database のリリースノートを読んだりとか。

Version 1.3.163 (2011-12-30)

今回はあまり強烈な不具合修正はない。

  • ディスク容量が足りなくなった場合に、後続の書き込み処理が成功すると、データベースの不整合がたびたび発生していた。同様の問題は同種のI/O Exceptionでも発生していた(最初のいくつかの書き込みが失敗したが、後続の書き込み処理で成功してしまう場合) 現在、最初の書き込み処理に失敗した時点でファイルをクローズするため、後続の処理は不整合を起こすことなく失敗するようになった。
  • いつも正しく動くことが保証できないため、DatabaseEventListener.diskSpaceIsLow() がサポートされなくなった。
  • XMLTEXTが改行をエスケープするためのオプションパラメータをサポート
  • XMLNODEがインデントを無効化するためのオプションパラメータをサポート
  • Csv.writeが日付、時刻、タイムスタンプのフォーマットにjava.sql.Date / Time / Timestamp.toString()を使用するようになった。以前は、ResultSet.getString()を使用しており、これはオラクルでうまく動作していなかった。
    • 試してみたが、再現せず。うーん? linked table作って、csvwriteでやる感じじゃだめなのかな。Oracleのドライバとかにも依存するのかな...
  • h2.shが異なるディレクトリからでも実行できるようになった
  • データベースに永続化されているページサイズがクエリ出来るようになった。select * from information_schema.settings where name = 'info.PAGE_SIZE'
  • サーバーモードで、結果セットがクローズしても、BLOBやCLOBはクローズしないようになった(JDBCの仕様で求められている動作)