[Groonga-commit] groonga/groonga [master] Removed grn_proc_get_info() call from many procs.

アーカイブの一覧に戻る

null+****@clear***** null+****@clear*****
2010年 6月 15日 (火) 00:53:50 JST


Daijiro MORI	2010-06-14 15:53:50 +0000 (Mon, 14 Jun 2010)

  New Revision: f8ca91608603371a3fda5f393ffa90a605abdab5

  Log:
    Removed grn_proc_get_info() call from many procs.

  Modified files:
    lib/proc.c

  Modified: lib/proc.c (+328 -513)
===================================================================
--- lib/proc.c    2010-06-14 14:50:48 +0000 (f0b8195)
+++ lib/proc.c    2010-06-14 15:53:50 +0000 (55e2dd1)
@@ -43,56 +43,46 @@ const char *grn_admin_html_path = NULL;
 static grn_obj *
 proc_select(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars;
-  grn_expr_var *vars;
   grn_content_type ct = ctx->impl->output_type;
   grn_obj *outbuf = ctx->impl->outbuf;
-
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-  if (nvars == 16) {
-    int offset = GRN_TEXT_LEN(VAR(7))
-      ? grn_atoi(GRN_TEXT_VALUE(VAR(7)), GRN_BULK_CURR(VAR(7)), NULL)
-      : 0;
-    int limit = GRN_TEXT_LEN(VAR(8))
-      ? grn_atoi(GRN_TEXT_VALUE(VAR(8)), GRN_BULK_CURR(VAR(8)), NULL)
-      : DEFAULT_LIMIT;
-    char *output_columns = GRN_TEXT_VALUE(VAR(6));
-    uint32_t output_columns_len = GRN_TEXT_LEN(VAR(6));
-    char *drilldown_output_columns = GRN_TEXT_VALUE(VAR(11));
-    uint32_t drilldown_output_columns_len = GRN_TEXT_LEN(VAR(11));
-    int drilldown_offset = GRN_TEXT_LEN(VAR(12))
-      ? grn_atoi(GRN_TEXT_VALUE(VAR(12)), GRN_BULK_CURR(VAR(12)), NULL)
-      : 0;
-    int drilldown_limit = GRN_TEXT_LEN(VAR(13))
-      ? grn_atoi(GRN_TEXT_VALUE(VAR(13)), GRN_BULK_CURR(VAR(13)), NULL)
-      : DEFAULT_DRILLDOWN_LIMIT;
-    if (!output_columns_len) {
-      output_columns = DEFAULT_OUTPUT_COLUMNS;
-      output_columns_len = strlen(DEFAULT_OUTPUT_COLUMNS);
-    }
-    if (!drilldown_output_columns_len) {
-      drilldown_output_columns = DEFAULT_DRILLDOWN_OUTPUT_COLUMNS;
-      drilldown_output_columns_len = strlen(DEFAULT_DRILLDOWN_OUTPUT_COLUMNS);
-    }
-
-    if (grn_select(ctx, outbuf, ct,
-                   GRN_TEXT_VALUE(VAR(0)), GRN_TEXT_LEN(VAR(0)),
-                   GRN_TEXT_VALUE(VAR(1)), GRN_TEXT_LEN(VAR(1)),
-                   GRN_TEXT_VALUE(VAR(2)), GRN_TEXT_LEN(VAR(2)),
-                   GRN_TEXT_VALUE(VAR(3)), GRN_TEXT_LEN(VAR(3)),
-                   GRN_TEXT_VALUE(VAR(4)), GRN_TEXT_LEN(VAR(4)),
-                   GRN_TEXT_VALUE(VAR(5)), GRN_TEXT_LEN(VAR(5)),
-                   output_columns, output_columns_len,
-                   offset, limit,
-                   GRN_TEXT_VALUE(VAR(9)), GRN_TEXT_LEN(VAR(9)),
-                   GRN_TEXT_VALUE(VAR(10)), GRN_TEXT_LEN(VAR(10)),
-                   drilldown_output_columns, drilldown_output_columns_len,
-                   drilldown_offset, drilldown_limit,
-                   GRN_TEXT_VALUE(VAR(14)), GRN_TEXT_LEN(VAR(14)))) {
-    }
-  } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 15);
+  int offset = GRN_TEXT_LEN(VAR(7))
+    ? grn_atoi(GRN_TEXT_VALUE(VAR(7)), GRN_BULK_CURR(VAR(7)), NULL)
+    : 0;
+  int limit = GRN_TEXT_LEN(VAR(8))
+    ? grn_atoi(GRN_TEXT_VALUE(VAR(8)), GRN_BULK_CURR(VAR(8)), NULL)
+    : DEFAULT_LIMIT;
+  char *output_columns = GRN_TEXT_VALUE(VAR(6));
+  uint32_t output_columns_len = GRN_TEXT_LEN(VAR(6));
+  char *drilldown_output_columns = GRN_TEXT_VALUE(VAR(11));
+  uint32_t drilldown_output_columns_len = GRN_TEXT_LEN(VAR(11));
+  int drilldown_offset = GRN_TEXT_LEN(VAR(12))
+    ? grn_atoi(GRN_TEXT_VALUE(VAR(12)), GRN_BULK_CURR(VAR(12)), NULL)
+    : 0;
+  int drilldown_limit = GRN_TEXT_LEN(VAR(13))
+    ? grn_atoi(GRN_TEXT_VALUE(VAR(13)), GRN_BULK_CURR(VAR(13)), NULL)
+    : DEFAULT_DRILLDOWN_LIMIT;
+  if (!output_columns_len) {
+    output_columns = DEFAULT_OUTPUT_COLUMNS;
+    output_columns_len = strlen(DEFAULT_OUTPUT_COLUMNS);
+  }
+  if (!drilldown_output_columns_len) {
+    drilldown_output_columns = DEFAULT_DRILLDOWN_OUTPUT_COLUMNS;
+    drilldown_output_columns_len = strlen(DEFAULT_DRILLDOWN_OUTPUT_COLUMNS);
+  }
+  if (grn_select(ctx, outbuf, ct,
+                 GRN_TEXT_VALUE(VAR(0)), GRN_TEXT_LEN(VAR(0)),
+                 GRN_TEXT_VALUE(VAR(1)), GRN_TEXT_LEN(VAR(1)),
+                 GRN_TEXT_VALUE(VAR(2)), GRN_TEXT_LEN(VAR(2)),
+                 GRN_TEXT_VALUE(VAR(3)), GRN_TEXT_LEN(VAR(3)),
+                 GRN_TEXT_VALUE(VAR(4)), GRN_TEXT_LEN(VAR(4)),
+                 GRN_TEXT_VALUE(VAR(5)), GRN_TEXT_LEN(VAR(5)),
+                 output_columns, output_columns_len,
+                 offset, limit,
+                 GRN_TEXT_VALUE(VAR(9)), GRN_TEXT_LEN(VAR(9)),
+                 GRN_TEXT_VALUE(VAR(10)), GRN_TEXT_LEN(VAR(10)),
+                 drilldown_output_columns, drilldown_output_columns_len,
+                 drilldown_offset, drilldown_limit,
+                 GRN_TEXT_VALUE(VAR(14)), GRN_TEXT_LEN(VAR(14)))) {
   }
   return NULL;
 }
