7.3.39. object_inspect
¶
7.3.39.1. 概要¶
バージョン 6.0.0 で追加.
object_inspect
はオブジェクトを調査します。オブジェクトの詳細を確認することができます。
例:
オブジェクトがテーブルの場合、テーブル内のレコード数を確認できます。
オブジェクトがカラムの場合、値の型を確認できます。
7.3.39.3. 使い方¶
name
で指定したデータベース内のオブジェクトを調査できます。
実行例:
table_create Users TABLE_HASH_KEY ShortText
# [[0, 1337566253.89858, 0.000355720520019531], true]
load --table Users
[
{"_key": "Alice"}
]
# [[0, 1337566253.89858, 0.000355720520019531], 1]
object_inspect Users
# [
# [
# 0,
# 1337566253.89858,
# 0.000355720520019531
# ],
# {
# "name": "Users",
# "n_records": 1,
# "value": {
# "type": null
# },
# "key": {
# "total_size": 5,
# "max_total_size": 4294967295,
# "type": {
# "size": 4096,
# "type": {
# "id": 32,
# "name": "type"
# },
# "id": 14,
# "name": "ShortText"
# }
# },
# "type": {
# "id": 48,
# "name": "table:hash_key"
# },
# "id": 256
# }
# ]
object_inspect Users
は以下の情報を返します。
テーブル名:
"name": Users
総キーサイズ:
"key": {"total_size": 5}
("Alice"
は5バイトのデータです。)最大総キーサイズ:
"key": {"max_total_size": 4294967295}
などなど。
name
を指定しないとデータベースを調査できます。
実行例:
object_inspect
# [
# [
# 0,
# 1337566253.89858,
# 0.000355720520019531
# ],
# {
# "name_table": {
# "name": "",
# "n_records": 256,
# "value": null,
# "key": {
# "type": null
# },
# "type": {
# "id": 50,
# "name": "table:dat_key"
# },
# "id": 0
# },
# "type": {
# "id": 55,
# "name": "db"
# }
# }
# ]
object_inspect
は以下の情報を返します。
オブジェクトの名前管理をしているテーブルの種類:
"key": {"type": {"name": "table:dat_key"}}
などなど。
7.3.39.5. 戻り値¶
このコマンドはボディとしてオブジェクト(たとえばテーブル)の詳細を含んだオブジェクト(ネストしたキーと値のペア)を返します。:
[HEADER, object]
HEADER
については 出力形式 を参照してください。
オブジェクトの詳細のフォーマットはオブジェクトの種類に依存します。たとえば、テーブルはキーの情報を含みますが、関数はキーの情報を含みません。
7.3.39.5.1. データベース¶
データベースを調査すると次の情報を返します。:
{
"type": {
"id": DATABASE_TYPE_ID,
"name": DATABASE_TYPE_NAME
},
"name_table": DATABASE_NAME_TABLE
}
7.3.39.5.1.1. DATABASE_TYPE_ID
¶
DATABASE_TYPE_ID
は常に 55
です。
7.3.39.5.1.2. DATABASE_TYPE_NAME
¶
DATABASE_TYPE_NAME
は常に "db"
です。
7.3.39.5.1.3. DATABASE_NAME_TABLE
¶
DATABASE_NAME_TABLE
はデータベース内のオブジェクト名を管理するテーブルです。このテーブルは TABLE_PAT_KEY または TABLE_DAT_KEY です。通常、 TABLE_DAT_KEY です。
フォーマットの詳細は テーブル を参照してください。
7.3.39.5.2. テーブル¶
テーブルを調査すると次の情報を返します。:
{
"name": TABLE_NAME,
"type": {
"id": TABLE_TYPE_ID,
"name": TABLE_TYPE_NAME
},
"key": {
"type": TABLE_KEY_TYPE,
"total_size": TABLE_KEY_TOTAL_SIZE
"max_total_size": TABLE_KEY_MAX_TOTAL_SIZE
},
"value": {
"type": TABLE_VALUE_TYPE,
},
"n_records": TABLE_N_RECORDS
}
いくつか例外があります。
TABLE_NO_KEY はキーの情報を返しません。なぜならキーを持っていないからです。
TABLE_DAT_KEY は値の情報を返しません。なぜなら値を持っていないからです。
7.3.39.5.2.1. TABLE_NAME
¶
調査対象のテーブルの名前。
7.3.39.5.2.2. TABLE_TYPE_ID
¶
調査対象のテーブルの種類のID
以下は種類のIDのリストです。
テーブルの種類 |
ID |
---|---|
TABLE_HASH_KEY | 48 |
TABLE_PAT_KEY | 49 |
TABLE_DAT_KEY | 50 |
TABLE_NO_KEY | 51 |
7.3.39.5.2.3. TABLE_TYPE_NAME
¶
調査対象のテーブルの種類の名前。
以下は種類の名前のリストです。
テーブルの種類 |
名前 |
---|---|
TABLE_HASH_KEY | "table:hash_key" |
TABLE_PAT_KEY | "table:pat_key" |
TABLE_DAT_KEY | "table:dat_key" |
TABLE_NO_KEY | "table:no_key" |
7.3.39.5.2.5. TABLE_KEY_TOTAL_SIZE
¶
調査対象のテーブルの総キーサイズ。単位はバイト。
7.3.39.5.2.6. TABLE_KEY_MAX_TOTAL_SIZE
¶
調査対象のテーブルの最大総キーサイズ。単位はバイト。
7.3.39.5.2.9. 型¶
型を調査すると次の情報を返します。
{
"id": TYPE_ID,
"name": TYPE_NAME,
"type": {
"id": TYPE_ID_OF_TYPE,
"name": TYPE_NAME_OF_TYPE
},
"size": TYPE_SIZE
}
7.3.39.5.2.10. TYPE_ID
¶
対象の型のIDです。
以下は組み込みの型のIDのリストです。
型 |
ID |
---|---|
Bool | 3 |
Int8 | 4 |
UInt8 | 5 |
Int16 | 6 |
UInt16 | 7 |
Int32 | 8 |
UInt32 | 9 |
Int64 | 10 |
UInt64 | 11 |
Float | 12 |
Time | 13 |
ShortText | 14 |
Text | 15 |
LongText | 16 |
TokyoGeoPoint | 17 |
WGS84GeoPoint | 18 |
7.3.39.5.2.12. TYPE_ID_OF_TYPE
¶
TYPE_ID_OF_TYPE
は常に 32
です。
7.3.39.5.2.13. TYPE_NAME_OF_TYPE
¶
TYPE_NAME_OF_TYPE
は常に type
です。
7.3.39.5.2.14. TYPE_SIZE
¶
TYPE_SIZE
は調査対象の型のサイズです。単位はバイトです。調査対象の型が可変長型の場合は、サイズは最大サイズという意味です。