[Groonga-commit] groonga/groonga at d0ff165 [master] table:use grn_plugin_command_create API instead of the macro

Back to archive index

naoa null+****@clear*****
Fri Jun 20 17:28:20 JST 2014


naoa	2014-06-20 17:28:20 +0900 (Fri, 20 Jun 2014)

  New Revision: d0ff165de027035f6f63711fc7b6a7a9a6d5829d
  https://github.com/groonga/groonga/commit/d0ff165de027035f6f63711fc7b6a7a9a6d5829d

  Merged b657f4b: Merge pull request #177 from naoa/use-command-create-api-instead-of-macro

  Message:
    table:use grn_plugin_command_create API instead of the macro

  Modified files:
    plugins/table/table.c

  Modified: plugins/table/table.c (+69 -80)
===================================================================
--- plugins/table/table.c    2014-06-20 17:27:19 +0900 (335562d)
+++ plugins/table/table.c    2014-06-20 17:28:20 +0900 (a4fcd17)
@@ -24,7 +24,6 @@
 #include <groonga/plugin.h>
 
 #define VAR GRN_PROC_GET_VAR_BY_OFFSET
-#define CONST_STR_LEN(x) x, x ? sizeof(x) - 1 : 0
 #define TEXT_VALUE_LEN(x) GRN_TEXT_VALUE(x), GRN_TEXT_LEN(x)
 
 static grn_obj *
@@ -663,90 +662,80 @@ GRN_PLUGIN_INIT(grn_ctx *ctx)
   return GRN_SUCCESS;
 }
 
