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

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

Version 1.3.169 (2012-09-09)

リリース自体には特に面白味のある変更はありませんが、H2のバックエンドとしてMVStoreという新しい実装が追加されています(まだ実装途中ですが)
色々な機能がplugin形式で追加できるようになったり、ファイルフォーマットがシンプルになったりといろいろいいことづくめの様ですが、どうでしょうか。

  • デフォルトのjarがJava 6向けにコンパイルされるようになった
  • 新しいjarファイルがおそらく数週間 Mavenのセントラルリポジトリにアップされない。なぜなら SonatypeがSourceForgeからの(彼らがlegacy synと呼ぶ)自動的な同期を停止したことによる。これの解決には数回のリリースを要すると思われる。H2のjarファイルは通常 http://h2database.com/m2-repo/com/h2database/h2/maven-metadata.xmlhttp://hsql.sourceforge.net/m2-repo/com/h2database/h2/maven-metadata.xml
  • 一部のドキュメントとH2 Consoleが Apple retina displayをサポートするため変更された
  • CreateCluster toolがソースデータベースがCLOBかBLOBを含む場合に使用できなかった。根本的な原因は、TCPサーバが排他モードを使用中に同期化されていなかったことによる。
  • Statement.getQueryTimeout(): このメソッドが最初に呼ばれたときのみデータベースにクエリが実行される。もしsetQueryTimeoutを使用する以外の方法でクエリタイムアウトが設定された場合、このメソッドは常に最後の値を返す。この変更はHibernateがgetQueryTimeout()を非常に多くコールすることから行われた。
  • Issue 416: PreparedStatement.setNStringがAbstractMethodErrorをスローする。Java5で互換性を壊さないJDBC4のメソッドがデフォルトのjarに含まれるようになった。
  • Issue 414: いくつかの関数で、引数が2回評価されていた(例:char(nextval(..))では、nextval(..)が2度実行されていた)
  • ResultSetMetaDataのメソッド、getSchemaNameとgetTableNameがJDBC APIの定義に合わせ""(空文字列)の代わりにnullを返すようになった
  • MySQL互換モードで、"SET NAMES"クエリの互換性が向上した