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

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

Version 1.3.164 (2012-02-03)

配列型ってちゃんと使った事ないんですけど、便利なのかな。

  • 新しい組み込み関数。ARRAY_CONTAINS
    • 配列の中に指定した値があるか、という関数。
  • いくつかのデータベースメタデータのメソッドがALLOW_LITERALS NONEの特動作していなかった。
    • SQLインジェクション対策の設定。ALLOW_LITERALSにはNONE,ALL,NUMBERSのいずれかが設定可能。NONEを設定すると条件句の値にリテラルが使えなくなります。NUMBERを設定すると数値のみ使用可能。これは、他のデータベースになさそうな機能、ですかね。
  • VARCHARからUUIDに変換する際、16進数のキャラクタ、'-'、空白以外の文字列が含まれていたら失敗するようになった。
  • TriggerAdapter: beforeトリガーにて、ResultSet.updateXメソッドを使って値が変更できうるようになった。
  • テーブルを作るときにカラムのデータタイプとしてNULLも使えるようになった(特に有用性はなくとも)
  • ALTER TABLE ALTER COLUMN が精度を拡大させる等の拡大方向の変更については必要がなければカラムのデータをコピーしなくなった。
  • Multi-threaded kernel: オンラインバックアップとデータベースの更新が平行稼働した場合に、いくつかのケースでトランザクションの不整合を引き起こし、バックアップファイルが破損する事があった。
  • お互いに依存する複数のViewが存在する場合にSCRIPT DROPによって生成されたスクリプトが動作しない場合があった。
  • MathUtils.getSecureRandomが/dev/randomがとても遅い場合システムエラーに警告を出力していた。また、System.getProperties().toString()が64KBを超える文字列を返していた。
  • データベースファイルのロック機構"FS"(;FILE_LOCK=FS)が1.3.161よりLinuxで動作していなかった。
  • Sequences: クォートされケースの混在したシーケンス名を使うとNEXTVALとCURRVALが期待通りの動作をしていなかった。
  • CSVオブジェクトのコンストラクタがPublicになり、Csv.getInstance()がdeprecateになった。
  • SimpleResultSet: 結果セットの更新をサポート
  • Database URL: 追加のセミコロンがサポートされなくなった