@@ -139,8 +129,6 @@ proc_load(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
       }
       /* maybe necessary : grn_ctx_loader_clear(ctx); */
     }
-  } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 6);
   }
   return NULL;
 }
@@ -148,41 +136,31 @@ proc_load(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 static grn_obj *
 proc_status(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars;
-  grn_expr_var *vars;
   grn_content_type ct = ctx->impl->output_type;
   grn_obj *outbuf = ctx->impl->outbuf;
-
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-  if (nvars == 1) {
-    grn_timeval now;
-    grn_timeval_now(ctx, &now);
-
-    switch (ct) {
-    case GRN_CONTENT_TSV:
-      /* TODO: implement */
-      break;
-    case GRN_CONTENT_JSON:
-      {
-        GRN_TEXT_PUTS(ctx, outbuf, "{\"alloc_count\":");
-        grn_text_itoa(ctx, outbuf, grn_alloc_count());
-        GRN_TEXT_PUTS(ctx, outbuf, ",\"starttime\":");
-        grn_text_itoa(ctx, outbuf, grn_starttime.tv_sec);
-        GRN_TEXT_PUTS(ctx, outbuf, ",\"uptime\":");
-        grn_text_itoa(ctx, outbuf, now.tv_sec - grn_starttime.tv_sec);
-        GRN_TEXT_PUTS(ctx, outbuf, ",\"version\":\"");
-        GRN_TEXT_PUTS(ctx, outbuf, grn_get_version());
-        GRN_TEXT_PUTC(ctx, outbuf, '"');
-        GRN_TEXT_PUTC(ctx, outbuf, '}');
-      }
-      break;
-    case GRN_CONTENT_XML:
-    case GRN_CONTENT_NONE:
-      break;
+  grn_timeval now;
+  grn_timeval_now(ctx, &now);
+  switch (ct) {
+  case GRN_CONTENT_TSV:
+    /* TODO: implement */
+    break;
+  case GRN_CONTENT_JSON:
+    {
+      GRN_TEXT_PUTS(ctx, outbuf, "{\"alloc_count\":");
+      grn_text_itoa(ctx, outbuf, grn_alloc_count());
+      GRN_TEXT_PUTS(ctx, outbuf, ",\"starttime\":");
+      grn_text_itoa(ctx, outbuf, grn_starttime.tv_sec);
+      GRN_TEXT_PUTS(ctx, outbuf, ",\"uptime\":");
+      grn_text_itoa(ctx, outbuf, now.tv_sec - grn_starttime.tv_sec);
+      GRN_TEXT_PUTS(ctx, outbuf, ",\"version\":\"");
+      GRN_TEXT_PUTS(ctx, outbuf, grn_get_version());
+      GRN_TEXT_PUTC(ctx, outbuf, '"');
+      GRN_TEXT_PUTC(ctx, outbuf, '}');
     }
-  } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 1);
+    break;
+  case GRN_CONTENT_XML:
+  case GRN_CONTENT_NONE:
+    break;
   }
   return NULL;
 }
@@ -329,45 +307,36 @@ grn_column_create_flags_to_text(grn_ctx *ctx, grn_obj *buf, grn_obj_flags flags)
 static grn_obj *
 proc_table_create(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars;
-  grn_expr_var *vars;
-
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-  if (nvars == 6) {
-    grn_obj *table;
-    const char *rest;
-    grn_obj_flags flags = grn_atoi(GRN_TEXT_VALUE(VAR(1)),
-                                   GRN_BULK_CURR(VAR(1)), &rest);
-    if (GRN_TEXT_VALUE(VAR(1)) == rest) {
-      flags = grn_parse_table_create_flags(ctx, GRN_TEXT_VALUE(VAR(1)),
-                                           GRN_BULK_CURR(VAR(1)));
-      if (ctx->rc) {
-        return NULL;
-      }
+  grn_obj *table;
+  const char *rest;
+  grn_obj_flags flags = grn_atoi(GRN_TEXT_VALUE(VAR(1)),
+                                 GRN_BULK_CURR(VAR(1)), &rest);
+  if (GRN_TEXT_VALUE(VAR(1)) == rest) {
+    flags = grn_parse_table_create_flags(ctx, GRN_TEXT_VALUE(VAR(1)),
+                                         GRN_BULK_CURR(VAR(1)));
+    if (ctx->rc) {
+      return NULL;
     }
-    if (GRN_TEXT_LEN(VAR(0))) {
-      flags |= GRN_OBJ_PERSISTENT;
-      table = grn_table_create(ctx,
-                               GRN_TEXT_VALUE(VAR(0)),
-                               GRN_TEXT_LEN(VAR(0)),
-                               NULL, flags,
-                               grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(2)),
-                                           GRN_TEXT_LEN(VAR(2))),
-                               grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(3)),
-                                           GRN_TEXT_LEN(VAR(3))));
-      if (table) {
-        grn_obj_set_info(ctx, table,
-                         GRN_INFO_DEFAULT_TOKENIZER,
-                         grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(4)),
-                                     GRN_TEXT_LEN(VAR(4))));
-        grn_obj_unlink(ctx, table);
-      }
-    } else {
-      ERR(GRN_INVALID_ARGUMENT, "should not create anonymous table");
+  }
+  if (GRN_TEXT_LEN(VAR(0))) {
+    flags |= GRN_OBJ_PERSISTENT;
+    table = grn_table_create(ctx,
+                             GRN_TEXT_VALUE(VAR(0)),
+                             GRN_TEXT_LEN(VAR(0)),
+                             NULL, flags,
+                             grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(2)),
+                                         GRN_TEXT_LEN(VAR(2))),
+                             grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(3)),
+                                         GRN_TEXT_LEN(VAR(3))));
+    if (table) {
+      grn_obj_set_info(ctx, table,
+                       GRN_INFO_DEFAULT_TOKENIZER,
+                       grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(4)),
+                                   GRN_TEXT_LEN(VAR(4))));
+      grn_obj_unlink(ctx, table);
     }
   } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 6);
