7.26.11. grn_expr#

grn_expr は「式」を表現した grn_obj です。以下は式が何をできるかのリストです。

  • 式は grn_expr_exec() を使うと1つのレコードに複数の操作を適用できます。

  • 式は検索条件を表現できます。 grn_table_select() を使うと、式で表現した検索条件にマッチしたレコードだけを選択できます。

文字列を式で表現する手段は2種類あります。

grn_expr_parse() は式の文字列表現をパースし、パースした式を別の式に追加します。

7.26.11.1. #

TODO...

7.26.11.2. リファレンス#

grn_obj *grn_expr_create(grn_ctx *ctx, const char *name, unsigned int name_size)#
grn_rc grn_expr_close(grn_ctx *ctx, grn_obj *expr)#
grn_obj *grn_expr_add_var(grn_ctx *ctx, grn_obj *expr, const char *name, unsigned int name_size)#
grn_obj *grn_expr_get_var_by_offset(grn_ctx *ctx, grn_obj *expr, unsigned int offset)#
grn_obj *grn_expr_append_obj(grn_ctx *ctx, grn_obj *expr, grn_obj *obj, grn_operator op, int nargs)#
grn_obj *grn_expr_append_const(grn_ctx *ctx, grn_obj *expr, grn_obj *obj, grn_operator op, int nargs)#
grn_obj *grn_expr_append_const_str(grn_ctx *ctx, grn_obj *expr, const char *str, unsigned int str_size, grn_operator op, int nargs)#
grn_obj *grn_expr_append_const_int(grn_ctx *ctx, grn_obj *expr, int i, grn_operator op, int nargs)#
grn_rc grn_expr_append_op(grn_ctx *ctx, grn_obj *expr, grn_operator op, int nargs)#
grn_rc grn_expr_compile(grn_ctx *ctx, grn_obj *expr)#
grn_obj *grn_expr_exec(grn_ctx *ctx, grn_obj *expr, int nargs)#
grn_obj *grn_expr_alloc(grn_ctx *ctx, grn_obj *expr, grn_id domain, grn_obj_flags flags)#