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

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

2012-01-01から1年間の記事一覧

Version 1.3.170 (2012-11-30)

忘れてたけど一年ぶりくらいにパッチを送ってたのだった。 今回のリリースはIssueからの不具合修正が多いです。リリースノートには挙げられていませんが、MVStoreのベースになるmultiversionmapがメインのソースツリーに入ってきています。 Issue 407: Trigg…

各種パラメータ変更によるH2のパフォーマンスへの影響

せっかくどのようなコードか書いてもらったので、H2でいくつか設定を変更しつつ試してみる。実行環境は以下の通り。 OSX 10.8.2 MacBook 13-inch, Aluminum、Late 2008 2Ghz Intel Core2 Duo 8GB 1333MHz DDR3 HDD WesternDigital 320GB 7200回転 Eclipseか…

各種パラメータ変更によるH2のパフォーマンスへの影響の件続き

元ブログよりも結構速いが、1000万件まで増やすととたんに返ってこなくなった。 と思ったら、そうでもなかった。 jdbc:h2:/Volumes/Macintosh HDD/test/db/h2;CACHE_SIZE=131072;LOG=0;LOCK_MODE=0;UNDO_LOG=0;PAGE_SIZE=32768; H2 1000万件 111.38秒 53.97…

Version 1.3.169 (2012-09-09)

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

Version 1.3.168 (2012-07-13)

うーん... メッセージ"Transaction log could not be truncated"がトランザクションの切り捨てに問題ない場合でも何度か.trace.dbファイルに出力されていた。 新しいシステムプロパティ "h2.serializeJavaObject"(デフォルト: true) これはJavaオブジェクト…

Version 1.3.167 (2012-05-23)

DatabaseEventListener使った事ないんですが、ちょっと面白そう。あと、SCRIPTでテーブルやスキーマで絞り込めるようになったのは結構便利だと思います。 H2 Console: 行を編集した時、空のvarcharカラムがスペース1つに置き換わっていた。 JOOQのドキュメン…

Version 1.3.166 (2012-04-08)

それほど変更点なし。 ページサイズの半分を超えるような大きなサイズのインデックスで不整合を引き起こす事があり、結果、PageBtree.getRowでArrayIndexOutOfBoundsExceptionもしくはPageBtreeLeafにて"Row not found"が発生していた。また、そのようなイン…

Version 1.3.165 (2012-03-18)

細かいけど、使いやすくなるいくつかの改修が含まれています。数値の文字列表現のとか、SUBSTRのとか、ALTER TABLE ADD で複数カラムが一度に追加可能になったとか、UPDATE文でLIMITをサポートとか、CSVTOOLでヘッダなしで出力可能になったとか。 より良い数…

goog-inline-blockとgoog.style.setInlineBlock(element)の違いについて

何の違いがあるんだろう...と思っていたんだけど、goog.style.setInlineBlock(element)はgoog.style.removeInlineBlock(element)がないのに対して、goog.dom.classes.add(element,'goog-inline-block')はgoog.dom.classes.remove(element,'goog-inline-block…

closure-library始める4 uiコンポーネント作ってみた

いやね、Containerのサンプル見たら、HorizontalのコンテナにControlをaddChildする前に、addClassName("goog-inline-block")してて、そこコメントアウトしたら横に並ばず...。 goog.provide('hoge.HBox'); goog.require('goog.ui.Container'); goog.require…

closure-library始める3 uiコンポーネントについての続き

enterDocumentはDOMが作成されて、document上に配置された時に呼ばれる。だから、イベントリスナーを張るのに適した場所だ。その前に、プロパティに、goog.events.EventHandlerを持っておく。 goog.require('goog.events.EventHandler'); //略 hoge.Box = fu…

closure-library始める2 uiコンポーネントについて

まず、コンポーネントを作ってみる。参考。http://code.google.com/p/closure-library/wiki/IntroToComponents参考のページとそのサンプルコードを見ればそれでいいような気もするが、ちょっと簡略化してちょっとずつ確認してみる。 goog.provide('hoge.Box'…

closure-library始める

closure-libraryはgoogleがつくった、gmail等で利用されているライブラリ。かっちり作りこみたい向きのためのライブラリなので、小さい規模の開発には面倒が多い、という感じを受ける。 関連プロダクトであるclosure compilerを使って、最適化して使うことが…

Version 1.3.164 (2012-02-03)

配列型ってちゃんと使った事ないんですけど、便利なのかな。 新しい組み込み関数。ARRAY_CONTAINS 配列の中に指定した値があるか、という関数。 いくつかのデータベースメタデータのメソッドがALLOW_LITERALS NONEの特動作していなかった。 SQLインジェクシ…

Version 1.3.163 (2011-12-30)

今回はあまり強烈な不具合修正はない。 ディスク容量が足りなくなった場合に、後続の書き込み処理が成功すると、データベースの不整合がたびたび発生していた。同様の問題は同種のI/O Exceptionでも発生していた(最初のいくつかの書き込みが失敗したが、後続…

Version 1.3.162 (2011-11-26)

Update文の不具合とか恐ろしいですね。 次のシステムプロパティがサポートされなくなった。h2.allowBigDecimalExtensions, h2.emptyPassword, h2.minColumnNameMap, h2.returnLobObjects, h2.webMaxValueLength. VPNを使っていて、H2サーバーを起動しようと…

Version 1.3.161 (2011-10-28)

全然忘れていたけど、ここでもパッチを取り込んでもらっていた。 Issue 351: MySQL モード: KEYというカラムを持ったテーブルを作成する事が出来ない。また、そのようなテーブルを既に持っているデータベースをオープンできない 再現しないな...。ソースを見…

Version 1.3.160 (2011-09-11)

結構細々不具合あるものですね。 計算列で自分自身を参照できなかった 下記のようにかけなかったようです。 sql> create table hoge (id int, txt varchar); (Update count: 0, 4 ms) sql> alter table hoge alter column id int as id + 1; Error: org.h2.j…

H2で動的SQLを試みる

SQLServerではプロシージャ内で、動的に生成した文字列をEXECでSQLとして実行できるらしい。DB2ではあったか記憶にないですが、Oracleにもあったような気がします。h2では、ストアドファンクション/プロシージャ/トリガーはPL/SQL等ではなく、Javaで記述しま…

Version 1.3.159 (2011-08-13)

先日、h2の既知の不具合を踏みました。こんばんは。意外と綱渡りです。 Transactionalオプションをつけたテンポラリテーブルの新規作成時に、create table文中にインデックスが含まれていた場合、インデックスもトランザクショナルモードで作成されるように…

Version 1.3.158 (2011-07-17)

送ったパッチが取り込まれたリリースだった。CLOB/BLOBを含むデータベースに対する不具合の修正が含まれていますが、この手のは、結構さらっと「データベースがオープンできなくなる不具合の修正」とか書いてあってハラハラする。 全文検索(組込): 全文検索…

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() に識別用の名前が含まれるようになった。 元々含めていたつもりだったよ…