+    ERR(GRN_INVALID_ARGUMENT, "should not create anonymous table");
   }
   return NULL;
 }
@@ -375,24 +344,13 @@ proc_table_create(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_d
 static grn_obj *
 proc_table_remove(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars;
-  grn_expr_var *vars;
-
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-  if (nvars == 2) {
-    grn_obj *table;
-
-    table = grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(0)),
-                             GRN_TEXT_LEN(VAR(0)));
-
-    if (table) {
-      grn_obj_remove(ctx,table);
-    } else {
-      ERR(GRN_INVALID_ARGUMENT, "table not found.");
-    }
+  grn_obj *table;
+  table = grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(0)),
+                           GRN_TEXT_LEN(VAR(0)));
+  if (table) {
+    grn_obj_remove(ctx,table);
   } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 2);
+    ERR(GRN_INVALID_ARGUMENT, "table not found.");
   }
   return NULL;
 }
@@ -400,104 +358,85 @@ proc_table_remove(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_d
 static grn_obj *
 proc_column_create(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars;
-  grn_expr_var *vars;
-
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-  if (nvars == 6) {
-    grn_obj *column, *table, *type;
-    const char *rest;
-    grn_obj_flags flags = grn_atoi(GRN_TEXT_VALUE(VAR(2)),
-                                   GRN_BULK_CURR(VAR(2)), &rest);
-    if (GRN_TEXT_VALUE(VAR(2)) == rest) {
-      flags = grn_parse_column_create_flags(ctx, GRN_TEXT_VALUE(VAR(2)),
-                                            GRN_BULK_CURR(VAR(2)));
-      if (ctx->rc) {
-        return NULL;
-      }
+  grn_obj *column, *table, *type;
+  const char *rest;
+  grn_obj_flags flags = grn_atoi(GRN_TEXT_VALUE(VAR(2)),
+                                 GRN_BULK_CURR(VAR(2)), &rest);
+  if (GRN_TEXT_VALUE(VAR(2)) == rest) {
+    flags = grn_parse_column_create_flags(ctx, GRN_TEXT_VALUE(VAR(2)),
+                                          GRN_BULK_CURR(VAR(2)));
+    if (ctx->rc) {
+      return NULL;
     }
-    table = grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(0)),
-                        GRN_TEXT_LEN(VAR(0)));
-    type = grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(3)),
-                       GRN_TEXT_LEN(VAR(3)));
-    if (GRN_TEXT_LEN(VAR(1))) { flags |= GRN_OBJ_PERSISTENT; }
-    column = grn_column_create(ctx, table,
-                               GRN_TEXT_VALUE(VAR(1)),
-                               GRN_TEXT_LEN(VAR(1)),
-                               NULL, flags, type);
-    if (column) {
-      if (GRN_TEXT_LEN(VAR(4))) {
-        grn_obj sources, source_ids, **p, **pe;
-        GRN_PTR_INIT(&sources, GRN_OBJ_VECTOR, GRN_ID_NIL);
-        GRN_UINT32_INIT(&source_ids, GRN_OBJ_VECTOR);
-        grn_obj_columns(ctx, type,
-                        GRN_TEXT_VALUE(VAR(4)),
-                        GRN_TEXT_LEN(VAR(4)),
-                        &sources);
-        p = (grn_obj **)GRN_BULK_HEAD(&sources);
-        pe = (grn_obj **)GRN_BULK_CURR(&sources);
-        for (; p < pe; p++) {
-          grn_id source_id = grn_obj_id(ctx, *p);
-          if ((*p)->header.type == GRN_ACCESSOR) {
-            /* todo : if "_key" assigned */
-            source_id = grn_obj_id(ctx, type);
-          }
-          if (source_id) {
-            GRN_UINT32_PUT(ctx, &source_ids, source_id);
-          }
-          grn_obj_unlink(ctx, *p);
+  }
+  table = grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(0)),
+                      GRN_TEXT_LEN(VAR(0)));
+  type = grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(3)),
+                     GRN_TEXT_LEN(VAR(3)));
+  if (GRN_TEXT_LEN(VAR(1))) { flags |= GRN_OBJ_PERSISTENT; }
+  column = grn_column_create(ctx, table,
+                             GRN_TEXT_VALUE(VAR(1)),
+                             GRN_TEXT_LEN(VAR(1)),
+                             NULL, flags, type);
+  if (column) {
+    if (GRN_TEXT_LEN(VAR(4))) {
+      grn_obj sources, source_ids, **p, **pe;
+      GRN_PTR_INIT(&sources, GRN_OBJ_VECTOR, GRN_ID_NIL);
+      GRN_UINT32_INIT(&source_ids, GRN_OBJ_VECTOR);
+      grn_obj_columns(ctx, type,
+                      GRN_TEXT_VALUE(VAR(4)),
+                      GRN_TEXT_LEN(VAR(4)),
+                      &sources);
+      p = (grn_obj **)GRN_BULK_HEAD(&sources);
+      pe = (grn_obj **)GRN_BULK_CURR(&sources);
+      for (; p < pe; p++) {
+        grn_id source_id = grn_obj_id(ctx, *p);
+        if ((*p)->header.type == GRN_ACCESSOR) {
+          /* todo : if "_key" assigned */
+          source_id = grn_obj_id(ctx, type);
         }
-        if (GRN_BULK_VSIZE(&source_ids)) {
-          grn_obj_set_info(ctx, column, GRN_INFO_SOURCE, &source_ids);
+        if (source_id) {
+          GRN_UINT32_PUT(ctx, &source_ids, source_id);
         }
-        GRN_OBJ_FIN(ctx, &source_ids);
-        GRN_OBJ_FIN(ctx, &sources);
+        grn_obj_unlink(ctx, *p);
       }
-      grn_obj_unlink(ctx, column);
+      if (GRN_BULK_VSIZE(&source_ids)) {
+        grn_obj_set_info(ctx, column, GRN_INFO_SOURCE, &source_ids);
+      }
+      GRN_OBJ_FIN(ctx, &source_ids);
+      GRN_OBJ_FIN(ctx, &sources);
     }
-  } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 6);
+    grn_obj_unlink(ctx, column);
   }
   return NULL;
 }
 
