7.3.41. object_list

7.3.41.1. 概要

バージョン 6.0.7 で追加.

object_list はデータベース内のオブジェクトの一覧を返します。オブジェクトの情報はデータベース内のメタデータから取得します。 object_list はオブジェクトの実体を開きません。そのため、 object_list は多くのテーブル・カラムがあるデータベースに対しても軽い処理のコマンドです。

通常、 object_list より schema の方が便利なコマンドです。なぜなら、 schemaobject_list より多くの情報を返すからです。

7.3.41.2. 構文

このコマンドに引数はありません:

object_list

7.3.41.3. 使い方

以下は出力例を示すためのサンプルスキーマです。

実行例:

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]

このデータベースに対する object_list コマンドの出力は次の通りです。

実行例:

object_list
# [
#   [
#     0,
#     1337566253.89858,
#     0.000355720520019531
#   ],
#   {
#     "UInt64": {
#       "opened": true,
#       "flags": {
#         "names": "KEY_UINT",
#         "value": 0
#       },
#       "n_elements": 4,
#       "path": null,
#       "size": 8,
#       "type": {
#         "id": 32,
#         "name": "type"
#       },
#       "id": 11,
#       "name": "UInt64"
#     },
#     "Int32": {
#       "opened": true,
#       "flags": {
#         "names": "KEY_INT",
#         "value": 8
#       },
#       "n_elements": 4,
#       "path": null,
#       "size": 4,
#       "type": {
#         "id": 32,
#         "name": "type"
#       },
#       "id": 8,
#       "name": "Int32"
#     },
#     "Int16": {
#       "opened": true,
#       "flags": {
#         "names": "KEY_INT",
#         "value": 8
#       },
#       "n_elements": 4,
#       "path": null,
#       "size": 2,
#       "type": {
#         "id": 32,
#         "name": "type"
#       },
#       "id": 6,
#       "name": "Int16"
#     },
#     "Float": {
#       "opened": true,
#       "flags": {
#         "names": "KEY_FLOAT",
#         "value": 16
#       },
#       "n_elements": 4,
#       "path": null,
#       "size": 8,
#       "type": {
#         "id": 32,
#         "name": "type"
#       },
#       "id": 12,
#       "name": "Float"
#     },
#     "LongText": {
#       "opened": true,
#       "flags": {
#         "names": "KEY_VAR_SIZE",
#         "value": 16384
#       },
#       "n_elements": 4,
#       "path": null,
#       "size": 2147483648,
#       "type": {
#         "id": 32,
#         "name": "type"
#       },
#       "id": 16,
#       "name": "LongText"
#     },
#     "TokyoGeoPoint": {
#       "opened": true,
#       "flags": {
#         "names": "KEY_GEO_POINT",
#         "value": 24
#       },
#       "n_elements": 4,
#       "path": null,
#       "size": 8,
#       "type": {
#         "id": 32,
#         "name": "type"
#       },
#       "id": 17,
#       "name": "TokyoGeoPoint"
#     },
#     "Text": {
#       "opened": true,
#       "flags": {
#         "names": "KEY_VAR_SIZE",
#         "value": 16384
#       },
#       "n_elements": 4,
#       "path": null,
#       "size": 65536,
#       "type": {
#         "id": 32,
#         "name": "type"
#       },
#       "id": 15,
#       "name": "Text"
#     },
#     "ShortText": {
#       "opened": true,
#       "flags": {
#         "names": "KEY_VAR_SIZE",
#         "value": 16384
#       },
#       "n_elements": 4,
#       "path": null,
#       "size": 4096,
#       "type": {
#         "id": 32,
#         "name": "type"
#       },
#       "id": 14,
#       "name": "ShortText"
#     },
#     "Object": {
#       "opened": true,
#       "flags": {
#         "names": "KEY_UINT",
#         "value": 0
#       },
#       "n_elements": 4,
#       "path": null,
#       "size": 8,
#       "type": {
#         "id": 32,
#         "name": "type"
#       },
#       "id": 2,
#       "name": "Object"
#     },
#     "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
#       },
#       "n_elements": 4,
#       "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
#       },
#       "n_elements": 4,
#       "path": null,
#       "size": 1,
#       "type": {
#         "id": 32,
#         "name": "type"
#       },
#       "id": 5,
#       "name": "UInt8"
#     },
#     "UInt32": {
#       "opened": true,
#       "flags": {
#         "names": "KEY_UINT",
#         "value": 0
#       },
#       "n_elements": 4,
#       "path": null,
#       "size": 4,
#       "type": {
#         "id": 32,
#         "name": "type"
#       },
#       "id": 9,
#       "name": "UInt32"
#     },
#     "Terms": {
#       "opened": true,
#       "token_filters": [],
#       "range": {
#         "id": 0,
#         "name": null
#       },
#       "flags": {
#         "names": "TABLE_PAT_KEY|PERSISTENT",
#         "value": 49153
#       },
#       "n_elements": 5,
#       "path": "/tmp/groonga-databases/commands_object_list.0000102",
#       "type": {
#         "id": 49,
#         "name": "table:pat_key"
#       },
#       "id": 258,
#       "name": "Terms"
#     },
#     "UInt16": {
#       "opened": true,
#       "flags": {
#         "names": "KEY_UINT",
#         "value": 0
#       },
#       "n_elements": 4,
#       "path": null,
#       "size": 2,
#       "type": {
#         "id": 32,
#         "name": "type"
#       },
#       "id": 7,
#       "name": "UInt16"
#     },
#     "Bool": {
#       "opened": true,
#       "flags": {
#         "names": "KEY_UINT",
#         "value": 0
#       },
#       "n_elements": 4,
#       "path": null,
#       "size": 1,
#       "type": {
#         "id": 32,
#         "name": "type"
#       },
#       "id": 3,
#       "name": "Bool"
#     },
#     "Memos.content": {
#       "opened": true,
#       "range": {
#         "id": 15,
#         "name": "Text"
#       },
#       "flags": {
#         "names": "COLUMN_SCALAR|PERSISTENT",
#         "value": 49152
#       },
#       "n_elements": 4,
#       "path": "/tmp/groonga-databases/commands_object_list.0000101",
#       "type": {
#         "id": 65,
#         "name": "column:var_size"
#       },
#       "id": 257,
#       "name": "Memos.content"
#     },
#     "Time": {
#       "opened": true,
#       "flags": {
#         "names": "KEY_INT",
#         "value": 8
#       },
#       "n_elements": 4,
#       "path": null,
#       "size": 8,
#       "type": {
#         "id": 32,
#         "name": "type"
#       },
#       "id": 13,
#       "name": "Time"
#     },
#     "Int64": {
#       "opened": true,
#       "flags": {
#         "names": "KEY_INT",
#         "value": 8
#       },
#       "n_elements": 4,
#       "path": null,
#       "size": 8,
#       "type": {
#         "id": 32,
#         "name": "type"
#       },
#       "id": 10,
#       "name": "Int64"
#     },
#     "WGS84GeoPoint": {
#       "opened": true,
#       "flags": {
#         "names": "KEY_GEO_POINT",
#         "value": 24
#       },
#       "n_elements": 4,
#       "path": null,
#       "size": 8,
#       "type": {
#         "id": 32,
#         "name": "type"
#       },
#       "id": 18,
#       "name": "WGS84GeoPoint"
#     },
#     "Memos": {
#       "opened": true,
#       "token_filters": [],
#       "range": {
#         "id": 0,
#         "name": null
#       },
#       "flags": {
#         "names": "TABLE_HASH_KEY|PERSISTENT",
#         "value": 49152
#       },
#       "n_elements": 5,
#       "path": "/tmp/groonga-databases/commands_object_list.0000100",
#       "type": {
#         "id": 48,
#         "name": "table:hash_key"
#       },
#       "id": 256,
#       "name": "Memos"
#     },
#     "Int8": {
#       "opened": true,
#       "flags": {
#         "names": "KEY_INT",
#         "value": 8
#       },
#       "n_elements": 4,
#       "path": null,
#       "size": 1,
#       "type": {
#         "id": 32,
#         "name": "type"
#       },
#       "id": 4,
#       "name": "Int8"
#     }
#   }
# ]

