Kouhei Sutou
null+****@clear*****
Thu Jul 28 18:28:42 JST 2016
Kouhei Sutou 2016-07-28 18:28:42 +0900 (Thu, 28 Jul 2016) New Revision: 247f669a8707b1c84c6ac17d2c0a4a1512c4b7c2 https://github.com/groonga/groonga/commit/247f669a8707b1c84c6ac17d2c0a4a1512c4b7c2 Message: doc object_list: document Added files: doc/source/example/reference/commands/object_list/output.log doc/source/example/reference/commands/object_list/sample.log Modified files: doc/source/reference/commands/object_list.rst Added: doc/source/example/reference/commands/object_list/output.log (+362 -0) 100644 =================================================================== --- /dev/null +++ doc/source/example/reference/commands/object_list/output.log 2016-07-28 18:28:42 +0900 (c174714) @@ -0,0 +1,362 @@ +Execution example:: + + object_list + # [ + # [ + # 0, + # 1337566253.89858, + # 0.000355720520019531 + # ], + # { + # "TokyoGeoPoint": { + # "opened": true, + # "flags": { + # "names": "KEY_GEO_POINT", + # "value": 24 + # }, + # "path": null, + # "size": 8, + # "type": { + # "id": 32, + # "name": "type" + # }, + # "id": 17, + # "name": "TokyoGeoPoint" + # }, + # "Bool": { + # "opened": true, + # "flags": { + # "names": "KEY_UINT", + # "value": 0 + # }, + # "path": null, + # "size": 1, + # "type": { + # "id": 32, + # "name": "type" + # }, + # "id": 3, + # "name": "Bool" + # }, + # "WGS84GeoPoint": { + # "opened": true, + # "flags": { + # "names": "KEY_GEO_POINT", + # "value": 24 + # }, + # "path": null, + # "size": 8, + # "type": { + # "id": 32, + # "name": "type" + # }, + # "id": 18, + # "name": "WGS84GeoPoint" + # }, + # "Int32": { + # "opened": true, + # "flags": { + # "names": "KEY_INT", + # "value": 8 + # }, + # "path": null, + # "size": 4, + # "type": { + # "id": 32, + # "name": "type" + # }, + # "id": 8, + # "name": "Int32" + # }, + # "Int16": { + # "opened": true, + # "flags": { + # "names": "KEY_INT", + # "value": 8 + # }, + # "path": null, + # "size": 2, + # "type": { + # "id": 32, + # "name": "type" + # }, + # "id": 6, + # "name": "Int16" + # }, + # "Terms": { + # "opened": true, + # "token_filters": [], + # "range": { + # "id": 0, + # "name": null + # }, + # "flags": { + # "names": "TABLE_PAT_KEY|PERSISTENT", + # "value": 49153 + # }, + # "path": "/tmp/groonga-databases/commands_object_list.0000102", + # "type": { + # "id": 49, + # "name": "table:pat_key" + # }, + # "id": 258, + # "name": "Terms" + # }, + # "LongText": { + # "opened": true, + # "flags": { + # "names": "KEY_VAR_SIZE", + # "value": 16384 + # }, + # "path": null, + # "size": 2147483648, + # "type": { + # "id": 32, + # "name": "type" + # }, + # "id": 16, + # "name": "LongText" + # }, + # "ShortText": { + # "opened": true, + # "flags": { + # "names": "KEY_VAR_SIZE", + # "value": 16384 + # }, + # "path": null, + # "size": 4096, + # "type": { + # "id": 32, + # "name": "type" + # }, + # "id": 14, + # "name": "ShortText" + # }, + # "Object": { + # "opened": true, + # "flags": { + # "names": "KEY_UINT", + # "value": 0 + # }, + # "path": null, + # "size": 8, + # "type": { + # "id": 32, + # "name": "type" + # }, + # "id": 2, + # "name": "Object" + # }, + # "UInt16": { + # "opened": true, + # "flags": { + # "names": "KEY_UINT", + # "value": 0 + # }, + # "path": null, + # "size": 2, + # "type": { + # "id": 32, + # "name": "type" + # }, + # "id": 7, + # "name": "UInt16" + # }, + # "UInt32": { + # "opened": true, + # "flags": { + # "names": "KEY_UINT", + # "value": 0 + # }, + # "path": null, + # "size": 4, + # "type": { + # "id": 32, + # "name": "type" + # }, + # "id": 9, + # "name": "UInt32" + # }, + # "Terms.memos_content_index": { + # "opened": true, + # "sources": [ + # { + # "id": 257, + # "name": "Memos.content" + # } + # ], + # "range": { + # "id": 256, + # "name": "Memos" + # }, + # "flags": { + # "names": "COLUMN_INDEX|WITH_POSITION|PERSISTENT", + # "value": 33282 + # }, + # "path": "/tmp/groonga-databases/commands_object_list.0000103", + # "type": { + # "id": 72, + # "name": "column:index" + # }, + # "id": 259, + # "name": "Terms.memos_content_index" + # }, + # "UInt8": { + # "opened": true, + # "flags": { + # "names": "KEY_UINT", + # "value": 0 + # }, + # "path": null, + # "size": 1, + # "type": { + # "id": 32, + # "name": "type" + # }, + # "id": 5, + # "name": "UInt8" + # }, + # "Int64": { + # "opened": true, + # "flags": { + # "names": "KEY_INT", + # "value": 8 + # }, + # "path": null, + # "size": 8, + # "type": { + # "id": 32, + # "name": "type" + # }, + # "id": 10, + # "name": "Int64" + # }, + # "Time": { + # "opened": true, + # "flags": { + # "names": "KEY_INT", + # "value": 8 + # }, + # "path": null, + # "size": 8, + # "type": { + # "id": 32, + # "name": "type" + # }, + # "id": 13, + # "name": "Time" + # }, + # "UInt64": { + # "opened": true, + # "flags": { + # "names": "KEY_UINT", + # "value": 0 + # }, + # "path": null, + # "size": 8, + # "type": { + # "id": 32, + # "name": "type" + # }, + # "id": 11, + # "name": "UInt64" + # }, + # "Text": { + # "opened": true, + # "flags": { + # "names": "KEY_VAR_SIZE", + # "value": 16384 + # }, + # "path": null, + # "size": 65536, + # "type": { + # "id": 32, + # "name": "type" + # }, + # "id": 15, + # "name": "Text" + # }, + # "Float": { + # "opened": true, + # "flags": { + # "names": "KEY_FLOAT", + # "value": 16 + # }, + # "path": null, + # "size": 8, + # "type": { + # "id": 32, + # "name": "type" + # }, + # "id": 12, + # "name": "Float" + # }, + # "Int8": { + # "opened": true, + # "flags": { + # "names": "KEY_INT", + # "value": 8 + # }, + # "path": null, + # "size": 1, + # "type": { + # "id": 32, + # "name": "type" + # }, + # "id": 4, + # "name": "Int8" + # }, + # "Memos.content": { + # "opened": true, + # "range": { + # "id": 15, + # "name": "Text" + # }, + # "flags": { + # "names": "COLUMN_SCALAR|PERSISTENT", + # "value": 49152 + # }, + # "path": "/tmp/groonga-databases/commands_object_list.0000101", + # "type": { + # "id": 65, + # "name": "column:var_size" + # }, + # "id": 257, + # "name": "Memos.content" + # }, + # "Memos": { + # "opened": true, + # "token_filters": [], + # "range": { + # "id": 0, + # "name": null + # }, + # "flags": { + # "names": "TABLE_HASH_KEY|PERSISTENT", + # "value": 49152 + # }, + # "path": "/tmp/groonga-databases/commands_object_list.0000100", + # "type": { + # "id": 48, + # "name": "table:hash_key" + # }, + # "id": 256, + # "name": "Memos" + # }, + # "TokenMecab": { + # "opened": true, + # "flags": { + # "names": "CUSTOM_NAME", + # "value": 4096 + # }, + # "path": "tokenizers/.libs/mecab.so", + # "plugin_id": 1, + # "type": { + # "id": 33, + # "name": "proc" + # }, + # "id": 64, + # "name": "TokenMecab" + # } + # } + # ] Added: doc/source/example/reference/commands/object_list/sample.log (+14 -0) 100644 =================================================================== --- /dev/null +++ doc/source/example/reference/commands/object_list/sample.log 2016-07-28 18:28:42 +0900 (232b4b8) @@ -0,0 +1,14 @@ +Execution example:: + + table_create Memos TABLE_HASH_KEY ShortText + # [[0, 1337566253.89858, 0.000355720520019531], true] + column_create Memos content COLUMN_SCALAR Text + # [[0, 1337566253.89858, 0.000355720520019531], true] + table_create Terms TABLE_PAT_KEY ShortText \ + --default_tokenizer TokenBigram \ + --normalizer NormalizerAuto + # [[0, 1337566253.89858, 0.000355720520019531], true] + column_create Terms memos_content_index \ + COLUMN_INDEX|WITH_POSITION \ + Memos content + # [[0, 1337566253.89858, 0.000355720520019531], true] Modified: doc/source/reference/commands/object_list.rst (+369 -0) =================================================================== --- doc/source/reference/commands/object_list.rst 2016-07-28 17:12:43 +0900 (dc8ef53) +++ doc/source/reference/commands/object_list.rst 2016-07-28 18:28:42 +0900 (9ed3135) @@ -13,6 +13,15 @@ Summary .. versionadded:: 6.0.7 +``object_list`` lists objects in database. Object information is taken +from metadata in database. ``object_list`` doesn't open any +objects. So ``object_list`` is a light command for database that has +many tables and/or columns. + +Normally, :doc:`schema` is a useful command than +``object_list``. Because :doc:`schema` returns more information than +``object_list``. + Syntax ------ @@ -23,6 +32,366 @@ This command takes no parameters:: Usage ----- +Here is an example schema to show example output: + +.. groonga-command +.. include:: ../../example/reference/commands/object_list/sample.log +.. table_create Memos TABLE_HASH_KEY ShortText +.. column_create Memos content COLUMN_SCALAR Text +.. +.. table_create Terms TABLE_PAT_KEY ShortText \ +.. --default_tokenizer TokenBigram \ +.. --normalizer NormalizerAuto +.. column_create Terms memos_content_index \ +.. COLUMN_INDEX|WITH_POSITION \ +.. Memos content + +Here is an output of ``object_list`` command against this database: + +.. groonga-command +.. include:: ../../example/reference/commands/object_list/output.log +.. object_list + +Parameters +---------- + +This section describes all parameters. + +Required parameters +^^^^^^^^^^^^^^^^^^^ + +There is no required parameter. + +Optional parameters +^^^^^^^^^^^^^^^^^^^ + +There is no optional parameter. + Return value ------------ +``object_list`` command returns a list of object information in the +database:: + + [HEADER, OBJECTS] + +``HEADER`` +^^^^^^^^^^ + +See :doc:`/reference/command/output_format` about ``HEADER``. + +``OBJECTS`` +^^^^^^^^^^^ + +``OBJECTS`` are pairs of object name and object details:: + + { + "OBJECT_1": OBJECT_1, + "OBJECT_2": OBJECT_2, + ..., + "OBJECT_n": OBJECT_n, + } + +Each ``OBJECT`` consists of common properties and object type specific +properties. + +``OBJECT`` (common properties) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Here are common properties:: + + { + "id": ID, + "name": NAME, + "opened": OPENED, + "type": OBJECT_TYPE, + "flags": FLAGS, + "path": PATH + } + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + * - ``id`` + - The ID of the object. + * - ``name`` + - The name of the object. + * - ``opened`` + - Whether the object is opened or not. It's ``true`` or + ``false``. If the object is opened, this value is + ``true``. Otherwise, this value is ``false``. + * - ``opened`` + - Whether the object is opened or not. It's ``true`` or + ``false``. If the object is opened, this value is + ``true``. Otherwise, this value is ``false``. + * - ``type`` + - The type of the object. See + :ref:`object-list-return-value-object-type` for details. + * - ``flags`` + - The flags of the object. See + :ref:`object-list-return-value-flags` for details. + * - ``path`` + - The path that contains data of the object. It's ``null`` for + objects that doesn't have data. For example, command object + doesn't have data. + +.. _object-list-return-value-object-type: + +``OBJECT_TYPE`` +^^^^^^^^^^^^^^^ + +``OBJECT_TYPE`` represents the type of object. For example, patricia +trie table, hash table and index column are object types. + +``OBJECT_TYPE`` has the following properties:: + + { + "id": ID, + "name": NAME + } + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + * - ``id`` + - The ID of the type. + * - ``name`` + - The name of the type. For example, :ref:`table-hash-key` is + ``"table:hash_key"``, :doc:`/reference/columns/vector` is + ``"column:var_size"`` and :doc:`/reference/columns/index` is + ``"column:index"``. + +.. _object-list-return-value-flags: + +``FLAGS`` +^^^^^^^^^ + +``FLAGS`` represents the flags of object. The most flags are the +specified flags in :doc:`table_create` or :doc:`column_create`. Some +flags are added internally. + +``FLAGS`` has the following properties:: + + { + "value": VALUE, + "names": NAMES + } + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + * - ``value`` + - The value of the flags. It's an integer. + * - ``names`` + - The names of each flag. It's a string. Each name is separated + by ``|`` such as ``TABLE_HASH_KEY|PERSISTENT``. + +``OBJECT`` (``"type"`` object type specific properties) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Here are ``"type"`` object type specific properties in ``OBJECT``:: + + { + "size": SIZE + } + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + * - ``size`` + - The size of the type. If the type is fixed size type, the size + is the size of each value. If the type is variable size type, + the size is the maximum size of each value. + +``OBJECT`` (``"proc"`` object type specific properties) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Here is a list of object that is ``"proc"`` object type: + + * :doc:`/reference/command` + * :doc:`/reference/function` + * :doc:`/reference/normalizers` + * :doc:`/reference/tokenizers` + * :doc:`/reference/token_filters` + +Here are ``"proc"`` object type specific properties in ``OBJECT``:: + + { + "plugin_id": PLUGIN_ID + } + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + * - ``plugin_id`` + - The plugin ID of the ``"proc"`` object. If the ``"proc"`` + object is defined by plugin, the value is ``1`` or more larger + integer. Plugin ID is ``0`` for builtin ``"proc"`` object. + +``OBJECT`` (``"table:\*"`` object types specific properties) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Here are ``"table:\*"`` object types specific properties in +``OBJECT``:: + + { + "range": RANGE, + "token_filters": TOKEN_FILTERS + } + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + * - ``range`` + - The type of the table's value. See + :ref:`object-list-return-value-range` for details. + * - ``token_filters`` + - The token filters of the table.See + :ref:`object-list-return-value-token-filters` for details. + +.. _object-list-return-value-range: + +``RANGE`` +^^^^^^^^^ + +``RANGE`` represents the type of the range. + +``RANGE`` has the following properties:: + + { + "id": ID, + "name": NAME + } + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + * - ``id`` + - The ID of the type of the range. It's an integer. If the object + doesn't have range, ID is ``0``. + * - ``name`` + - The name of the type of the range. It's a string or ``null``. + If the object doesn't have range, name is ``null``. + +.. _object-list-return-value-token-filters: + +``TOKEN_FILTERS`` +^^^^^^^^^^^^^^^^^ + +``TOKEN_FILTERS`` represents the token filters of the table. + +``TOKEN_FILTERS`` is an array of ``TOKEN_FILTER``:: + + [ + TOKEN_FILTER_1, + TOKEN_FILTER_2, + ..., + TOKEN_FILTER_n + ] + +``TOKEN_FILTER`` has the following properties:: + + { + "id": ID, + "NAME": NAME + } + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + * - ``id`` + - The ID of the token filter. It's an integer. + * - ``name`` + - The name of the token filter. It's a string. + +``OBJECT`` (``"column:\*"`` object types specific properties) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Here are ``"column:\*"`` object types specific properties in +``OBJECT``:: + + { + "range": RANGE + } + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + * - ``range`` + - The type of the column's value. See + :ref:`object-list-return-value-range` for details. + +``OBJECT`` (``"column:index"`` object type specific properties) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Here are ``"column:index"`` object type specific properties in +``OBJECT``:: + + { + "sources": SOURCES + } + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + * - ``sources`` + - The sources of the index column. See + :ref:`object-list-return-value-sources` for details. + +.. _object-list-return-value-sources: + +``SOURCES`` +^^^^^^^^^^^ + +``SOURCES`` represents the sources of the index column. + +``SOURCES`` is an array of ``SOURCE``:: + + [ + SOURCE_1, + SOURCE_2, + ..., + SOURCE_n + ] + +``SOURCE`` has the following properties:: + + { + "id": ID, + "NAME": NAME + } + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + * - ``id`` + - The ID of the source table or column. It's an integer. + * - ``name`` + - The name of the source table or column. It's a string. + +See also +-------- + + * :doc:`schema` -------------- next part -------------- HTML����������������������������... 下载