-
 static grn_obj *
 proc_column_remove(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars;
-  grn_expr_var *vars;
-
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-  if (nvars == 3) {
-    grn_obj *table, *col;
-    char *colname,fullname[GRN_TABLE_MAX_KEY_SIZE];
-    unsigned colname_len,fullname_len;
-
-    table = grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(0)),
-                             GRN_TEXT_LEN(VAR(0)));
-
-    colname = GRN_TEXT_VALUE(VAR(1));
-    colname_len = GRN_TEXT_LEN(VAR(1));
-
-    if ((fullname_len = grn_obj_name(ctx, table, fullname, GRN_TABLE_MAX_KEY_SIZE))) {
-      fullname[fullname_len] = GRN_DB_DELIMITER;
-      memcpy((fullname + fullname_len + 1), colname, colname_len);
-      fullname_len += colname_len + 1;
-      //TODO:check fullname_len < GRN_TABLE_MAX_KEY_SIZE
-      col = grn_ctx_get(ctx, fullname, fullname_len);
-      if (col) {
-        grn_obj_remove(ctx, col);
-      } else {
-        ERR(GRN_INVALID_ARGUMENT, "column not found.");
-      }
+  grn_obj *table, *col;
+  char *colname,fullname[GRN_TABLE_MAX_KEY_SIZE];
+  unsigned colname_len,fullname_len;
+
+  table = grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(0)),
+                           GRN_TEXT_LEN(VAR(0)));
+
+  colname = GRN_TEXT_VALUE(VAR(1));
+  colname_len = GRN_TEXT_LEN(VAR(1));
+
+  if ((fullname_len = grn_obj_name(ctx, table, fullname, GRN_TABLE_MAX_KEY_SIZE))) {
+    fullname[fullname_len] = GRN_DB_DELIMITER;
+    memcpy((fullname + fullname_len + 1), colname, colname_len);
+    fullname_len += colname_len + 1;
+    //TODO:check fullname_len < GRN_TABLE_MAX_KEY_SIZE
+    col = grn_ctx_get(ctx, fullname, fullname_len);
+    if (col) {
+      grn_obj_remove(ctx, col);
     } else {
-      ERR(GRN_INVALID_ARGUMENT, "table not found.");
+      ERR(GRN_INVALID_ARGUMENT, "column not found.");
     }
   } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 3);
+    ERR(GRN_INVALID_ARGUMENT, "table not found.");
   }
   return NULL;
 }
