Version 1.3.156 (2011-06-17)
送ったパッチが採用されたリリース。
- Issue 323: IN(...)とファンクションテーブルを一緒に使うとNullPointerException(が発生していたのを修正)
- Clob.toString() と Blob.toString() に識別用の名前が含まれるようになった。
- 元々含めていたつもりだったようだけど、バグで含まれていなかった模様。二項演算子より+の方が勝つのね。
return getTraceObjectName() + ": " + value == null ? "null" : value.getTraceSQL()
- SQLパーサが'^'や'\'の様な文字を黙って無視していた。現在はシンタックスエラーがスローされる。
- ROUND(..)が、パラメータ一つのときでも動作するようになった。
- 非アドミンユーザによるシステムテーブルへのアクセスがより限定されるようになった(それらのテーブルはまだ一覧に表示されるが、一部のデータが含まれないようになった)
- 非アドミンユーザでUSERSテーブルを見ると、自分しか見えないとかそんな感じ。
- BLOB: InputStream.skipが組み込みモードでより効率的になった。
- カラムのデフォルト式がテーブルを参照しないようになった。なぜならそのようなテーブルを持つデータベースが正常にオープンできないから。
- 実際影響があるのは、ALTER TABLE xxx ALTER COLUMN yyy set default zzz の時。なんだけど...。
- check constraintで参照されているオブジェクトがドロップされる可能性があり、結果データベースが正常にオープンできなくなることがあった。
- Oracleとの互換性の向上(NVL2関数)
- CSVREADで'preserveWhitespace'オプションの追加
- デフォルトはfalseで、CSVの各項目がトリムされる。
- 多くの行を伴う再帰クエリで、IndexOutOfBoundsExceptionがスローされる事があった
- auto-serverモードはインメモリデータベースと組み合わせる事が出来ない。この無効な組み合わせはここまで検出しなかった。現時点では、その組み合わせでデータベースを開こうとすると失敗する。
- date型とtime型の値の読み書きのパフォーマンスの改善。
- Java関数: 配列の型情報が保持されるようになった。Java関数がIntegerを返す時、ResultSet.getObject()もIntegerを返す。コンポーネント型はネットワークを超えるが、現時点ではデータベースに永続化されるわけではない。
- Recover tool: 全文検索が利用されている場合、リカバーツールによって生成されたスクリプトが動作しなかった。トリガーが主キーよりも前に作られていたため。
- Issue 321: XA prepareなしのXA rollabackを想定していなかった(不要な例外が .trace.dbファイルに記録されていた)
- Read-only database: 読み込み専用データベースでいくつかのクエリ(distinctのような)でテンポラリテーブルを作ろうとして失敗していた。
- テンポラリファイルをのぞき、finalize()を使用しなくなった。システムプロパティの"h2.runFinalize"はサポートしなくなった。クローズされていないコネクションは検出されるが、そのコネクション開始のスタックトレースはコネクションが再びクローズされなかった時(二度クローズされていないコネクションと開始された時)。閉じられていないコネクションを検出するために、PhantomeReferenceが使用されている。
- Issue 322: from句にサブクエリが使われている時、左外部結合が動作していなかった。
- 結果セットを返すCALLのプリペアドステートメントを複数回実行した場合、NullPointerExceptionがスローされる事があった。
- 以下の組み込み関数が決定的とマークされた。従って、プリペアドステートメント内で再実行されなくなった。LOCK_TIMEOUT,LINK_SCHEMA, CANCEL_SESSION, FILE_READ.
- NOT NULLのカラムを指定したCOUNTが、COUNT(*)に最適化されるようになった。
- 以下のプリペアドステートメントが同様にキャッシュされるようになった。insert, update, delete, call,merge 及びトランザクショナルコマンド。
- 及び?等の?
- 組み込みのコネクションプールが少々速くなった。
- CREATE TABLE AS SELECTにて、カラム定義を明示的に行わない場合、スケールが正しくセットされないケースがあった。
- TCP/IPを使ってサーバに接続しようとして失敗した場合、長くともタイムアウトまでしかリトライしないようになった。以前は、タイムアウトとリトライ回数を掛けた時間かかっていた。