-#define DEF_VAR(v,x) do {\
-  (v).name = (x);\
-  (v).name_size = (x) ? sizeof(x) - 1 : 0;\
-  GRN_TEXT_INIT(&(v).value, 0);\
-} while (0)
-
-#define DEF_COMMAND(name,func,nvars,vars)\
-  (grn_proc_create(ctx, CONST_STR_LEN(name),\
-                   GRN_PROC_COMMAND, (func), NULL, NULL, (nvars), (vars)))
-
 grn_rc
 GRN_PLUGIN_REGISTER(grn_ctx *ctx)
 {
   grn_expr_var vars[18];
 
-  DEF_VAR(vars[0], "table");
-  DEF_VAR(vars[1], "expression");
-  DEF_VAR(vars[2], "result_set");
-  DEF_VAR(vars[3], "set_operation");
-  DEF_VAR(vars[4], "allow_update");
-  DEF_COMMAND("filter_by_script", command_filter_by_script, 5, vars);
-
-  DEF_VAR(vars[0], "table");
-  DEF_VAR(vars[1], "column");
-  DEF_VAR(vars[2], "operator");
-  DEF_VAR(vars[3], "value");
-  DEF_VAR(vars[4], "result_set");
-  DEF_VAR(vars[5], "set_operation");
-  DEF_COMMAND("filter", command_filter, 6, vars);
-
-  DEF_VAR(vars[0], "table");
-  DEF_VAR(vars[1], "key");
-  DEF_VAR(vars[2], "result_set");
-  DEF_VAR(vars[3], "range_gap");
-  DEF_COMMAND("group", command_group, 4, vars);
-
-  DEF_VAR(vars[0], "table");
-  DEF_VAR(vars[1], "keys");
-  DEF_VAR(vars[2], "offset");
-  DEF_VAR(vars[3], "limit");
-  DEF_COMMAND("sort", command_sort, 4, vars);
-
-  DEF_VAR(vars[0], "table");
-  DEF_VAR(vars[1], "columns");
-  DEF_VAR(vars[2], "offset");
-  DEF_VAR(vars[3], "limit");
-  DEF_COMMAND("output", command_output, 4, vars);
-
-  DEF_VAR(vars[0], "table");
-  DEF_VAR(vars[1], "expression");
-  DEF_COMMAND("each", command_each, 2, vars);
-
-  DEF_VAR(vars[0], "table");
-  DEF_COMMAND("unlink", command_unlink, 1, vars);
-
-  DEF_VAR(vars[0], "table");
-  DEF_VAR(vars[1], "values");
-  DEF_VAR(vars[2], "key");
-  DEF_VAR(vars[3], "columns");
-  DEF_VAR(vars[4], "output_columns");
-  DEF_VAR(vars[5], "id");
-  DEF_COMMAND("add", command_add, 2, vars);
-  DEF_COMMAND("push", command_push, 2, vars);
-  DEF_COMMAND("set", command_set, 6, vars);
-
-  DEF_VAR(vars[0], "table");
-  DEF_VAR(vars[1], "key");
-  DEF_VAR(vars[2], "output_columns");
-  DEF_VAR(vars[3], "id");
-  DEF_COMMAND("get", command_get, 4, vars);
-
-  DEF_VAR(vars[0], "table");
-  DEF_VAR(vars[1], "output_columns");
-  DEF_VAR(vars[2], "non_block");
-  DEF_COMMAND("pull", command_pull, 3, vars);
-
-  DEF_VAR(vars[0], "table");
-  DEF_VAR(vars[1], "columns");
-  DEF_VAR(vars[2], "query");
-  DEF_VAR(vars[3], "result_set");
-  DEF_VAR(vars[4], "set_operation");
-  DEF_VAR(vars[5], "allow_column_expression");
-  DEF_VAR(vars[6], "allow_pragma");
-  DEF_COMMAND("match", command_match, 7, vars);
+  grn_plugin_expr_var_init(ctx, &vars[0], "table", -1);
+  grn_plugin_expr_var_init(ctx, &vars[1], "expression", -1);
+  grn_plugin_expr_var_init(ctx, &vars[2], "result_set", -1);
+  grn_plugin_expr_var_init(ctx, &vars[3], "set_operation", -1);
+  grn_plugin_expr_var_init(ctx, &vars[4], "allow_update", -1);
+  grn_plugin_command_create(ctx, "filter_by_script", -1, command_filter_by_script, 5, vars);
+
+  grn_plugin_expr_var_init(ctx, &vars[0], "table", -1);
+  grn_plugin_expr_var_init(ctx, &vars[1], "column", -1);
+  grn_plugin_expr_var_init(ctx, &vars[2], "operator", -1);
+  grn_plugin_expr_var_init(ctx, &vars[3], "value", -1);
+  grn_plugin_expr_var_init(ctx, &vars[4], "result_set", -1);
+  grn_plugin_expr_var_init(ctx, &vars[5], "set_operation", -1);
+  grn_plugin_command_create(ctx, "filter", -1, command_filter, 6, vars);
+
+  grn_plugin_expr_var_init(ctx, &vars[0], "table", -1);
+  grn_plugin_expr_var_init(ctx, &vars[1], "key", -1);
+  grn_plugin_expr_var_init(ctx, &vars[2], "result_set", -1);
+  grn_plugin_expr_var_init(ctx, &vars[3], "range_gap", -1);
+  grn_plugin_command_create(ctx, "group", -1, command_group, 4, vars);
+
+  grn_plugin_expr_var_init(ctx, &vars[0], "table", -1);
+  grn_plugin_expr_var_init(ctx, &vars[1], "keys", -1);
+  grn_plugin_expr_var_init(ctx, &vars[2], "offset", -1);
+  grn_plugin_expr_var_init(ctx, &vars[3], "limit", -1);
+  grn_plugin_command_create(ctx, "sort", -1, command_sort, 4, vars);
+
+  grn_plugin_expr_var_init(ctx, &vars[0], "table", -1);
+  grn_plugin_expr_var_init(ctx, &vars[1], "columns", -1);
+  grn_plugin_expr_var_init(ctx, &vars[2], "offset", -1);
+  grn_plugin_expr_var_init(ctx, &vars[3], "limit", -1);
+  grn_plugin_command_create(ctx, "output", -1, command_output, 4, vars);
+
+  grn_plugin_expr_var_init(ctx, &vars[0], "table", -1);
+  grn_plugin_expr_var_init(ctx, &vars[1], "expression", -1);
+  grn_plugin_command_create(ctx, "each", -1, command_each, 2, vars);
+
+  grn_plugin_expr_var_init(ctx, &vars[0], "table", -1);
+  grn_plugin_command_create(ctx, "unlink", -1, command_unlink, 1, vars);
+
+  grn_plugin_expr_var_init(ctx, &vars[0], "table", -1);
+  grn_plugin_expr_var_init(ctx, &vars[1], "values", -1);
+  grn_plugin_expr_var_init(ctx, &vars[2], "key", -1);
+  grn_plugin_expr_var_init(ctx, &vars[3], "columns", -1);
+  grn_plugin_expr_var_init(ctx, &vars[4], "output_columns", -1);
+  grn_plugin_expr_var_init(ctx, &vars[5], "id", -1);
+  grn_plugin_command_create(ctx, "add", -1, command_add, 2, vars);
+  grn_plugin_command_create(ctx, "push", -1, command_push, 2, vars);
+  grn_plugin_command_create(ctx, "set", -1, command_set, 6, vars);
+
+  grn_plugin_expr_var_init(ctx, &vars[0], "table", -1);
+  grn_plugin_expr_var_init(ctx, &vars[1], "key", -1);
+  grn_plugin_expr_var_init(ctx, &vars[2], "output_columns", -1);
+  grn_plugin_expr_var_init(ctx, &vars[3], "id", -1);
+  grn_plugin_command_create(ctx, "get", -1, command_get, 4, vars);
+
+  grn_plugin_expr_var_init(ctx, &vars[0], "table", -1);
+  grn_plugin_expr_var_init(ctx, &vars[1], "output_columns", -1);
+  grn_plugin_expr_var_init(ctx, &vars[2], "non_block", -1);
+  grn_plugin_command_create(ctx, "pull", -1, command_pull, 3, vars);
+
+  grn_plugin_expr_var_init(ctx, &vars[0], "table", -1);
+  grn_plugin_expr_var_init(ctx, &vars[1], "columns", -1);
+  grn_plugin_expr_var_init(ctx, &vars[2], "query", -1);
+  grn_plugin_expr_var_init(ctx, &vars[3], "result_set", -1);
+  grn_plugin_expr_var_init(ctx, &vars[4], "set_operation", -1);
+  grn_plugin_expr_var_init(ctx, &vars[5], "allow_column_expression", -1);
+  grn_plugin_expr_var_init(ctx, &vars[6], "allow_pragma", -1);
+  grn_plugin_command_create(ctx, "match", -1, command_match, 7, vars);
 
   return ctx->rc;
 }
-------------- next part --------------
HTML����������������������������...
다운로드 



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