[Groonga-commit] groonga/groonga at 446b2dd [master] table_remove: add recursive option

Back to archive index

Kouhei Sutou null+****@clear*****
Tue Mar 15 18:07:44 JST 2016


Kouhei Sutou	2016-03-15 18:07:44 +0900 (Tue, 15 Mar 2016)

  New Revision: 446b2dde45c1f06cc112a0af81905b5768799616
  https://github.com/groonga/groonga/commit/446b2dde45c1f06cc112a0af81905b5768799616

  Message:
    table_remove: add recursive option
    
    TODO: Add more tests

  Added files:
    test/command/suite/table_remove/hash/referenced/recursive/table_patricia_trie.expected
    test/command/suite/table_remove/hash/referenced/recursive/table_patricia_trie.test
  Modified files:
    lib/proc/proc_table.c

  Modified: lib/proc/proc_table.c (+11 -3)
===================================================================
--- lib/proc/proc_table.c    2016-03-15 18:07:23 +0900 (c401c52)
+++ lib/proc/proc_table.c    2016-03-15 18:07:44 +0900 (0997a8e)
@@ -476,8 +476,11 @@ command_table_remove(grn_ctx *ctx,
 {
   grn_obj *name;
   grn_obj *table;
+  grn_bool recursive;
 
   name = grn_plugin_proc_get_var(ctx, user_data, "name", -1);
+  recursive = grn_plugin_proc_get_var_bool(ctx, user_data, "recursive", -1,
+                                           GRN_FALSE);
   table = grn_ctx_get(ctx,
                       GRN_TEXT_VALUE(name),
                       GRN_TEXT_LEN(name));
@@ -497,7 +500,11 @@ command_table_remove(grn_ctx *ctx,
   }
 
   if (table) {
-    grn_obj_remove(ctx, table);
+    if (recursive) {
+      grn_obj_remove_recursive(ctx, table);
+    } else {
+      grn_obj_remove(ctx, table);
+    }
   } else {
     GRN_PLUGIN_ERROR(ctx,
                      GRN_INVALID_ARGUMENT,
@@ -512,13 +519,14 @@ command_table_remove(grn_ctx *ctx,
 void
 grn_proc_init_table_remove(grn_ctx *ctx)
 {
-  grn_expr_var vars[1];
+  grn_expr_var vars[2];
 
   grn_plugin_expr_var_init(ctx, &(vars[0]), "name", -1);
+  grn_plugin_expr_var_init(ctx, &(vars[1]), "recursive", -1);
   grn_plugin_command_create(ctx,
                             "table_remove", -1,
                             command_table_remove,
-                            1,
+                            2,
                             vars);
 }
 

  Added: test/command/suite/table_remove/hash/referenced/recursive/table_patricia_trie.expected (+12 -0) 100644
===================================================================
--- /dev/null
+++ test/command/suite/table_remove/hash/referenced/recursive/table_patricia_trie.expected    2016-03-15 18:07:44 +0900 (0dd9575)
@@ -0,0 +1,12 @@
+table_create Names TABLE_HASH_KEY ShortText
+[[0,0.0,0.0],true]
+table_create Users TABLE_PAT_KEY Names
+[[0,0.0,0.0],true]
+table_create Administrators TABLE_PAT_KEY Names
+[[0,0.0,0.0],true]
+table_create Machines TABLE_PAT_KEY ShortText
+[[0,0.0,0.0],true]
+table_remove Names --recursive yes
+[[0,0.0,0.0],true]
+dump
+table_create Machines TABLE_PAT_KEY ShortText

  Added: test/command/suite/table_remove/hash/referenced/recursive/table_patricia_trie.test (+8 -0) 100644
===================================================================
--- /dev/null
+++ test/command/suite/table_remove/hash/referenced/recursive/table_patricia_trie.test    2016-03-15 18:07:44 +0900 (e18d635)
@@ -0,0 +1,8 @@
+table_create Names TABLE_HASH_KEY ShortText
+table_create Users TABLE_PAT_KEY Names
+table_create Administrators TABLE_PAT_KEY Names
+table_create Machines TABLE_PAT_KEY ShortText
+
+table_remove Names --recursive yes
+
+dump
-------------- next part --------------
HTML����������������������������...
Download 



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