@@ -700,67 +639,55 @@ print_tableinfo(grn_ctx *ctx, grn_obj *table, grn_obj *buf, grn_content_type oty
 static grn_obj *
 proc_column_list(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars;
-  grn_expr_var *vars;
   grn_content_type ct = ctx->impl->output_type;
   grn_obj *outbuf = ctx->impl->outbuf;
+  grn_obj *table;
+  if ((table = grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(0)),
+                           GRN_TEXT_LEN(VAR(0))))) {
+    grn_hash *cols;
+    if ((cols = grn_hash_create(ctx, NULL, sizeof(grn_id), 0,
+                                GRN_OBJ_TABLE_HASH_KEY|GRN_HASH_TINY))) {
+      if (grn_table_columns(ctx, table, NULL, 0, (grn_obj *)cols) >= 0) {
+        grn_id *key;
+        char line_delimiter, column_delimiter;
+
+        switch (ct) {
+        case GRN_CONTENT_TSV:
+          line_delimiter = '\n';
+          column_delimiter = '\t';
+          GRN_TEXT_PUTS(ctx, outbuf, "id\tname\tpath\ttype\tflags\tdomain\trange");
+          break;
+        case GRN_CONTENT_JSON:
+          line_delimiter = ',';
+          column_delimiter = ',';
+          GRN_TEXT_PUTS(ctx, outbuf, "[[[\"id\", \"UInt32\"],[\"name\",\"ShortText\"],[\"path\",\"ShortText\"],[\"type\",\"ShortText\"],[\"flags\",\"ShortText\"],[\"domain\", \"ShortText\"],[\"range\", \"ShortText\"],[\"source\",\"ShortText\"]]");
+          break;
+        case GRN_CONTENT_XML:
+        case GRN_CONTENT_NONE:
+          break;
+        }
 
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-  if (nvars == 2) {
-    grn_obj *table;
-
-    grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-    if ((table = grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(0)),
-                             GRN_TEXT_LEN(VAR(0))))) {
-      grn_hash *cols;
-      if ((cols = grn_hash_create(ctx, NULL, sizeof(grn_id), 0,
-                                  GRN_OBJ_TABLE_HASH_KEY|GRN_HASH_TINY))) {
-        if (grn_table_columns(ctx, table, NULL, 0, (grn_obj *)cols) >= 0) {
-          grn_id *key;
-          char line_delimiter, column_delimiter;
-
-          switch (ct) {
-          case GRN_CONTENT_TSV:
-            line_delimiter = '\n';
-            column_delimiter = '\t';
-            GRN_TEXT_PUTS(ctx, outbuf, "id\tname\tpath\ttype\tflags\tdomain\trange");
-            break;
-          case GRN_CONTENT_JSON:
-            line_delimiter = ',';
-            column_delimiter = ',';
-            GRN_TEXT_PUTS(ctx, outbuf, "[[[\"id\", \"UInt32\"],[\"name\",\"ShortText\"],[\"path\",\"ShortText\"],[\"type\",\"ShortText\"],[\"flags\",\"ShortText\"],[\"domain\", \"ShortText\"],[\"range\", \"ShortText\"],[\"source\",\"ShortText\"]]");
-            break;
-          case GRN_CONTENT_XML:
-          case GRN_CONTENT_NONE:
-            break;
-          }
-
-          GRN_HASH_EACH(ctx, cols, id, &key, NULL, NULL, {
-            grn_obj *col;
-            if ((col = grn_ctx_at(ctx, *key))) {
-              GRN_TEXT_PUTC(ctx, outbuf, line_delimiter);
-              if (!print_columninfo(ctx, col, outbuf, ct)) {
-                grn_bulk_truncate(ctx, outbuf, GRN_BULK_VSIZE(outbuf) - 1);
-              }
-              grn_obj_unlink(ctx, col);
+        GRN_HASH_EACH(ctx, cols, id, &key, NULL, NULL, {
+          grn_obj *col;
+          if ((col = grn_ctx_at(ctx, *key))) {
+            GRN_TEXT_PUTC(ctx, outbuf, line_delimiter);
+            if (!print_columninfo(ctx, col, outbuf, ct)) {
+              grn_bulk_truncate(ctx, outbuf, GRN_BULK_VSIZE(outbuf) - 1);
             }
-          });
-          if (ct == GRN_CONTENT_JSON) {
-            GRN_TEXT_PUTC(ctx, outbuf, ']');
+            grn_obj_unlink(ctx, col);
           }
+        });
+        if (ct == GRN_CONTENT_JSON) {
+          GRN_TEXT_PUTC(ctx, outbuf, ']');
         }
-        grn_hash_close(ctx, cols);
       }
-      grn_obj_unlink(ctx, table);
-    } else {
-      ERR(GRN_INVALID_ARGUMENT, "table '%.*s' is not exist.",
-        GRN_TEXT_LEN(VAR(0)),
-        GRN_TEXT_VALUE(VAR(0)));
+      grn_hash_close(ctx, cols);
     }
+    grn_obj_unlink(ctx, table);
   } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 2);
+    ERR(GRN_INVALID_ARGUMENT, "table '%.*s' is not exist.",
+      GRN_TEXT_LEN(VAR(0)),
+      GRN_TEXT_VALUE(VAR(0)));
   }
   return NULL;
 }
@@ -768,55 +695,43 @@ proc_column_list(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_da
 static grn_obj *
 proc_table_list(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars;
-  grn_expr_var *vars;
   grn_content_type ct = ctx->impl->output_type;
   grn_obj *outbuf = ctx->impl->outbuf;
+  grn_table_cursor *cur;
 
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-  if (nvars == 1) {
-    grn_table_cursor *cur;
-
-    if ((cur = grn_table_cursor_open(ctx, ctx->impl->db, NULL, 0, NULL, 0, 0, -1, 0))) {
-      grn_id id;
-      char line_delimiter, column_delimiter;
-
-      grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-      switch (ct) {
-      case GRN_CONTENT_TSV:
-        line_delimiter = '\n';
-        column_delimiter = '\t';
-        GRN_TEXT_PUTS(ctx, outbuf, "id\tname\tpath\tflags\tdomain\trange");
-        break;
-      case GRN_CONTENT_JSON:
-        line_delimiter = ',';
-        column_delimiter = ',';
-        GRN_TEXT_PUTS(ctx, outbuf, "[[[\"id\", \"UInt32\"],[\"name\",\"ShortText\"],[\"path\",\"ShortText\"],[\"flags\",\"ShortText\"],[\"domain\", \"ShortText\"],[\"range\",\"ShortText\"]]");
-        break;
-      case GRN_CONTENT_XML:
-      case GRN_CONTENT_NONE:
-        break;
-      }
-      while ((id = grn_table_cursor_next(ctx, cur)) != GRN_ID_NIL) {
-        grn_obj *o;
+  if ((cur = grn_table_cursor_open(ctx, ctx->impl->db, NULL, 0, NULL, 0, 0, -1, 0))) {
+    grn_id id;
+    char line_delimiter, column_delimiter;
+    switch (ct) {
+    case GRN_CONTENT_TSV:
+      line_delimiter = '\n';
+      column_delimiter = '\t';
+      GRN_TEXT_PUTS(ctx, outbuf, "id\tname\tpath\tflags\tdomain\trange");
+      break;
+    case GRN_CONTENT_JSON:
+      line_delimiter = ',';
+      column_delimiter = ',';
+      GRN_TEXT_PUTS(ctx, outbuf, "[[[\"id\", \"UInt32\"],[\"name\",\"ShortText\"],[\"path\",\"ShortText\"],[\"flags\",\"ShortText\"],[\"domain\", \"ShortText\"],[\"range\",\"ShortText\"]]");
+      break;
+    case GRN_CONTENT_XML:
+    case GRN_CONTENT_NONE:
+      break;
+    }
+    while ((id = grn_table_cursor_next(ctx, cur)) != GRN_ID_NIL) {
+      grn_obj *o;
 
-        if ((o = grn_ctx_at(ctx, id))) {
-          GRN_TEXT_PUTC(ctx, outbuf, line_delimiter);
-          if (!print_tableinfo(ctx, o, outbuf, ct)) {
-            grn_bulk_truncate(ctx, outbuf, GRN_BULK_VSIZE(outbuf) - 1);
-          }
-          grn_obj_unlink(ctx, o);
+      if ((o = grn_ctx_at(ctx, id))) {
+        GRN_TEXT_PUTC(ctx, outbuf, line_delimiter);
+        if (!print_tableinfo(ctx, o, outbuf, ct)) {
+          grn_bulk_truncate(ctx, outbuf, GRN_BULK_VSIZE(outbuf) - 1);
         }
+        grn_obj_unlink(ctx, o);
       }
-      if (ct == GRN_CONTENT_JSON) {
-        GRN_TEXT_PUTC(ctx, outbuf, ']');
-      }
-      grn_table_cursor_close(ctx, cur);
     }
-  } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 1);
+    if (ct == GRN_CONTENT_JSON) {
+      GRN_TEXT_PUTC(ctx, outbuf, ']');
+    }
+    grn_table_cursor_close(ctx, cur);
   }
   return NULL;
 }
@@ -870,9 +785,8 @@ exit :
 static grn_obj *
 proc_missing(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars, plen;
+  uint32_t plen;
   grn_obj *outbuf = ctx->impl->outbuf;
-  grn_expr_var *vars;
   static int grn_admin_html_path_len = -1;
   if (!grn_admin_html_path) { return NULL; }
   if (grn_admin_html_path_len < 0) {
@@ -883,9 +797,7 @@ proc_missing(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
     grn_admin_html_path_len = (int)l;
     if (l > 0 && grn_admin_html_path[l - 1] == PATH_SEPARATOR[0]) { grn_admin_html_path_len--; }
   }
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-  if (nvars == 2 &&
-      (plen = GRN_TEXT_LEN(VAR(0))) + grn_admin_html_path_len < PATH_MAX) {
+  if ((plen = GRN_TEXT_LEN(VAR(0))) + grn_admin_html_path_len < PATH_MAX) {
     char path[PATH_MAX];
     memcpy(path, grn_admin_html_path, grn_admin_html_path_len);
     path[grn_admin_html_path_len] = PATH_SEPARATOR[0];
@@ -895,8 +807,6 @@ proc_missing(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
                                path + grn_admin_html_path_len + 1,
                                PATH_MAX - grn_admin_html_path_len - 1);
     grn_bulk_put_from_file(ctx, outbuf, path);
-  } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 2);
   }
   return NULL;
 }
@@ -904,55 +814,28 @@ proc_missing(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 static grn_obj *
 proc_view_add(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars;
-  grn_expr_var *vars;
-
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-  if (nvars == 3) {
-    grn_obj *view = grn_ctx_get(ctx,
-                                GRN_TEXT_VALUE(VAR(0)),
-                                GRN_TEXT_LEN(VAR(0)));
-    grn_obj *table = grn_ctx_get(ctx,
-                                GRN_TEXT_VALUE(VAR(1)),
-                                GRN_TEXT_LEN(VAR(1)));
-    grn_view_add(ctx, view, table);
-  } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 3);
-  }
+  grn_obj *view = grn_ctx_get(ctx,
+                              GRN_TEXT_VALUE(VAR(0)),
+                              GRN_TEXT_LEN(VAR(0)));
+  grn_obj *table = grn_ctx_get(ctx,
+                              GRN_TEXT_VALUE(VAR(1)),
+                              GRN_TEXT_LEN(VAR(1)));
+  grn_view_add(ctx, view, table);
   return NULL;
 }
 
 static grn_obj *
 proc_quit(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars;
-  grn_expr_var *vars;
-
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-  if (nvars == 1) {
-    ctx->stat = GRN_CTX_QUITTING;
-  } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 1);
-  }
+  ctx->stat = GRN_CTX_QUITTING;
   return NULL;
 }
 
 static grn_obj *
 proc_shutdown(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars;
-  grn_expr_var *vars;
-
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-  if (nvars == 1) {
-    grn_gctx.stat = GRN_CTX_QUIT;
-    ctx->stat = GRN_CTX_QUITTING;
-  } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 1);
-  }
+  grn_gctx.stat = GRN_CTX_QUIT;
+  ctx->stat = GRN_CTX_QUITTING;
   return NULL;
 }
 