7.3.41.4. 引数

このセクションではすべての引数について説明します。

7.3.41.4.1. 必須引数

必須の引数はありません。

7.3.41.4.2. 省略可能引数

省略可能な引数はありません。

7.3.41.5. 戻り値

object_list はデータベース内のオブジェクトの情報一覧を返します。:

[HEADER, OBJECTS]

7.3.41.5.2. OBJECTS

OBJECTS はオブジェクト名とオブジェクト詳細のペアの集合です。:

{
  "OBJECT_1": OBJECT_1,
  "OBJECT_2": OBJECT_2,
  ...,
  "OBJECT_n": OBJECT_n,
}

OBJECT は共通のプロパティとオブジェクトの種類固有のプロパティを持っています。

7.3.41.5.3. OBJECT (共通のプロパティ)

以下は共通のプロパティです。:

{
  "id":         ID,
  "name":       NAME,
  "opened":     OPENED,
  "value_size": N_BYTES,
  "n_elements": N_ELEMENTS,
  "type":       OBJECT_TYPE,
  "flags":      FLAGS,
  "path":       PATH
}

名前

説明

id

このオブジェクトのID。

name

このオブジェクトの名前。

opened

このオブジェクトが開かれているかどうか。 true または false 。もし、このオブジェクトが開かれていれば値は true になります。そうでなければ値は false になります。

value_size

このメタデータのバイト数。数値。

これはこのメタデータが壊れているときだけ現れます。もしこのプロパティが現れたら、 typen_elementsflagspath は現れません。なぜなら、これらのプロパティは壊れたメタデータからは取得できないからです。

n_elements

このメタデータ中の内部的な要素の数。数値。

