7.3.41. object_list¶
7.3.41.1. 概要¶
バージョン 6.0.7 で追加.
object_list はデータベース内のオブジェクトの一覧を返します。オブジェクトの情報はデータベース内のメタデータから取得します。 object_list はオブジェクトの実体を開きません。そのため、 object_list は多くのテーブル・カラムがあるデータベースに対しても軽い処理のコマンドです。
通常、 object_list より schema の方が便利なコマンドです。なぜなら、 schema は 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。 | 
| 
 | このオブジェクトの名前。 | 
| 
 | このオブジェクトが開かれているかどうか。  | 
| 
 | このメタデータのバイト数。数値。 これはこのメタデータが壊れているときだけ現れます。もしこのプロパティが現れたら、  | 
| 
 | このメタデータ中の内部的な要素の数。数値。 | 
| 
 | このオブジェクトの種類。詳細は OBJECT_TYPE を参照してください。 | 
| 
 | このオブジェクトのフラグ。詳細は FLAGS を参照してください。 | 
| 
 | このオブジェクトのデータを格納しているパス。データを持たないオブジェクトでは  | 
7.3.41.5.4. OBJECT_TYPE¶
OBJECT_TYPE はオブジェクトの種類を表します。たとえば、パトリシアトライテーブル、ハッシュテーブル、インデックスカラムなどがオブジェクトの種類です。
OBJECT_TYPE は次のプロパティを持ちます。:
{
  "id":   ID,
  "name": NAME
}
| 名前 | 説明 | 
|---|---|
| 
 | この種類のID。 | 
| 
 | この種類の名前。たとえば、 TABLE_HASH_KEY は  | 
7.3.41.5.5. FLAGS¶
FLAGS はオブジェクトのフラグを表します。フラグの多くは table_create あるいは column_create で指定したフラグになるでしょう。いくつかのフラグは内部的に追加されたものです。
FLAGS は以下のプロパティを持っています。:
{
  "value": VALUE,
  "names": NAMES
}
| 名前 | 説明 | 
|---|---|
| 
 | フラグの値。数値。 | 
| 
 | 各フラグの名前一覧。文字列。各フラグ名は  | 
7.3.41.5.6. OBJECT ( "type" というオブジェクトの種類に固有のプロパティ)¶
"type" というオブジェクトの種類に固有の OBJECT 中のプロパティは次の通りです。:
{
  "size": SIZE
}
| 名前 | 説明 | 
|---|---|
| 
 | 型のサイズ。型が固定サイズの型だった場合は各値のサイズになります。型が可変長サイズの型だった場合は各値の最大サイズになります。 | 
7.3.41.5.7. OBJECT ( "proc" というオブジェクトの種類に固有のプロパティ)¶
以下は "proc" という種類のオブジェクト一覧です。
"proc" というオブジェクトの種類に固有の OBJECT 中のプロパティは次の通りです。:
{
  "plugin_id": PLUGIN_ID
}
| 名前 | 説明 | 
|---|---|
| 
 | 
 | 
7.3.41.5.8. OBJECT ( "table:*" というオブジェクトの種類に固有のプロパティ)¶
"table:*" というオブジェクトの種類に固有の OBJECT 中のプロパティは次の通りです。:
{
  "range":         RANGE,
  "token_filters": TOKEN_FILTERS
}
| 名前 | 説明 | 
|---|---|
| 
 | このテーブルの値の型。詳細は RANGE を参照してください。 | 
| 
 | このテーブルのトークンフィルター一覧。詳細は TOKEN_FILTERS を参照してください。 | 
7.3.41.5.9. RANGE¶
RANGE はこの値域の型を表します。
RANGE は次のプロパティを持ちます。:
{
  "id":   ID,
  "name": NAME
}
| 名前 | 説明 | 
|---|---|
| 
 | この値域の型のID。数値。オブジェクトが値域を持たない場合、IDは  | 
| 
 | この値域の型の名前。文字列または  | 
7.3.41.5.10. TOKEN_FILTERS¶
TOKEN_FILTERS はこのテーブルのトークンフィルターの一覧を表します。
TOKEN_FILTERS は TOKEN_FILTER の配列になります。:
[
  TOKEN_FILTER_1,
  TOKEN_FILTER_2,
  ...,
  TOKEN_FILTER_n
]
TOKEN_FILTER は次のプロパティを持ちます。:
{
  "id":   ID,
  "NAME": NAME
}
| 名前 | 説明 | 
|---|---|
| 
 | このトークンフィルターのID。数値。 | 
| 
 | このトークンフィルターの名前。文字列。 | 
7.3.41.5.11. OBJECT ( "column:*" というオブジェクトの種類に固有のプロパティ)¶
"column:*" というオブジェクトの種類に固有の OBJECT 中のプロパティは次の通りです。:
{
  "range": RANGE
}
| 名前 | 説明 | 
|---|---|
| 
 | このカラムの値の型。詳細は RANGE を参照してください。 | 
7.3.41.5.12. OBJECT ( "column:index" というオブジェクトの種類に固有のプロパティ)¶
"column:index" というオブジェクトの種類に固有の OBJECT 中のプロパティは次の通りです。:
{
  "sources": SOURCES
}
| 名前 | 説明 | 
|---|---|
| 
 | このインデックスカラムのソース一覧。詳細は SOURCES を参照してください。 | 
7.3.41.5.13. SOURCES¶
SOURCES はこのインデックスカラムのソースの一覧を表します。
SOURCES は SOURCE の配列です。:
[
  SOURCE_1,
  SOURCE_2,
  ...,
  SOURCE_n
]
SOURCE は次のプロパティを持ちます。:
{
  "id":   ID,
  "NAME": NAME
}
| 名前 | 説明 | 
|---|---|
| 
 | このソーステーブルまたはソースカラムのID。数値。 | 
| 
 | このソーステーブルまたはソースカラムの名前。文字列。 |