YUKI Hiroshi
null+****@clear*****
Tue Mar 22 18:24:34 JST 2016
YUKI Hiroshi 2016-03-22 18:24:34 +0900 (Tue, 22 Mar 2016) New Revision: 242250d3f9a8fe3f13ba8347b25c0aafd27b878f https://github.com/groonga/groonga/commit/242250d3f9a8fe3f13ba8347b25c0aafd27b878f Message: Describe "table_remove" with more meaningful examples Modified files: doc/source/example/reference/commands/table_remove/remove_dependents_default.log doc/source/example/reference/commands/table_remove/remove_dependents_schema.log doc/source/example/reference/commands/table_remove/remove_dependents_yes.log doc/source/example/reference/commands/table_remove/unremovable_cases_key_type_create.log doc/source/example/reference/commands/table_remove/unremovable_cases_key_type_remove_fail.log doc/source/example/reference/commands/table_remove/unremovable_cases_key_type_remove_success.log doc/source/example/reference/commands/table_remove/unremovable_cases_value_type_create.log doc/source/example/reference/commands/table_remove/unremovable_cases_value_type_remove_fail.log doc/source/example/reference/commands/table_remove/unremovable_cases_value_type_remove_success.log doc/source/reference/commands/table_remove.rst Modified: doc/source/example/reference/commands/table_remove/remove_dependents_default.log (+2 -2) =================================================================== --- doc/source/example/reference/commands/table_remove/remove_dependents_default.log 2016-03-22 18:22:30 +0900 (3639ead) +++ doc/source/example/reference/commands/table_remove/remove_dependents_default.log 2016-03-22 18:24:34 +0900 (eb4d5df) @@ -1,12 +1,12 @@ Execution example:: - table_remove ReferencedTable + table_remove UserId # [ # [ # -2, # 1337566253.89858, # 0.000355720520019531, - # "[table][remove] a table that references the table exists: <Table1._key> -> <ReferencedTable>", + # "[table][remove] a table that references the table exists: <AdminUser._key> -> <UserId>", # [ # [ # "is_removable_table", Modified: doc/source/example/reference/commands/table_remove/remove_dependents_schema.log (+4 -4) =================================================================== --- doc/source/example/reference/commands/table_remove/remove_dependents_schema.log 2016-03-22 18:22:30 +0900 (463ecf1) +++ doc/source/example/reference/commands/table_remove/remove_dependents_schema.log 2016-03-22 18:24:34 +0900 (3e8129d) @@ -1,10 +1,10 @@ Execution example:: - table_create ReferencedTable TABLE_HASH_KEY ShortText + table_create UserId TABLE_HASH_KEY ShortText # [[0, 1337566253.89858, 0.000355720520019531], true] - table_create Table1 TABLE_HASH_KEY ReferencedTable + table_create AdminUser TABLE_HASH_KEY UserId # [[0, 1337566253.89858, 0.000355720520019531], true] - table_create Table2 TABLE_NO_KEY + table_create GeneralUser TABLE_NO_KEY # [[0, 1337566253.89858, 0.000355720520019531], true] - column_create Table2 reference_column COLUMN_SCALAR ReferencedTable + column_create GeneralUser id COLUMN_SCALAR UserId # [[0, 1337566253.89858, 0.000355720520019531], true] Modified: doc/source/example/reference/commands/table_remove/remove_dependents_yes.log (+1 -1) =================================================================== --- doc/source/example/reference/commands/table_remove/remove_dependents_yes.log 2016-03-22 18:22:30 +0900 (352a6db) +++ doc/source/example/reference/commands/table_remove/remove_dependents_yes.log 2016-03-22 18:24:34 +0900 (5aaf9b6) @@ -1,4 +1,4 @@ Execution example:: - table_remove ReferencedTable --dependent yes + table_remove UserId --dependent yes # [[0, 1337566253.89858, 0.000355720520019531], true] Modified: doc/source/example/reference/commands/table_remove/unremovable_cases_key_type_create.log (+2 -2) =================================================================== --- doc/source/example/reference/commands/table_remove/unremovable_cases_key_type_create.log 2016-03-22 18:22:30 +0900 (57d9e4a) +++ doc/source/example/reference/commands/table_remove/unremovable_cases_key_type_create.log 2016-03-22 18:24:34 +0900 (c4698fc) @@ -1,6 +1,6 @@ Execution example:: - table_create ReferencedByTable TABLE_HASH_KEY ShortText + table_create UserId TABLE_HASH_KEY ShortText # [[0, 1337566253.89858, 0.000355720520019531], true] - table_create ReferenceTable TABLE_HASH_KEY ReferencedByTable + table_create AdminUser TABLE_HASH_KEY UserId # [[0, 1337566253.89858, 0.000355720520019531], true] Modified: doc/source/example/reference/commands/table_remove/unremovable_cases_key_type_remove_fail.log (+2 -2) =================================================================== --- doc/source/example/reference/commands/table_remove/unremovable_cases_key_type_remove_fail.log 2016-03-22 18:22:30 +0900 (6be7b00) +++ doc/source/example/reference/commands/table_remove/unremovable_cases_key_type_remove_fail.log 2016-03-22 18:24:34 +0900 (eb4d5df) @@ -1,12 +1,12 @@ Execution example:: - table_remove ReferencedByTable + table_remove UserId # [ # [ # -2, # 1337566253.89858, # 0.000355720520019531, - # "[table][remove] a table that references the table exists: <ReferenceTable._key> -> <ReferencedByTable>", + # "[table][remove] a table that references the table exists: <AdminUser._key> -> <UserId>", # [ # [ # "is_removable_table", Modified: doc/source/example/reference/commands/table_remove/unremovable_cases_key_type_remove_success.log (+2 -2) =================================================================== --- doc/source/example/reference/commands/table_remove/unremovable_cases_key_type_remove_success.log 2016-03-22 18:22:30 +0900 (64711f5) +++ doc/source/example/reference/commands/table_remove/unremovable_cases_key_type_remove_success.log 2016-03-22 18:24:34 +0900 (57075cb) @@ -1,6 +1,6 @@ Execution example:: - table_remove ReferenceTable + table_remove AdminUser # [[0, 1337566253.89858, 0.000355720520019531], true] - table_remove ReferencedByTable + table_remove UserId # [[0, 1337566253.89858, 0.000355720520019531], true] Modified: doc/source/example/reference/commands/table_remove/unremovable_cases_value_type_create.log (+3 -3) =================================================================== --- doc/source/example/reference/commands/table_remove/unremovable_cases_value_type_create.log 2016-03-22 18:22:30 +0900 (bfc297e) +++ doc/source/example/reference/commands/table_remove/unremovable_cases_value_type_create.log 2016-03-22 18:24:34 +0900 (3de8d33) @@ -1,8 +1,8 @@ Execution example:: - table_create ReferencedByColumn TABLE_HASH_KEY ShortText + table_create UserId TABLE_HASH_KEY ShortText # [[0, 1337566253.89858, 0.000355720520019531], true] - table_create Table TABLE_NO_KEY + table_create GeneralUser TABLE_NO_KEY # [[0, 1337566253.89858, 0.000355720520019531], true] - column_create Table reference_column COLUMN_SCALAR ReferencedByColumn + column_create GeneralUser id COLUMN_SCALAR UserId # [[0, 1337566253.89858, 0.000355720520019531], true] Modified: doc/source/example/reference/commands/table_remove/unremovable_cases_value_type_remove_fail.log (+2 -2) =================================================================== --- doc/source/example/reference/commands/table_remove/unremovable_cases_value_type_remove_fail.log 2016-03-22 18:22:30 +0900 (68c6360) +++ doc/source/example/reference/commands/table_remove/unremovable_cases_value_type_remove_fail.log 2016-03-22 18:24:34 +0900 (071e51d) @@ -1,12 +1,12 @@ Execution example:: - table_remove ReferencedByColumn + table_remove UserId # [ # [ # -2, # 1337566253.89858, # 0.000355720520019531, - # "[table][remove] a column that references the table exists: <Table.reference_column> -> <ReferencedByColumn>", + # "[table][remove] a column that references the table exists: <GeneralUser.id> -> <ReferencedByColumn>", # [ # [ # "is_removable_table", Modified: doc/source/example/reference/commands/table_remove/unremovable_cases_value_type_remove_success.log (+2 -2) =================================================================== --- doc/source/example/reference/commands/table_remove/unremovable_cases_value_type_remove_success.log 2016-03-22 18:22:30 +0900 (a7130e2) +++ doc/source/example/reference/commands/table_remove/unremovable_cases_value_type_remove_success.log 2016-03-22 18:24:34 +0900 (1bbdc3e) @@ -1,6 +1,6 @@ Execution example:: - column_remove Table reference_column + column_remove GeneralUser id # [[0, 1337566253.89858, 0.000355720520019531], true] - table_remove ReferencedByColumn + table_remove UserId # [[0, 1337566253.89858, 0.000355720520019531], true] Modified: doc/source/reference/commands/table_remove.rst (+60 -58) =================================================================== --- doc/source/reference/commands/table_remove.rst 2016-03-22 18:22:30 +0900 (26d0300) +++ doc/source/reference/commands/table_remove.rst 2016-03-22 18:24:34 +0900 (4577a87) @@ -17,8 +17,10 @@ removed. .. versionadded:: 6.0.1 - You can also remove tables and columns that reference the target - table by using ``dependent`` parameter. + This command removes tables and columns recursively, with the + ``dependent`` parameter. If you specify ``--dependent yes``, + then other tables and columns depending on the disappearing table + are also removed recursively. Syntax ------ @@ -34,15 +36,15 @@ Usage ----- You just specify table name that you want to remove. ``table_remove`` -removes the table and its columns. If the table and its columns are -indexed, all index columns for the table and its columns are also -removed. +removes the specified table and its columns. If the table and its +columns are indexed, all index columns for the table and its columns +are also removed. This section describes about the followings: * Basic usage * Unremovable cases - * Removes a table with tables and columns that reference the target table + * Recursive removing of tables and columns * Decreases used resources .. _table-remove-basic-usage: @@ -87,8 +89,8 @@ Let's confirm the current schema before running ``table_remove``: .. include:: ../../example/reference/commands/table_remove/basic_usage_dump_before_table_remove.log .. dump -If you remove ``Entries`` table, the following tables and columns are -removed: +If you remove the ``Entries`` table, the following tables and columns +are removed: * ``Entries`` * ``Entries.title`` @@ -96,7 +98,7 @@ removed: * ``EntryKeys.key_index`` * ``Terms.content_index`` -The following tables (lexicons) aren't removed: +The following tables (lexicons) are left: * ``EntryKeys`` * ``Terms`` @@ -119,102 +121,102 @@ Here is schema after ``table_remove``. Only ``EntryKeys`` and Unremovable cases ^^^^^^^^^^^^^^^^^ -There are some unremovable cases: - - * One or more tables use the table as key type. - * One or more columns use the table as value type. +You cannot remove a table, if there is any other table or column +depending on it. In other words, any table satisfying one or more +following conditions is unremovable. -Both cases blocks dangling references. If the table is referenced as -type and the table is removed, tables and columns that refer the table -are broken. + * One or more tables use the table as their key type. + * One or more columns use the table as their value type. -If the target table satisfies one of them, ``table_remove`` is -failed. The target table and its columns aren't removed. +To avoid breaking of left tables with missing references, +``table_remove`` fails for such a depended (referenced) table. -Here is an example for the table is used as key type case. +Here is an example for a table which is used as key type. -The following commands create a table to be removed and a table that -uses the table to be removed as key type: +The following commands create a table ``UserId`` going to be removed +and another table ``AdminUser` depending on the first table via its key +type: .. groonga-command .. include:: ../../example/reference/commands/table_remove/unremovable_cases_key_type_create.log -.. table_create ReferencedByTable TABLE_HASH_KEY ShortText -.. table_create ReferenceTable TABLE_HASH_KEY ReferencedByTable +.. table_create UserId TABLE_HASH_KEY ShortText +.. table_create AdminUser TABLE_HASH_KEY UserId -``table_remove`` against ``ReferencedByTable`` is failed: +``table_remove`` against ``UserId`` fails: .. groonga-command .. include:: ../../example/reference/commands/table_remove/unremovable_cases_key_type_remove_fail.log -.. table_remove ReferencedByTable +.. table_remove UserId -You need to remove ``ReferenceTable`` before you remove -``ReferencedByTable``: +You need to remove ``AdminUser`` before ``UserId``: .. groonga-command .. include:: ../../example/reference/commands/table_remove/unremovable_cases_key_type_remove_success.log -.. table_remove ReferenceTable -.. table_remove ReferencedByTable +.. table_remove AdminUser +.. table_remove UserId -Here is an example for the table is used as value type case. +Here is another example for a table which is used as value type. -The following commands create a table to be removed and a column that -uses the table to be removed as value type: +The following commands create a table ``UserId`` going to be removed +and another table ``GeneralUser`` with a column depending on the first +table via its value type: .. groonga-command .. include:: ../../example/reference/commands/table_remove/unremovable_cases_value_type_create.log -.. table_create ReferencedByColumn TABLE_HASH_KEY ShortText -.. table_create Table TABLE_NO_KEY -.. column_create Table reference_column COLUMN_SCALAR ReferencedByColumn +.. table_create UserId TABLE_HASH_KEY ShortText +.. table_create GeneralUser TABLE_NO_KEY +.. column_create GeneralUser id COLUMN_SCALAR UserId -``table_remove`` against ``ReferencedByColumn`` is failed: +``table_remove`` against ``UserId`` fails: .. groonga-command .. include:: ../../example/reference/commands/table_remove/unremovable_cases_value_type_remove_fail.log -.. table_remove ReferencedByColumn +.. table_remove UserId -You need to remove ``Table.reference_column`` before you remove -``ReferencedByColumn``: +You need to remove ``GeneralUser.id`` before ``UserId``: .. groonga-command .. include:: ../../example/reference/commands/table_remove/unremovable_cases_value_type_remove_success.log -.. column_remove Table reference_column -.. table_remove ReferencedByColumn +.. column_remove GeneralUser id +.. table_remove UserId .. _table-remove-remove-dependents: -Removes a table with tables and columns that reference the target table -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Recursive removing of tables and columns +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. versionadded:: 6.0.1 -If you understand what you'll do, you can also remove tables and -columns that reference the target table with one ``table_remove`` -command by using ``--dependent yes`` parameter. +If you understand what you'll do, you can remove a table and other +tables depending on it together at a time, by the ``--dependent yes`` +parameter. -``ReferencedTable`` in the following schema is referenced from a table +``UserId`` in the following schema is referenced from a table and a column: .. groonga-command .. include:: ../../example/reference/commands/table_remove/remove_dependents_schema.log -.. table_create ReferencedTable TABLE_HASH_KEY ShortText -.. table_create Table1 TABLE_HASH_KEY ReferencedTable -.. table_create Table2 TABLE_NO_KEY -.. column_create Table2 reference_column COLUMN_SCALAR ReferencedTable +.. table_create UserId TABLE_HASH_KEY ShortText +.. table_create AdminUser TABLE_HASH_KEY UserId +.. table_create GeneralUser TABLE_NO_KEY +.. column_create GeneralUser id COLUMN_SCALAR UserId -You can't remove ``ReferencedTable`` by default: +You can't remove ``UserId`` by default: .. groonga-command .. include:: ../../example/reference/commands/table_remove/remove_dependents_default.log -.. table_remove ReferencedTable +.. table_remove UserId -You can remove ``ReferencedTable``, ``Table1`` and -``Table2.reference_column`` by using ``--dependent yes`` -parameter. ``Table1`` and ``Table2.reference_column`` reference -``ReferencedTable``: +Additional parameter ``--dependent yes`` for the command line allows +you to remove the ``UserId`` table, then both ``AdminUser`` and +``GeneralUser.id`` depending on the ``UserId`` are also removed at a +time: .. groonga-command .. include:: ../../example/reference/commands/table_remove/remove_dependents_yes.log -.. table_remove ReferencedTable --dependent yes +.. table_remove UserId --dependent yes + +After all, only the independent ``GeneralUser`` table is left. .. _table-remove-decreases-used-resources: -------------- next part -------------- HTML����������������������������... 下载