Kouhei Sutou
kou****@clear*****
2014年 7月 11日 (金) 19:29:12 JST
須藤です。 In <CANM+****@mail*****> "[groonga-dev,02494] Re: 「GROUP BY」条件をmroonga_command()で再現する方法" on Fri, 11 Jul 2014 08:13:51 +0900, Naoya Murakami <visio****@gmail*****> wrote: >> Groongaでできないのはデフォルト値情報を持っておく場所がない >> からです。それを持っていれば、レコード単位で追加するところ、 >> 具体的にはloadコマンドを実行するときに未指定のカラムとnullが >> 指定されたカラムにデフォルト値を入れる、みたいにすればいいは >> ずです。 >> > > この前、grn_hook系を試していたんですけど、grn_obj_add_hookを使えば > grn_obj(カラムでもテーブルでもDBでも)に紐付けてprocだけじゃなく > 値dataも保存できることに気づきました(転置索引はこれを使っている)。 > > http://groonga.org/ja/docs/reference/api/grn_hook.html > > これを使って、カラムに紐付けてデフォルト値を保存しとくってのは、無理 > ですかね? > > プラグインコマンドで試しに、適当にGRN_HOOK_SELECT(enum定義されている > だけでどこにも利用されてないぽい)を追加し、カラムに紐付けて値を保存、 > 取得している例です。 > > https://github.com/naoa/groonga-hook-sample/commit/67c13e1951bd084b3a5b8a702f50cbc484b6b6cd > > 筋のいいやり方でないかもしれませんし、あまり関係がない話だったら > すいません。 うは!こんなことができたんですね! が、これはちょっと。。。 ソースを読んだ人が絶対なんでここに入れてるの!?って思うの で。。。 grn_ra_header(固定長サイズのカラム用のヘッダー)と grn_ja_header(可変長サイズのカラム用のヘッダー)に 入れるのがまっとうだと思います! # raはRectangle Arrayの略で # jaはJagged Arrayの略。 -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> Groongaサポート: http://groonga.org/ja/support/ パッチ採用: http://www.clear-code.com/recruitment/ コードリーダー育成支援: http://www.clear-code.com/services/code-reader/