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

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

Version 1.4.177 Beta (2014-04-12)

さくっと1.4ベータが出ました。次は1.3.178だったりするんでしょうが、ここらへんのバージョン番号のポリシーは独特ですね。

  • デフォルトで新しいMVStoreストレージを利用するためのMV_STOREオプションが有効に。MVCC設定もデフォルトではMV_STORE設定と同じ値になるため、これもデフォルトで有効となる。テストのため、これらの設定は";MV_STORE=FALSE"や";MVCC=FALSE"をデータベースURLに追記する事で無効化する事が出来る。
  • ファイルロックメソッド'serialized'がサポートされなくなった。このモードは将来のバージョンで復活するかもしれないが、現時点でははっきりしていない。新たな実装と新たなテストケースが必要となる。
  • 日時の新たなストレージのフォーマットが有効になった(システムプロパティ "h2.storeLocalTime") これは、MVStoreモードにおいては常に有効であり、バージョン1.4ではPageStoreモードでも有効となる。
    • PageStoreなくなるかなと思ってたら当面なくならなさそうですね。まぁ、そりゃそうか。
  • 暗黙的な相対パスが無効になった(システムプロパティ "h2.implicitRelativePath")。そのため、データベースURL jdbc:h2:test は jdbc:h2:./test と書く必要がある。
  • H2の標準モードで "select ... fetch first 1 row only" が有効になった。これまで "fetch" はキーワードではなかったため、無効となっていた。Mode.supportOffsetFetch 参照。
    • これ、原文間違っているような気がするんですよね。"fetch" was not a keyword? 以下原文。
    • select ... fetch first 1 row only" is supported with the regular mode. This was disabled so far because "fetch" is now a keyword. See also Mode.supportOffsetFetch.
  • バイト配列が符号なしでソートされるようになった(x'99' は x'09' より大きい)。(システムプロパティ "h2.sortBinaryUnsigned", Mode.binaryUnsigned, および設定 "binary_collation" を参照).
  • Csv.getInstance は1.4の将来のバージョンで削除される。代わりに、publicなコンストラクタを使用すること。
  • 限定的な旧スタイルの"(+)"を使ったアウタージョインのサポートを削除。"outer join"を代わりに使用すること。システムプロパティ "h2.oldStyleOuterJoin".
    • 原文は "Remove support" となっていますが、h2.oldStyleOuterJoin を明示的に設定しておくことでとりあえず現時点では利用可能です(svnのコミットログを見ると"Make old-style outer joins optional"となっているし)。でも、これは結構影響が大きそうな気がしますね。
  • MS SQLサーバの互換性向上のため、DATETIME2をDATETIMEのエイリアスとした
  • Oracle互換の TRANSLATE 関数の追加