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

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

Version 1.3.151 Beta (2011-02-12)

そろそろstableなversion 1.3がでるとか。

  • Server: ベースURL外にデータベースを開ける状態だったのを修正。テストケースが壊れていた。
  • H2コンソールツールで、データベースURLをコマンドラインのオプションとして渡せるようになった。
  • Clob.getSubStringとBlob.getBytesが3倍速くなった
    • DriverManager.getConnection("jdbc:default:connection")をサポートするための、新しいデータベース設定 DEFAULT_CONNECTION(デフォルト無効)。OracleJDBCドライバがH2のドライバよりも先にロードされていた場合、OracleJDBCドライバがこのデータベースURLを解決しようとするので注意する事。
  • JaQu: スタティックなmap Db.TOKENSが同期化されていなかった。
  • DatabaseMetaData.getProcedureColumns が不正なデータを返していた(コネクションパラメータがあったらそれも返していた)
  • Issue 284: クエリキャッシュが使われて(version 1.3.xからデフォルトで有効)、複数スレッドが同じコネクションを使い、同一のクエリ(ただし異なるPreparedStatement)の時に、あるPreparedStatementのパラメータが別のもので上書きされる事があった。
  • クエリキャッシュが使われているとき(version 1.3.xからデフォルトで有効)、PreparedStatementの再利用されたクエリのパラメータがリセットされていなかった
  • CallableStatement: CallableStatement.execute()が使われたとき、結果セットの最初の行がスキップされていた
  • Batch更新の例外にroot causeとすべての例外が含まれるようになった(getNextException)
  • BlobかClobを含む大きな結果セットを読んでいる際に、NullPointerExceptionを投げることがあった
  • MS SQL Serverのシンタックス VARCHAR(MAX)をサポート
  • リカバーツールでからのデータベースにおいて、"/ by zero"というメッセージが表示されることがあった
  • INTやLONGの単一カラムによるプライマリーキーを含まないテーブルで、ユニークなROW IDにギャップがあった(あまり見栄えが良くない)
  • すべてのテーブルがユニークなrow idを取得するための擬似列 "_ROWID_"を持つようになりました(version 1.3.xでのみ有効)
  • ユーザ定義関数でパラメータのクラスの制限がなくなりました。種別 OTHER (OBJECT or JAVA_OBJECT)は自動でデシリアライズされます。
  • Linked Table: OracleがNUMERICに対して、precisionを0、scaleを-127と返してくる問題の対応が実装されました(DECMIMALに対しては、version 1.3.150で同様に対応されています)
  • Issue 279: オートサーバーモード: AUTO_SERVERでコネクトする際にデータベースがフラグなしですでにオープンしていたら、エラーメッセージをクリアしないようになりました
  • Issue 238: 単一カラムに対する制約が掛かっている列がドロップできるようになった