@@ -960,28 +843,19 @@ static grn_obj *
 proc_clearlock(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
   int olen;
-  uint32_t nvars;
-  grn_expr_var *vars;
   grn_obj *obj;
+  olen = GRN_TEXT_LEN(VAR(0));
 
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-  if (nvars == 2) {
-    olen = GRN_TEXT_LEN(VAR(0));
-
-    if (olen) {
-      obj = grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(0)), olen);
-    } else {
-      obj = ctx->impl->db;
-    }
+  if (olen) {
+    obj = grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(0)), olen);
+  } else {
+    obj = ctx->impl->db;
+  }
 
-    if (obj) {
-      grn_obj_clear_lock(ctx, obj);
-    } else {
-      ERR(GRN_INVALID_ARGUMENT, "clear object not found");
-    }
+  if (obj) {
+    grn_obj_clear_lock(ctx, obj);
   } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 2);
+    ERR(GRN_INVALID_ARGUMENT, "clear object not found");
   }
   return NULL;
 }
@@ -993,25 +867,16 @@ static grn_logger_info info;
 static grn_obj *
 proc_log_level(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars;
-  grn_expr_var *vars;
-
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-  if (nvars == 2) {
-    char *p;
-    if (GRN_TEXT_LEN(VAR(0)) &&
-        (p = strchr(slev, GRN_TEXT_VALUE(VAR(0))[0]))) {
-      info.max_level = (int)(p - slev);
-      info.flags = GRN_LOG_TIME|GRN_LOG_MESSAGE;
-      info.func = NULL;
-      info.func_arg = NULL;
-      grn_logger_info_set(ctx, &info);
-    } else {
-      ERR(GRN_INVALID_ARGUMENT, "invalid log level.");
-    }
+  char *p;
+  if (GRN_TEXT_LEN(VAR(0)) &&
+      (p = strchr(slev, GRN_TEXT_VALUE(VAR(0))[0]))) {
+    info.max_level = (int)(p - slev);
+    info.flags = GRN_LOG_TIME|GRN_LOG_MESSAGE;
+    info.func = NULL;
+    info.func_arg = NULL;
+    grn_logger_info_set(ctx, &info);
   } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 2);
+    ERR(GRN_INVALID_ARGUMENT, "invalid log level.");
   }
   return NULL;
 }
