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

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

Version 1.3.150 Beta (2011-01-28)

思ったより変更点が少なそうな今回。で、何時ベータじゃなくなるのかと。

  • CSVREAD/CSVWRITE 設定値を一つ一つ並べる代わりに、すべてのオプションをスペースで区切ったキーと値のペアで渡せるようになった
  • CSVREAD/CSVWRITE 新しいオプション"lineCommentCharacter"をセットする事で、行コメントを無効にできるようになった。H2 1.2のデフォルトは#(従来通り)。H2 1.3では行コメントはデフォルト無効。
    • 行コメント#がデフォルトで有効なのは、MySQL互換のためだそうです。
  • Issue 277: JaQuでCLOBを正確にStringに変換できていなかった
  • ネットワーク設定に問題がある場合、./build.sh testNetwork がブロックされた
  • クラスパス上のリソースのInputStream読み取りがサポートされた。例: RUNSCRIPT FROM 'classpath:org/h2/samples/newsfeed.sql'
    • データベースが存在していなかったら作る、みたいな時に便利っぽい。
  • PreparedStatement.toString()が読みやすい形にパラメータの値を含むようになった
  • 新しいデータベース設定値 OPTIMIZE_IN_SELECT(H2 version 1.3.xではデフォルト有効) 有効の場合、テーブルやサブクエリで行が多い場合のIN(SELECT ...)条件が速くなる。
  • Linked tables: DECIMALカラムに対して、Oracleがprecision 0 でscale -127で返して来る事象に対して、回避策を実装。
  • TCP Server: プレフィックスがついたデータベース名がプレフィック付きのベースディレクトリと期待通りに動作していなかった(これは、非ディスクでラップされたファイルシステムにのみ適用される)
  • Version 1.3: 同じクエリを再実行して前回の結果が再利用され、その結果セットが大きく、外部にストア(一時ファイルもしくは一時テーブル)されている場合、両方の結果セットから行を読んでいるときに例外や間違った振る舞いをする事があった
  • どのようにzipファイルベースの読み込み専用データベースを作るかという新しいサンプルアプリケーション
  • バックアップツールが与えられたディレクトリのすべてのファイルの圧縮をサポート
  • H2 Console: 新しい文法 @list と @meta は組み合わせて利用できない
  • 何らかの理由でデータベースファイルが読み込めない場合(例えば、分割ファイルシステムが使用されていて、ファイルが間違った位置で分割されていた場合)に間違ったエラーメッセージが表示されていた
  • トレースシステムにメモリーリークがあった。たくさんのコネクションのオープン時とクローズ時にメモリが枯渇する事があった。
  • scan-resistantキャッシュタイプ"TQ"(two queue)がまた利用可能になった。利用するためには、;CACHE_TYPE=TQをデータベースURLに追加する。