Navigation Menu

Skip to content

Commit

Permalink
mrb: move resolving index code to mruby
Browse files Browse the repository at this point in the history
  • Loading branch information
kou committed Jun 8, 2014
1 parent 2e6e3ae commit 273a5fc
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 10 deletions.
3 changes: 3 additions & 0 deletions lib/mrb/mrb_converter.c
Expand Up @@ -37,6 +37,9 @@ grn_mrb_class_from_grn_obj(mrb_state *mrb, grn_obj *object)
case GRN_ACCESSOR :
klass = mrb_class_get_under(mrb, data->module, "Accessor");
break;
case GRN_BULK :
klass = mrb_class_get_under(mrb, data->module, "Bulk");
break;
case GRN_COLUMN_FIX_SIZE :
klass = mrb_class_get_under(mrb, data->module, "FixedSizeColumn");
break;
Expand Down
16 changes: 7 additions & 9 deletions lib/mrb/mrb_expr.c
Expand Up @@ -260,7 +260,9 @@ scan_info_build(grn_ctx *ctx, grn_obj *expr, int *n,
}
}
} else {
mrb_funcall(mrb, mrb_si, "query=", 1, mrb_cptr_value(mrb, *p));
mrb_value mrb_query;
mrb_query = grn_mrb_value_from_grn_obj(mrb, *p);
mrb_funcall(mrb, mrb_si, "query=", 1, mrb_query);
}
}
}
Expand Down Expand Up @@ -356,13 +358,9 @@ scan_info_build(grn_ctx *ctx, grn_obj *expr, int *n,
int k;
grn_obj *arg, **p = &arg;
for (k = 0; (arg = grn_scan_info_get_arg(ctx, si, k)) ; k++) {
if ((*p)->header.type == GRN_BULK) {
mrb_funcall(mrb, mrb_si, "query=", 1, mrb_cptr_value(mrb, *p));
} else {
mrb_value mrb_target;
mrb_target = grn_mrb_value_from_grn_obj(mrb, *p);
mrb_funcall(mrb, mrb_si, "resolve_index", 1, mrb_target);
}
mrb_value mrb_target;
mrb_target = grn_mrb_value_from_grn_obj(mrb, *p);
mrb_funcall(mrb, mrb_si, "resolve_index", 1, mrb_target);
}
}
si = NULL;
Expand Down Expand Up @@ -494,7 +492,7 @@ mrb_grn_scan_info_set_query(mrb_state *mrb, mrb_value self)

mrb_get_args(mrb, "o", &mrb_query);
si = DATA_PTR(self);
grn_scan_info_set_query(si, mrb_cptr(mrb_query));
grn_scan_info_set_query(si, DATA_PTR(mrb_query));
return self;
}

Expand Down
5 changes: 4 additions & 1 deletion lib/mrb/scripts/scan_info.rb
Expand Up @@ -8,8 +8,11 @@ module Flags
end

def resolve_index(object)
if object.is_a?(Accessor)
case object
when Accessor
resolve_index_accessor(object)
when Bulk
self.query = object
else
resolve_index_db_obj(object)
end
Expand Down

0 comments on commit 273a5fc

Please sign in to comment.