wanabe
null+****@clear*****
Sat Oct 5 09:35:33 JST 2013
wanabe 2013-10-05 09:35:33 +0900 (Sat, 05 Oct 2013) New Revision: 616130d996f398d98745f27fb9e243da9b1d8102 https://github.com/groonga/groonga/commit/616130d996f398d98745f27fb9e243da9b1d8102 Merged d127d05: Merge pull request #110 from wanabe/scaninfo-with-mruby Message: Add scan_info API - grn_scan_info_put_logical_op() and grn_scan_info_get_arg() Modified files: lib/expr.c lib/expr.h Modified: lib/expr.c (+16 -0) =================================================================== --- lib/expr.c 2013-10-05 09:03:23 +0900 (17046d9) +++ lib/expr.c 2013-10-05 09:35:33 +0900 (ca80385) @@ -3974,6 +3974,13 @@ grn_scan_info_put_index(grn_ctx *ctx, scan_info *si, grn_obj *index, uint32_t si scan_info_put_index(ctx, si, index, sid, weight); } +scan_info ** +grn_scan_info_put_logical_op(grn_ctx *ctx, scan_info **sis, int *ip, + grn_operator op, int start) +{ + return put_logical_op(ctx, sis, ip, op, start); +} + int32_t grn_expr_code_get_weight(grn_ctx *ctx, grn_expr_code *ec) { @@ -4045,6 +4052,15 @@ grn_scan_info_each_arg(grn_ctx *ctx, scan_info *si, } } +grn_obj * +grn_scan_info_get_arg(grn_ctx *ctx, scan_info *si, int i) +{ + if (i >= si->nargs) { + return NULL; + } + return si->args[i]; +} + static scan_info ** scan_info_build(grn_ctx *ctx, grn_obj *expr, int *n, grn_operator op, uint32_t size) Modified: lib/expr.h (+3 -0) =================================================================== --- lib/expr.h 2013-10-05 09:03:23 +0900 (8d68e4a) +++ lib/expr.h 2013-10-05 09:35:33 +0900 (fc1a5b5) @@ -45,6 +45,8 @@ scan_info *grn_scan_info_open(grn_ctx *ctx, int start); void grn_scan_info_close(grn_ctx *ctx, scan_info *si); void grn_scan_info_put_index(grn_ctx *ctx, scan_info *si, grn_obj *index, uint32_t sid, int32_t weight); +scan_info **grn_scan_info_put_logical_op(grn_ctx *ctx, scan_info **sis, int *ip, + grn_operator op, int start); grn_bool grn_scan_info_check_flags(scan_info *si, int flags); void grn_scan_info_reset_flags(scan_info *si, int flags); int grn_scan_info_get_flags(scan_info *si); @@ -57,6 +59,7 @@ void grn_scan_info_set_op(scan_info *si, grn_operator op); void grn_scan_info_set_end(scan_info *si, uint32_t end); void grn_scan_info_set_query(scan_info *si, grn_obj *query); grn_bool grn_scan_info_push_arg(scan_info *si, grn_obj *arg); +grn_obj *grn_scan_info_get_arg(grn_ctx *ctx, scan_info *si, int i); void grn_scan_info_each_arg(grn_ctx *ctx, scan_info *si, grn_scan_info_each_arg_callback callback, void *user_data); -------------- next part -------------- HTML����������������������������... Download