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