[groonga-dev,02331] Groongaのgrn_proc_get_var_by_offsetをプラグインから呼び出せるようにして欲しい

Back to archive index

Naoya Murakami visio****@gmail*****
2014年 5月 22日 (木) 09:22:47 JST


お世話になっております。村上です。

Groongaの組み込みコマンドやバンドルのプラグインのコマンド
では、コマンドの引数を取得するために、VARというマクロを
使っていると思います。

hhttps://github.com/groonga/groonga/blob/master/lib/proc.c#L54

このVARは、GRN_PROC_GET_VAR_BY_OFFSETのマクロであり、
GRN_PROC_GET_VAR_BY_OFFSETは、grn_proc_get_var_by_offset
のマクロです。

https://github.com/groonga/groonga/blob/master/lib/db.h#L195-L209

このgrn_proc_get_var_by_offsetが外部公開されておらず、
コマンドプラグインからgrn_proc_get_var_by_offsetを呼び
出すことができません。

そこで、groonga/plugin.hとlib/plugin.cに以下を追加して、
grn_plugin_proc_get_var_by_offsetとして外部に公開して
いただけませんか?

https://github.com/groonga/groonga/blob/master/include/groonga/plugin.h#L172

/*
grn_plugin_proc_get_var_by_offset() gets a value from user_data by offset.
*/
GRN_API grn_obj *grn_plugin_proc_get_var_by_offset(grn_ctx *ctx,
grn_user_data *user_data,
                                                   unsigned int offset);

proc_func
https://github.com/groonga/groonga/blob/master/lib/plugin.c#L637

grn_obj *
grn_plugin_proc_get_var_by_offset(grn_ctx *ctx, grn_user_data *user_data,
                                  unsigned int offset)
{
  return grn_proc_get_var_by_offset(ctx, user_data, offset);
}

何らかの理由があってこれが公開できなければ、このAPIを使わずにコマンド
の引数を取得できる方法があれば、教えていただけると嬉しいです。

上記の内容で追加してくれていいよ、ってご判断いただければ、ご指示下さい。
上記の2点で問題なければ、Pull Requestします。
(grn_plugin_proc_allocもないみたいですし、テストとかないですよね?)

ちなみに上記の2点を追加すると以下のサンプルコマンドプラグインはうまく動きました。

https://github.com/naoa/groonga-command-sample/blob/master/commands/echo.c
https://github.com/naoa/groonga-command-sample/blob/master/test/suite/echo.expected

お手数ですがご検討ください。

以上、よろしくお願いします。



groonga-dev メーリングリストの案内
Back to archive index