@@ -1019,22 +884,13 @@ proc_log_level(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data
 static grn_obj *
 proc_log_put(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars;
-  grn_expr_var *vars;
-
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-  if (nvars == 3) {
-    char *p;
-    if (GRN_TEXT_LEN(VAR(0)) &&
-        (p = strchr(slev, GRN_TEXT_VALUE(VAR(0))[0]))) {
-      GRN_TEXT_PUTC(ctx, VAR(1), '\0');
-      GRN_LOG(ctx, (int)(p - slev), "%s", GRN_TEXT_VALUE(VAR(1)));
-    } else {
-      ERR(GRN_INVALID_ARGUMENT, "invalid log level.");
-    }
+  char *p;
+  if (GRN_TEXT_LEN(VAR(0)) &&
+      (p = strchr(slev, GRN_TEXT_VALUE(VAR(0))[0]))) {
+    GRN_TEXT_PUTC(ctx, VAR(1), '\0');
+    GRN_LOG(ctx, (int)(p - slev), "%s", GRN_TEXT_VALUE(VAR(1)));
   } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 3);
+    ERR(GRN_INVALID_ARGUMENT, "invalid log level.");
   }
   return NULL;
 }
@@ -1042,16 +898,7 @@ proc_log_put(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 static grn_obj *
 proc_log_reopen(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars;
-  grn_expr_var *vars;
-
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-  if (nvars == 1) {
-    grn_log_reopen(ctx);
-  } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 1);
-  }
+  grn_log_reopen(ctx);
   return NULL;
 }
 
