[Groonga-commit] groonga/groonga [master] table: move add command and set command from proc.c to table.c.

Back to archive index

null+****@clear***** null+****@clear*****
2012年 6月 13日 (水) 12:24:25 JST


Daijiro MORI	2012-06-13 12:24:25 +0900 (Wed, 13 Jun 2012)

  New Revision: 884f51badd74a6d86c350e0478465a7d2bf24954

  Log:
    table: move add command and set command from proc.c to table.c.

  Modified files:
    lib/proc.c
    plugins/table/table.c

  Modified: lib/proc.c (+0 -49)
===================================================================
--- lib/proc.c    2012-06-14 18:09:38 +0900 (9bf816d)
+++ lib/proc.c    2012-06-13 12:24:25 +0900 (3b92991)
@@ -1554,46 +1554,6 @@ proc_log_reopen(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_dat
   return NULL;
 }
 
-static grn_obj *
-proc_add(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
-{
-  /* TODO: implement */
-  ERR(GRN_FUNCTION_NOT_IMPLEMENTED, "proc_add is not implemented.");
-  return NULL;
-}
-
-static grn_obj *
-proc_set(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
-{
-  /* TODO: implement */
-  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))))) {
-        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);
-        format.flags = 0 /* GRN_OBJ_FORMAT_WITH_COLUMN_NAMES */;
-        GRN_OUTPUT_OBJ(&obj, &format);
-        GRN_OBJ_FORMAT_FIN(ctx, &format);
-      } else {
-        /* todo : error handling */
-      }
-    } else {
-      /* todo : get_by_id */
-    }
-  } else {
-    /* todo : error handling */
-  }
-  return NULL;
-}
-
 static grn_rc
 proc_get_resolve_parameters(grn_ctx *ctx, grn_user_data *user_data, grn_obj **table, grn_id *id)
 {
@@ -2920,15 +2880,6 @@ grn_db_init_builtin_query(grn_ctx *ctx)
 
   DEF_VAR(vars[0], "table");
   DEF_VAR(vars[1], "key");
-  DEF_VAR(vars[2], "columns");
-  DEF_VAR(vars[3], "values");
-  DEF_VAR(vars[4], "output_columns");
-  DEF_VAR(vars[5], "id");
-  DEF_COMMAND("add", proc_add, 5, vars);
-  DEF_COMMAND("set", proc_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", proc_get, 4, vars);

  Modified: plugins/table/table.c (+47 -0)
===================================================================
--- plugins/table/table.c    2012-06-14 18:09:38 +0900 (02666e4)
+++ plugins/table/table.c    2012-06-13 12:24:25 +0900 (112e727)
@@ -270,6 +270,44 @@ command_unlink(grn_ctx *ctx, int nargs, grn_obj **args,
   return NULL;
 }
 
+static grn_obj *
+command_add(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
+{
+  return NULL;
+}
+
+static grn_obj *
+command_set(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
+{
+  /* TODO: implement */
+  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))))) {
+        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);
+        format.flags = 0 /* GRN_OBJ_FORMAT_WITH_COLUMN_NAMES */;
+        GRN_OUTPUT_OBJ(&obj, &format);
+        GRN_OBJ_FORMAT_FIN(ctx, &format);
+      } else {
+        /* todo : error handling */
+      }
+    } else {
+      /* todo : get_by_id */
+    }
+  } else {
+    /* todo : error handling */
+  }
+  return NULL;
+}
+
 grn_rc
 GRN_PLUGIN_INIT(grn_ctx *ctx)
 {
@@ -323,6 +361,15 @@ GRN_PLUGIN_REGISTER(grn_ctx *ctx)
   DEF_VAR(vars[0], "table");
   DEF_COMMAND("unlink", command_unlink, 1, vars);
 
+  DEF_VAR(vars[0], "table");
+  DEF_VAR(vars[1], "key");
+  DEF_VAR(vars[2], "columns");
+  DEF_VAR(vars[3], "values");
+  DEF_VAR(vars[4], "output_columns");
+  DEF_VAR(vars[5], "id");
+  DEF_COMMAND("add", command_add, 5, vars);
+  DEF_COMMAND("set", command_set, 6, vars);
+
   return ctx->rc;
 }
 




Groonga-commit メーリングリストの案内
Back to archive index