type

このオブジェクトの種類。詳細は OBJECT_TYPE を参照してください。

flags

このオブジェクトのフラグ。詳細は FLAGS を参照してください。

path

このオブジェクトのデータを格納しているパス。データを持たないオブジェクトでは null になります。たとえば、コマンドオブジェクトはデータを持ちません。

7.3.41.5.4. OBJECT_TYPE

OBJECT_TYPE はオブジェクトの種類を表します。たとえば、パトリシアトライテーブル、ハッシュテーブル、インデックスカラムなどがオブジェクトの種類です。

OBJECT_TYPE は次のプロパティを持ちます。:

{
  "id":   ID,
  "name": NAME
}

名前

説明

id

この種類のID。

name

この種類の名前。たとえば、 TABLE_HASH_KEY"table:hash_key"ベクターカラム"column:var_size"インデックスカラム"column:index" となります。

7.3.41.5.5. FLAGS

FLAGS はオブジェクトのフラグを表します。フラグの多くは table_create あるいは column_create で指定したフラグになるでしょう。いくつかのフラグは内部的に追加されたものです。

FLAGS は以下のプロパティを持っています。:

{
  "value": VALUE,
  "names": NAMES
}

名前

説明

value

フラグの値。数値。

names

各フラグの名前一覧。文字列。各フラグ名は TABLE_HASH_KEY|PERSISTENT というように | で区切られています。

7.3.41.5.6. OBJECT"type" というオブジェクトの種類に固有のプロパティ)

"type" というオブジェクトの種類に固有の OBJECT 中のプロパティは次の通りです。:

{
  "size": SIZE
}

名前

説明

size

型のサイズ。型が固定サイズの型だった場合は各値のサイズになります。型が可変長サイズの型だった場合は各値の最大サイズになります。

7.3.41.5.7. OBJECT"proc" というオブジェクトの種類に固有のプロパティ)

以下は "proc" という種類のオブジェクト一覧です。

"proc" というオブジェクトの種類に固有の OBJECT 中のプロパティは次の通りです。:

{
  "plugin_id": PLUGIN_ID
}

名前

説明

plugin_id

"proc" オブジェクトのプラグインID。この "proc" オブジェクトがプラグインで定義されている場合は値は 1 以上の数値になります。組み込みの "proc" オブジェクトのプラグインIDは 0 になります。

7.3.41.5.8. OBJECT"table:*" というオブジェクトの種類に固有のプロパティ)

"table:*" というオブジェクトの種類に固有の OBJECT 中のプロパティは次の通りです。:

{
  "range":         RANGE,
  "token_filters": TOKEN_FILTERS
}

名前

説明

range

このテーブルの値の型。詳細は RANGE を参照してください。

token_filters

このテーブルのトークンフィルター一覧。詳細は TOKEN_FILTERS を参照してください。

7.3.41.5.9. RANGE

RANGE はこの値域の型を表します。

RANGE は次のプロパティを持ちます。:

{
  "id":   ID,
  "name": NAME
}

名前

説明

id

この値域の型のID。数値。オブジェクトが値域を持たない場合、IDは 0 になります。

name

この値域の型の名前。文字列または null 。このオブジェクトが値域を持たない場合は、名前は null になります。

7.3.41.5.10. TOKEN_FILTERS

TOKEN_FILTERS はこのテーブルのトークンフィルターの一覧を表します。

TOKEN_FILTERSTOKEN_FILTER の配列になります。:

[
  TOKEN_FILTER_1,
  TOKEN_FILTER_2,
  ...,
  TOKEN_FILTER_n
]

TOKEN_FILTER は次のプロパティを持ちます。:

{
  "id":   ID,
  "NAME": NAME
}

名前

説明

id

このトークンフィルターのID。数値。

name

このトークンフィルターの名前。文字列。

7.3.41.5.11. OBJECT"column:*" というオブジェクトの種類に固有のプロパティ)

"column:*" というオブジェクトの種類に固有の OBJECT 中のプロパティは次の通りです。:

{
  "range": RANGE
}

名前

説明

range

このカラムの値の型。詳細は RANGE を参照してください。

7.3.41.5.12. OBJECT"column:index" というオブジェクトの種類に固有のプロパティ)

"column:index" というオブジェクトの種類に固有の OBJECT 中のプロパティは次の通りです。:

{
  "sources": SOURCES
}

名前

説明

sources

このインデックスカラムのソース一覧。詳細は SOURCES を参照してください。

7.3.41.5.13. SOURCES

SOURCES はこのインデックスカラムのソースの一覧を表します。

SOURCESSOURCE の配列です。:

[
  SOURCE_1,
  SOURCE_2,
  ...,
  SOURCE_n
]

SOURCE は次のプロパティを持ちます。:

{
  "id":   ID,
  "NAME": NAME
}

名前

説明

id

このソーステーブルまたはソースカラムのID。数値。

name

このソーステーブルまたはソースカラムの名前。文字列。

7.3.41.6. 参考