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

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

Version 1.2.144 (2010-10-15)

1.2.145が出ているのに...。

1.2.144では、h2.lobInDatabase周辺のところがちょこちょこ直っている感じです。transferとかクラスター環境だと便利かも(試してない...)

  • Windowsのバッチファイルの改行がCRLFになっていなかった
  • LOBストレージ(システムプロパティでh2.lobInDatabaseをセット)が必要に応じて初期化をするように変更
  • クラスタ化されたインデックスの場合に、インデックス条件のcolumnName IS NULLが効果的に動作していなかった
  • 2GBを超えるデータベースでリカバーツールが動作していなかったのを修正
  • インメモリデータベースでcolumn is nullとアウタージョインを組み合わせて使用すると、正しい結果を返さなかった
  • テンポラリファイルがシステムのテンポラリディレクトリではなく、現在の作業ディレクトリにできていた。これは、以下に影響する。リードオンリーデータベースのテンポラリアンドゥログ、リードオンリーデータベースでの巨大な結果セット用のテンポラリファイル、LOBをデータベース内に格納した場合(h2.lobInDatabaseをセット)のテンポラリLOBファイル。なお、h2.lobInDatabaseがセットされていない場合のテンポラリLOBファイルについては、未だ現在の作業領域のサブディレクトリ(.lobs.db/)に保存される
  • 新たな実験的機能: CREATE TABLE ... AS SELECTの高速化。有効にするためには、システムプロパティのh2.optimizeInsertFromSelectにtrueをセットする。巨大なクエリに対しては、パフォーマンスが倍になることもあり得る。
  • LOBオブジェクトがデータベース内に保持される場合(実験的設定のh2.lobInDatabaseを使用)で、かつMVCCモードを使用していた時に、未コミットのトランザクションを含むデータベースをオープンすると、NullPointerExceptionが投げられることがあった点を修正
  • CallableStatementでのOUTパラメータ使用が実装された
  • PreparedStatement.getMetaData()がResultSet.getMetaData()と整合性が取れていないことがあった点を修正
  • ビルドツールでJAVA_HOMEをjavacに対しても使用するようになった(Issue 233)
  • 暗号化されたデータベースのオープンとクローズが速くなった
  • H2 Console: 新たな実験的機能として、ファイルのダウンロードとアップロードをサポート。ただし、現在の作業ディレクトリ下に"transfer"というディレクトリがある場合に限る。セキュリティ的な理由により、非常にシンプルなファイル名のみをサポートし、サブディレクトリはサポートしていない。アップロードする際には、transfer.jspを使用する。ダウンロードする際には、tranfer/fileNameを使用する。
  • 新たなサンプルアプリケーション: 暗号化かつ圧縮したスクリプトファイルを作成する
  • パフォーマンスがちょっぴり改善
  • DriverをJava6でコンパイルした時(デフォルト)に、DatabaseMetaData.getJDBCMajorVersion が4を返すようになった(以前は3)
  • 内部のユーティリティクラス BitFieldが再度追加された。それにより、データベースのオープンとクローズのパフォーマンスが改善された(java.util.BitSetと異なり、setByte/getByteメソッドをサポートするため)
  • INFORMATION_SCHEMA.SESSIONS: SQLステートメントの「開始時」が時間のかかるステートメントの時のみセットされるようになった。これにより、いくつかのデバイス、特にアンドロイドを使っている場合にパフォーマンスが改善された。
  • ユーザ名とパスワードがない古いデータベース(1.2.142以前)が1.2.143で開けない問題を解消した。
  • データベースのアップグレードクラスの名称が変更になった。
  • コネクションプールかデータソースを使用している場合に、自動でアップグレードが行われていなかった
  • JaQu: デーベースオブジェクトがデータソースを使用している場合でも作成されるようになった(Issue 227)
  • ビルトインのプロファイラのDalvik VMへの対応がよりよくなった
  • jarSmallビルドターゲットで、アサーションを含まなくなった(システムプロパティの h2.check と h2.check2).
  • jarSmallビルドターゲットで、ミスによりDbUpgradeクラスを含まなくなっていた