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

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

java

Version 1.3.157 (2011-06-25)

タイムゾーンとか難しいよなあとか。 CREATE TABLE ... AS SELECT ...のシンタックスの変更: NOT PERSISTENTのようなオプションは、AS SELECTの前に置くようになった。そうでないと、オプションがAS SELECT以下と解釈されてしまうため。 ここで言っているオ…

Version 1.3.156 (2011-06-17)

送ったパッチが採用されたリリース。 Issue 323: IN(...)とファンクションテーブルを一緒に使うとNullPointerException(が発生していたのを修正) Clob.toString() と Blob.toString() に識別用の名前が含まれるようになった。 元々含めていたつもりだったよ…

Version 1.3.155 (2011-05-27)

トリガーがあるテーブルを変更した際に、新しいトリガーがテーブル名_COPY_x_yという名前のテーブル名で作成され初期化されている。これは将来的にはそうならないよう計画されている。 何書いてるか意味不明だ...。これは、ALTER TABLEしたときに、この時点…

Version 1.3.154 (2011-04-04)

今回このメモ書いている際に不具合を2つ見つけてメールしました。 次の例外のSQL stateが変更になった。90005から22001 "列 {0} の値が長過ぎます: {1}"。90039から22003 "精度 {0} に対して値が大きすぎます"は"数値が範囲外です"とマージ。90110から22003 …

Version 1.3.153 (2011-03-14)

