Kouhei Sutou
null+****@clear*****
Sun Jun 8 14:40:55 JST 2014
Kouhei Sutou 2014-06-08 14:40:55 +0900 (Sun, 08 Jun 2014) New Revision: bb97f4fef4c97b251c03439a556799c0b7468a7d https://github.com/groonga/groonga/commit/bb97f4fef4c97b251c03439a556799c0b7468a7d Message: mrb: implement index resolution for db_obj by mruby Added files: lib/mrb/scripts/scan_info.rb Modified files: lib/mrb/mrb_expr.c lib/mrb/scripts/sources.am Modified: lib/mrb/mrb_expr.c (+2 -9) =================================================================== --- lib/mrb/mrb_expr.c 2014-06-08 14:39:33 +0900 (d76db2a) +++ lib/mrb/mrb_expr.c 2014-06-08 14:40:55 +0900 (40fb20c) @@ -358,16 +358,8 @@ scan_info_build(grn_ctx *ctx, grn_obj *expr, int *n, for (k = 0; (arg = grn_scan_info_get_arg(ctx, si, k)) ; k++) { if (GRN_DB_OBJP(*p)) { mrb_value mrb_target; - mrb_value mrb_index_info; mrb_target = grn_mrb_value_from_grn_obj(mrb, *p); - mrb_index_info = mrb_funcall(mrb, mrb_target, "find_index", 1, - mrb_fixnum_value(c->op)); - if (!mrb_nil_p(mrb_index_info)) { - mrb_funcall(mrb, mrb_si, "put_index", 3, - mrb_funcall(mrb, mrb_index_info, "index", 0), - mrb_funcall(mrb, mrb_index_info, "section_id", 0), - mrb_fixnum_value(1)); - } + mrb_funcall(mrb, mrb_si, "resolve_index_db_obj", 1, mrb_target); } else if (GRN_ACCESSORP(*p)) { mrb_value mrb_target; mrb_value mrb_index_info; @@ -560,6 +552,7 @@ grn_mrb_expr_init(grn_ctx *ctx) mrb_define_method(mrb, klass, "weight", mrb_grn_expr_code_get_weight, MRB_ARGS_NONE()); grn_mrb_load(ctx, "expression.rb"); + grn_mrb_load(ctx, "scan_info.rb"); } scan_info ** Added: lib/mrb/scripts/scan_info.rb (+9 -0) 100644 =================================================================== --- /dev/null +++ lib/mrb/scripts/scan_info.rb 2014-06-08 14:40:55 +0900 (a2eaad6) @@ -0,0 +1,9 @@ +module Groonga + class ScanInfo + def resolve_index_db_obj(db_obj) + index_info = db_obj.find_index(op) + return if index_info.nil? + put_index(index_info.index, index_info.section_id, 1) + end + end +end Modified: lib/mrb/scripts/sources.am (+2 -1) =================================================================== --- lib/mrb/scripts/sources.am 2014-06-08 14:39:33 +0900 (0de8bf9) +++ lib/mrb/scripts/sources.am 2014-06-08 14:40:55 +0900 (fb6dea3) @@ -1,3 +1,4 @@ RUBY_SCRIPT_FILES = \ eval_context.rb \ - expression.rb + expression.rb \ + scan_info.rb -------------- next part -------------- HTML����������������������������...Download