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

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

Version 1.3.149 Beta (2011-01-07)

  • LOB in database: LOGを追加中にプロセスがkillされた後、LOBをINSERTしようとすると例外が投げられていた(LOB_MAP内でのプライマリーキー重複)
  • Server tool: tcpShutdownでその他のサーバ(Webサーバ/PostgreSQLサーバ)も停止するようになった
  • Server tool: ポートが使用されている場合には、tcpShutdownのURLはポート番号で終わる必要があるようになった
  • Server tool: サービス起動に失敗したら、すでに起動済みのサービスも停止するようになった
  • Multi-version concurrency: SELECT ... FOR UPDATE でロックタイムアウトが設定された後、行がすでに別のコネクションでロックされていた場合に、同時更新例外がロックタイムアウトの代わりに即座に投げられていた
  • 翻訳: H2コンソールとエラーメッセージが、Hannibal (http://hannibal.cestiny.cz/)によりチェコ語に翻訳された。
  • システムプロパティの h2.lobInDatabaseがセットされている場合に、長さを読み込まなくなったのでBLOBの読み込みがちょっと速くなった。
  • SimpleResultSetに最後の行を読んだ後もクローズされない機能がついた
  • 組み込みの全文検索: 無視する単語のリストがすべてアッパーケースでなくてよくなった
  • Recover toolの統計情報の出力が改善された
  • Issue 269: GROUP BY で単一のカラムもしくはhavingが付いていて、そのSQLが IN(SELECT ...) を含む場合、不正な結果が返っていた。例): SELECT X IN(SELECT Y) FROM Z GROUP BY X.
  • Issue 271: ResultSet.getConcurrency()でResultSetが更新可能でないことを正しく検出出来ていなかった
  • The SLF4J 1.6 API がデフォルトで利用されるようになった(利用者に見える影響はない)
  • org.h2.tools.Consoleがシャットダウンの時にSystem.exitを呼ばなくなった(これは利用者の目に見える影響はないが、このツールを別のアプリケーションに組み込みやすくする)
  • 日付時刻計算の改善。日付や時刻から浮動小数点数の足し引きがサポートされた。
  • BLOBをInputStreamから、CLOBをReaderから作成するときにInputStream/ReaderがIOException以外の例外をスローすると、LOBs in Databaseの場合、LOBストレージが破壊されてしまっていた。
  • EXPLAIN SELECT がサンプルサイズに1がセットされた場合それが含まれていなかった
  • EXPLAIN の実行計画のフォーマットとドキュメントの改善。
  • Issue 266:ドメイン: NOT NULL節がドメインの定義上で無視されていた
  • 巨大なサンプル数で低分散のためのより正確な分散と標準偏差の計算(現在はウェルフォードメソッドを使用)
  • サーバ: CLOBデータでUnicodeのキャラクターコードの0xd800から0xdfffの文字を使用すると転送が正確にうまくいかなった。多くの場合、スレッドはその後スタックしてしまっていた。
  • Issue 264: src/tools下にあったHibernateのdialectを削除。すでに廃れてしまっているので。
  • あるクエリにおいて、キャッシュサイズを超過してしまい、OutOfMemoryErrorを引き起こしてしまうケースがあった。