[Groonga-commit] groonga/groonga at 616130d [master] Add scan_info API - grn_scan_info_put_logical_op() and grn_scan_info_get_arg()

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index