Navigation Menu

Skip to content

Commit

Permalink
mrb: move type check code to mruby
Browse files Browse the repository at this point in the history
  • Loading branch information
kou committed Jun 8, 2014
1 parent 2ca439e commit 12a6b93
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 8 deletions.
12 changes: 4 additions & 8 deletions lib/mrb/mrb_expr.c
Expand Up @@ -356,16 +356,12 @@ 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 (GRN_DB_OBJP(*p)) {
mrb_value mrb_target;
mrb_target = grn_mrb_value_from_grn_obj(mrb, *p);
mrb_funcall(mrb, mrb_si, "resolve_index_db_obj", 1, mrb_target);
} else if (GRN_ACCESSORP(*p)) {
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_accessor", 1, mrb_target);
} else {
mrb_funcall(mrb, mrb_si, "query=", 1, mrb_cptr_value(mrb, *p));
mrb_funcall(mrb, mrb_si, "resolve_index", 1, mrb_target);
}
}
}
Expand Down
9 changes: 9 additions & 0 deletions lib/mrb/scripts/scan_info.rb
Expand Up @@ -7,6 +7,15 @@ module Flags
PRE_CONST = 0x08
end

def resolve_index(object)
if object.is_a?(Accessor)
resolve_index_accessor(object)
else
resolve_index_db_obj(object)
end
end

private
def resolve_index_db_obj(db_obj)
index_info = db_obj.find_index(op)
return if index_info.nil?
Expand Down

0 comments on commit 12a6b93

Please sign in to comment.