Navigation Menu

Skip to content

Commit

Permalink
Merge pull request #177 from naoa/use-command-create-api-instead-of-m…
Browse files Browse the repository at this point in the history
…acro

Builtin plugins use grn_plugin_command_create API  instead of macro

Patch by Naoya Murakami. Thanks!!!
  • Loading branch information
kou committed Jun 20, 2014
2 parents aff6a36 + d0ff165 commit b657f4b
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 122 deletions.
4 changes: 2 additions & 2 deletions plugins/ruby/eval.c
Expand Up @@ -57,8 +57,8 @@ GRN_PLUGIN_REGISTER(grn_ctx *ctx)
{
grn_expr_var vars[1];

DEF_VAR(vars[0], "script");
DEF_COMMAND("ruby_eval", command_ruby_eval, 1, vars);
grn_plugin_expr_var_init(ctx, &vars[0], "script", -1);
grn_plugin_command_create(ctx, "ruby_eval", -1, command_ruby_eval, 1, vars);

return ctx->rc;
}
4 changes: 2 additions & 2 deletions plugins/ruby/load.c
Expand Up @@ -56,8 +56,8 @@ GRN_PLUGIN_REGISTER(grn_ctx *ctx)
{
grn_expr_var vars[1];

DEF_VAR(vars[0], "path");
DEF_COMMAND("ruby_load", command_ruby_load, 1, vars);
grn_plugin_expr_var_init(ctx, &vars[0], "path", -1);
grn_plugin_command_create(ctx, "ruby_load", -1, command_ruby_load, 1, vars);

return ctx->rc;
}
10 changes: 0 additions & 10 deletions plugins/ruby/ruby_plugin.h
Expand Up @@ -69,16 +69,6 @@ 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, (name), (sizeof(name) - 1),\
GRN_PROC_COMMAND, (func), NULL, NULL, (nvars), (vars)))

grn_rc
GRN_PLUGIN_FIN(grn_ctx *ctx)
{
Expand Down
43 changes: 15 additions & 28 deletions plugins/suggest/suggest.c
Expand Up @@ -994,34 +994,21 @@ GRN_PLUGIN_INIT(grn_ctx *ctx)
grn_rc
GRN_PLUGIN_REGISTER(grn_ctx *ctx)
{
grn_expr_var vars[] = {
{CONST_STR_LEN("types")},
{CONST_STR_LEN("table")},
{CONST_STR_LEN("column")},
{CONST_STR_LEN("query")},
{CONST_STR_LEN("sortby")},
{CONST_STR_LEN("output_columns")},
{CONST_STR_LEN("offset")},
{CONST_STR_LEN("limit")},
{CONST_STR_LEN("frequency_threshold")},
{CONST_STR_LEN("conditional_probability_threshold")},
{CONST_STR_LEN("prefix_search")},
{CONST_STR_LEN("similar_search")}
};
GRN_TEXT_INIT(&vars[0].value, 0);
GRN_TEXT_INIT(&vars[1].value, 0);
GRN_TEXT_INIT(&vars[2].value, 0);
GRN_TEXT_INIT(&vars[3].value, 0);
GRN_TEXT_INIT(&vars[4].value, 0);
GRN_TEXT_INIT(&vars[5].value, 0);
GRN_TEXT_INIT(&vars[6].value, 0);
GRN_TEXT_INIT(&vars[7].value, 0);
GRN_TEXT_INIT(&vars[8].value, 0);
GRN_TEXT_INIT(&vars[9].value, 0);
GRN_TEXT_INIT(&vars[10].value, 0);
GRN_TEXT_INIT(&vars[11].value, 0);
grn_proc_create(ctx, CONST_STR_LEN("suggest"), GRN_PROC_COMMAND,
command_suggest, NULL, NULL, 12, vars);
grn_expr_var vars[12];

grn_plugin_expr_var_init(ctx, &vars[0], "types", -1);
grn_plugin_expr_var_init(ctx, &vars[1], "table", -1);
grn_plugin_expr_var_init(ctx, &vars[2], "column", -1);
grn_plugin_expr_var_init(ctx, &vars[3], "query", -1);
grn_plugin_expr_var_init(ctx, &vars[4], "sortby", -1);
grn_plugin_expr_var_init(ctx, &vars[5], "output_columns", -1);
grn_plugin_expr_var_init(ctx, &vars[6], "offset", -1);
grn_plugin_expr_var_init(ctx, &vars[7], "limit", -1);
grn_plugin_expr_var_init(ctx, &vars[8], "frequency_threshold", -1);
grn_plugin_expr_var_init(ctx, &vars[9], "conditional_probability_threshold", -1);
grn_plugin_expr_var_init(ctx, &vars[10], "prefix_search", -1);
grn_plugin_expr_var_init(ctx, &vars[11], "similar_search", -1);
grn_plugin_command_create(ctx, "suggest", -1, command_suggest, 12, vars);

grn_proc_create(ctx, CONST_STR_LEN("suggest_preparer"), GRN_PROC_FUNCTION,
func_suggest_preparer, NULL, NULL, 0, NULL);
Expand Down
149 changes: 69 additions & 80 deletions plugins/table/table.c
Expand Up @@ -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 *
Expand Down Expand Up @@ -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;
}
Expand Down

0 comments on commit b657f4b

Please sign in to comment.