ついにnon-betaです。 Issue 294: Eclipseで自動的にソースコードがアタッチできるよう(Mavenを使用している場合)に、Mavenのソースバンドルにマニフェストファイルを含むようになった。 明示的にLIMIT 0が指定されたクエリが結果行を返さなくなりました(今…

Version 1.3.152 Beta (2011-03-01)

リリースされた直後ウェブサイトの内容がリリース前の内容に戻ってしまうということも有りましたが。ところで、まだBetaは取れないのか。 H2コンソール: Mac OS XでOpenJDK1.7の環境で、ブラウザ検知が動作していなかった dobuleとfloatの-0.0と0.0はJavaの…

Version 1.3.151 Beta (2011-02-12)

そろそろstableなversion 1.3がでるとか。 Server: ベースURL外にデータベースを開ける状態だったのを修正。テストケースが壊れていた。 H2コンソールツールで、データベースURLをコマンドラインのオプションとして渡せるようになった。 Clob.getSubStringと…

Version 1.3.150 Beta (2011-01-28)

思ったより変更点が少なそうな今回。で、何時ベータじゃなくなるのかと。 CSVREAD/CSVWRITE 設定値を一つ一つ並べる代わりに、すべてのオプションをスペースで区切ったキーと値のペアで渡せるようになった CSVREAD/CSVWRITE 新しいオプション"lineCommentCha…

Version 1.3.149 Beta (2011-01-07)

LOB in database: LOGを追加中にプロセスがkillされた後、LOBをINSERTしようとすると例外が投げられていた(LOB_MAP内でのプライマリーキー重複) Server tool: tcpShutdownでその他のサーバ(Webサーバ/PostgreSQLサーバ)も停止するようになった Server tool: …

Version 1.3.148 Beta (2010-12-12)

1.3系。 組み込みのコネクションプールが少しだけ簡略化された。dispose()メソッドが、例外をスローしないようになった(ログのみ出力) データベースのアップグレード(1.1.xからのアップデート)が簡略化された。 すべてのエラーを出力する機能(システムプロパ…

Version 1.2.147 (2010-11-21)

1.2系です。 H2 Console: サーバプロパティのディレクトリを起動時のコマンドライン上で設定可能になりました。java ... -properties Issue 159 新機能。INSERT INTO ... DIRECT SELECT。CSVファイルからテーブルへのロードのスピードアップ。DIRECT句を使用…

Version 1.3.146 Beta (2010-11-08)

1.3系のプレビュー版です。 これはベータバージョンです。次のバージョンは1.2.147となります。1.2系と1.2系の相違点は以下の通り: 1.3系では、h2.lobInDatabase(CLOB/BLOBをデータベースファイル中に持つ)はデフォルトで有効となります。 1.3系では、ANALYZ…

Version 1.2.145 (2010-11-02)

個人的に、バグとしてあげたら仕様と返されたIssueがあった思い出深いバージョンです。 新しいStringのキャッシュが5秒毎に作られるようになった。これにより、OutOfMemoryExceptionの発生が不自然に遅延することはなくなった データベースをクローズした後…

Version 1.2.144 (2010-10-15)

1.2.145が出ているのに...。1.2.144では、h2.lobInDatabase周辺のところがちょこちょこ直っている感じです。transferとかクラスター環境だと便利かも(試してない...) Windowsのバッチファイルの改行がCRLFになっていなかった LOBストレージ(システムプロパテ…

Version 1.2.143 (2010-09-18)

今回は安定板ではありません。実際、ユーザ名とパスワードをハッシュしない云々の修正では、リリース直後に不具合が発覚しています。 ちょっと試しただけでは再現してはいないのですが、CHECK制約があるカラムに対してコメントを追加すると、データベースが…

Version 1.2.142 (2010-08-31)

アンドロイド上でH2を使用する手順が、Tutorial - Androidに追加されました。 ユーザ定義集約関数内でinformation_schema.function_aliasesにクエリを投げるとArrayIndexOutOfBoundsExceptionが発生していた点を修正 jarファイルが50kb程度小さくなりました…

Version 1.2.141 (2010-08-22)

いつもより若干リリースの期間が空きました。が、変更点は少なめ。自分がバグとしてあげたのが1件直ってた。 実験的な仮の暗号アルゴリズムとして"FOG"が実装された。暗号的には弱いもので、テキストエディタで直接みたら中身が読めない、という程度の意味合…

Version 1.2.140 (2010-07-25)

今回はちょっと多いな、という感じ。キャッシュ周りの処理や、いくつかのパラメータのデフォルト値が改善されています。あと、共通表式(Common table expressions)が実験的ですがサポートされました。既にバグが挙げられている状況なので、まだしばらくは実…

H2 Version 1.2.139 (2010-07-10)

出ました。今回は、ODBCに絡んだ修正がちょっと目新しい感じでした。いくつか気になったものだけ。 Luceneを使用した全文検索が一部のファイルシステム(splitやniomapped)で動作しない不具合の修正。 h2.optimizeOrを有効にした上で、多くのorを含むSQLでUns…

H2 Version 1.2.138 (2010-06-27)

今回もあまり変更点は多くありません。「1.3になったらこれがデフォルト」というのも数多く出てきているのでそろそろ1.3に移行するのかな、とか。そういえば、中国のH2 google groupがなくなってますね。撤退したからなんでしょうが、今回ようやく気がついた…

H2 Version 1.2.137 (2010-06-06)

今回もあまり修正点は多くないようです。個人的には、自分が挙げたissueが3つ入っているので、まってましたと言う感じ。 常にnullを返すネストしたクエリや条件が、IndexOutOfBoundsExceptionを投げる不具合が修正。 実験的な機能として、非常に大きなトラン…

Version 1.2.136 (2010-05-24)

今回はあまり変更点は多くなく、不具合修正などが中心です。 インデックスがある項目絡みの不具合修正がいくつか IS NULL の場合もインデックスが使用されるようになった xxx is nullの際に、indexを使用するようになったようです(h2.optimizeIsNull=falseで…

Version 1.2.135 (2010-05-08)

気になった点をいくつか。 create aliasでschemaを指定できるようになっています。 クラスター周り機能追加がいくつか。 insert XXX values (...), (...)という形式がサポートされた Shell toolで -sql 'sql文' がサポートされた Windows7でサービスに登録で…

linked table, LINK_SCHEMAを試してみた

外部のデータベースのテーブルに対するリンクテーブルを作成できます。下記のSQLで、Oracleのhogedbのstaffテーブルに対して、mystaffというリンクテーブルを作成できます。 java -cp h2-1.2.134.jar;ojdbc14-10.2.0.4.jar org.h2.tools.Shell -url jdbc:h2:…

Version 1.2.134 (2010-04-23)

1.2.134が出ました。今回もこまごまと機能追加が多いリリースになっています。以下気になった点をいくつか。 システムプロパティにh2.analyzeAutoが追加。この行数を超える更新が発生(テーブルごと?)すると、自動でanalyzeが実行される。ただし、現在はデフ…

H2の素敵な関数。FILE_READ

まぁ、別にJavaでできていると言うことを考えれば、それほどどうと言う関数でもないかもしれませんが。FILE_READはその名の通り、ファイルを読み込む関数です。第一引数はファイル名で、ローカルファイル名とURLをサポートしています。第二引数はキャラクタ…

H2でユーザ定義関数/ストアドプロシージャを試してみる2

ユーザー定義関数の返りをテーブル代わりに使ってみます。テーブル代わりに使う場合には、メソッドはResultSetを返すものである事が必要です。それ以外、実装で特に難しいところはありませんが、ユーザ定義関数をテーブルとして扱うときには、少なくとも2回…

H2 Version 1.2.133 (2010-04-10)

リリースされてました。不具合修正がほとんど。機能追加は、LOBストレージメカニズムの新規追加(でもまだ実験中)くらい。

H2でユーザ定義関数/ストアドプロシージャを試してみる

H2では組み込みの関数の他に、ユーザ定義関数/ストアドプロシージャを作る事ができます。Triggerと同様にJavaで実装します。実装の仕方は大きく2通りあります。Triggerの時にやったようなJavaで実装してコンパイルして、H2のクラスパスにそのクラスを入れて…

TRACE_LEVEL_SYSTEM_OUTが面白い

トレースのレベルをかえるだけの設定ですが、思いのほか面白いです。 set TRACE_LEVEL_SYSTEM_OUT 3 こんな味も素っ気もない、エラーメッセージの裏で、 sql> select * from hoge; Error: org.h2.jdbc.JdbcSQLException: テーブル "HOGE" が見つかりません T…