@@ -1066,71 +913,62 @@ proc_add(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 static grn_obj *
 proc_set(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars;
-  grn_expr_var *vars;
   grn_content_type ct = ctx->impl->output_type;
   grn_obj *outbuf = ctx->impl->outbuf;
-
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-  if (nvars == 6) {
-    grn_obj *table = grn_ctx_get(ctx,
-                                 GRN_TEXT_VALUE(VAR(0)),
-                                 GRN_TEXT_LEN(VAR(0)));
-    if (table) {
-      grn_id id;
-      if (GRN_TEXT_LEN(VAR(1))) {
-        if ((id = grn_table_get(ctx, table,
-                                GRN_TEXT_VALUE(VAR(1)),
-                                GRN_TEXT_LEN(VAR(1))))) {
-          /* todo */
-          {
-            grn_obj obj;
-            grn_obj_format format;
-            GRN_RECORD_INIT(&obj, 0, ((grn_db_obj *)table)->id);
-            GRN_OBJ_FORMAT_INIT(&format, 1, 0, 1, 0);
-            GRN_RECORD_SET(ctx, &obj, id);
-            grn_obj_columns(ctx, table,
-                            GRN_TEXT_VALUE(VAR(4)),
-                            GRN_TEXT_LEN(VAR(4)), &format.columns);
-            switch (ct) {
-            case GRN_CONTENT_JSON:
-              format.flags = 0 /* GRN_OBJ_FORMAT_WITH_COLUMN_NAMES */;
-              GRN_TEXT_PUTS(ctx, outbuf, "[[");
-              grn_text_itoa(ctx, outbuf, ctx->rc);
-              if (ctx->rc) {
-                GRN_TEXT_PUTC(ctx, outbuf, ',');
-                grn_text_esc(ctx, outbuf, ctx->errbuf, strlen(ctx->errbuf));
-              }
-              GRN_TEXT_PUTC(ctx, outbuf, ']');
+  grn_obj *table = grn_ctx_get(ctx,
+                               GRN_TEXT_VALUE(VAR(0)),
+                               GRN_TEXT_LEN(VAR(0)));
+  if (table) {
+    grn_id id;
+    if (GRN_TEXT_LEN(VAR(1))) {
+      if ((id = grn_table_get(ctx, table,
+                              GRN_TEXT_VALUE(VAR(1)),
+                              GRN_TEXT_LEN(VAR(1))))) {
+        /* todo */
+        {
+          grn_obj obj;
+          grn_obj_format format;
+          GRN_RECORD_INIT(&obj, 0, ((grn_db_obj *)table)->id);
+          GRN_OBJ_FORMAT_INIT(&format, 1, 0, 1, 0);
+          GRN_RECORD_SET(ctx, &obj, id);
+          grn_obj_columns(ctx, table,
+                          GRN_TEXT_VALUE(VAR(4)),
+                          GRN_TEXT_LEN(VAR(4)), &format.columns);
+          switch (ct) {
+          case GRN_CONTENT_JSON:
+            format.flags = 0 /* GRN_OBJ_FORMAT_WITH_COLUMN_NAMES */;
+            GRN_TEXT_PUTS(ctx, outbuf, "[[");
+            grn_text_itoa(ctx, outbuf, ctx->rc);
+            if (ctx->rc) {
               GRN_TEXT_PUTC(ctx, outbuf, ',');
-              grn_text_otoj(ctx, outbuf, &obj, &format);
-              GRN_TEXT_PUTC(ctx, outbuf, ']');
-              break;
-            case GRN_CONTENT_TSV:
-              GRN_TEXT_PUTC(ctx, outbuf, '\n');
-              /* TODO: implement */
-              break;
-            case GRN_CONTENT_XML:
-              format.flags = GRN_OBJ_FORMAT_XML_ELEMENT_RESULTSET;
-              grn_text_otoxml(ctx, outbuf, &obj, &format);
-              break;
-            case GRN_CONTENT_NONE:
-              break;
+              grn_text_esc(ctx, outbuf, ctx->errbuf, strlen(ctx->errbuf));
             }
-            GRN_OBJ_FORMAT_FIN(ctx, &format);
+            GRN_TEXT_PUTC(ctx, outbuf, ']');
+            GRN_TEXT_PUTC(ctx, outbuf, ',');
+            grn_text_otoj(ctx, outbuf, &obj, &format);
+            GRN_TEXT_PUTC(ctx, outbuf, ']');
+            break;
+          case GRN_CONTENT_TSV:
+            GRN_TEXT_PUTC(ctx, outbuf, '\n');
+            /* TODO: implement */
+            break;
+          case GRN_CONTENT_XML:
+            format.flags = GRN_OBJ_FORMAT_XML_ELEMENT_RESULTSET;
+            grn_text_otoxml(ctx, outbuf, &obj, &format);
+            break;
+          case GRN_CONTENT_NONE:
+            break;
           }
-        } else {
-          /* todo : error handling */
+          GRN_OBJ_FORMAT_FIN(ctx, &format);
         }
       } else {
-        /* todo : get_by_id */
+        /* todo : error handling */
       }
     } else {
-      /* todo : error handling */
+      /* todo : get_by_id */
     }
   } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 6);
+    /* todo : error handling */
   }
   return NULL;
 }
@@ -1281,36 +1119,27 @@ static grn_obj *
 proc_delete(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
   grn_rc rc;
-  uint32_t nvars;
-  grn_expr_var *vars;
-
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
-  if (nvars == 4) {
-    grn_obj *table = grn_ctx_get(ctx,
-                                 GRN_TEXT_VALUE(VAR(0)),
-                                 GRN_TEXT_LEN(VAR(0)));
-    if (table) {
-      if (GRN_TEXT_LEN(VAR(1)) && GRN_TEXT_LEN(VAR(3))) {
-        ERR(GRN_INVALID_ARGUMENT, "both id and key are specified");
-      } else if (GRN_TEXT_LEN(VAR(1))) {
-        rc = grn_table_delete(ctx, table, GRN_TEXT_VALUE(VAR(1)),
-                                          GRN_TEXT_LEN(VAR(1)));
-      } else if (GRN_TEXT_LEN(VAR(3))) {
-        const char *end;
-        grn_id id = grn_atoui(GRN_TEXT_VALUE(VAR(3)),
-                              GRN_BULK_CURR(VAR(3)), &end);
-        if (end == GRN_BULK_CURR(VAR(3))) {
-          rc = grn_table_delete_by_id(ctx, table, id);
-        } else {
-          ERR(GRN_INVALID_ARGUMENT, "invalid id");
-        }
+  grn_obj *table = grn_ctx_get(ctx,
+                               GRN_TEXT_VALUE(VAR(0)),
+                               GRN_TEXT_LEN(VAR(0)));
+  if (table) {
+    if (GRN_TEXT_LEN(VAR(1)) && GRN_TEXT_LEN(VAR(3))) {
+      ERR(GRN_INVALID_ARGUMENT, "both id and key are specified");
+    } else if (GRN_TEXT_LEN(VAR(1))) {
+      rc = grn_table_delete(ctx, table, GRN_TEXT_VALUE(VAR(1)),
+                                        GRN_TEXT_LEN(VAR(1)));
+    } else if (GRN_TEXT_LEN(VAR(3))) {
+      const char *end;
+      grn_id id = grn_atoui(GRN_TEXT_VALUE(VAR(3)),
+                            GRN_BULK_CURR(VAR(3)), &end);
+      if (end == GRN_BULK_CURR(VAR(3))) {
+        rc = grn_table_delete_by_id(ctx, table, id);
+      } else {
+        ERR(GRN_INVALID_ARGUMENT, "invalid id");
       }
-    } else {
-      ERR(GRN_INVALID_ARGUMENT, "unknown table name");
     }
   } else {
-    ERR(GRN_INVALID_ARGUMENT, "invalid argument number. %d for %d", nvars, 4);
+    ERR(GRN_INVALID_ARGUMENT, "unknown table name");
   }
   return NULL;
 }
@@ -1834,11 +1663,7 @@ dump_all_records(grn_ctx *ctx, grn_obj *outbuf)
 static grn_obj *
 proc_dump(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars;
   grn_obj *outbuf = ctx->impl->outbuf;
-  grn_expr_var *vars;
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
   dump_scheme(ctx, outbuf);
   /* To update index columns correctly, we first create the whole scheme, then
      load non-derivative records, while skipping records of index columns. That
@@ -1857,15 +1682,10 @@ proc_dump(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 static grn_obj *
 proc_cache_limit(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars;
-  grn_expr_var *vars;
-
   grn_obj *outbuf = ctx->impl->outbuf;
   uint32_t *mp = grn_cach_max_nentries();
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
   grn_text_lltoa(ctx, outbuf, *mp);
-  if (nvars == 2 && GRN_TEXT_LEN(VAR(0))) {
+  if (GRN_TEXT_LEN(VAR(0))) {
     const char *rest;
     uint32_t max = grn_atoui(GRN_TEXT_VALUE(VAR(0)),
                              GRN_BULK_CURR(VAR(0)), &rest);
@@ -1877,11 +1697,6 @@ proc_cache_limit(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_da
 static grn_obj *
 proc_register(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
-  uint32_t nvars;
-  grn_expr_var *vars;
-
-  grn_proc_get_info(ctx, user_data, &vars, &nvars, NULL);
-
   if (GRN_TEXT_LEN(VAR(0))) {
     const char *name;
     name = GRN_TEXT_VALUE(VAR(0));




Groonga-commit メーリングリストの案内
アーカイブの一覧に戻る