7.3.40. object_inspect

7.3.40.1. 概要

バージョン 6.0.0 で追加.

object_inspect はオブジェクトを調査します。オブジェクトの詳細を確認することができます。

例:

  • オブジェクトがテーブルの場合、テーブル内のレコード数を確認できます。

  • オブジェクトがカラムの場合、値の型を確認できます。

7.3.40.2. 構文

このコマンドの引数は1つで省略できます:

object_inspect [name=null]

7.3.40.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.40.4. 引数

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

7.3.40.4.1. 必須引数

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

7.3.40.4.2. 省略可能引数

省略可能な引数が1つあります。

7.3.40.4.2.1. name

調査対象のオブジェクト名を指定してください。

name を指定しないとデータベースを調査します。

7.3.40.5. 戻り値

このコマンドはボディとしてオブジェクト(たとえばテーブル)の詳細を含んだオブジェクト(ネストしたキーと値のペア)を返します。:

[HEADER, object]

HEADER については 出力形式 を参照してください。

オブジェクトの詳細のフォーマットはオブジェクトの種類に依存します。たとえば、テーブルはキーの情報を含みますが、関数はキーの情報を含みません。

7.3.40.5.1. データベース

データベースを調査すると次の情報を返します。:

{
  "type": {
    "id": DATABASE_TYPE_ID,
    "name": DATABASE_TYPE_NAME
  },
  "name_table": DATABASE_NAME_TABLE
}

7.3.40.5.1.1. DATABASE_TYPE_ID

DATABASE_TYPE_ID は常に 55 です。

7.3.40.5.1.2. DATABASE_TYPE_NAME

DATABASE_TYPE_NAME は常に "db" です。

7.3.40.5.1.3. DATABASE_NAME_TABLE

DATABASE_NAME_TABLE はデータベース内のオブジェクト名を管理するテーブルです。このテーブルは TABLE_PAT_KEY または TABLE_DAT_KEY です。通常、 TABLE_DAT_KEY です。

フォーマットの詳細は テーブル を参照してください。

7.3.40.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.40.5.2.1. TABLE_NAME

調査対象のテーブルの名前。

7.3.40.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.40.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.40.5.2.4. TABLE_KEY_TYPE

調査対象のテーブルのキーの型。

フォーマットの詳細は を参照してください。

7.3.40.5.2.5. TABLE_KEY_TOTAL_SIZE

調査対象のテーブルの総キーサイズ。単位はバイト。

7.3.40.5.2.6. TABLE_KEY_MAX_TOTAL_SIZE

調査対象のテーブルの最大総キーサイズ。単位はバイト。

7.3.40.5.2.7. TABLE_VALUE_TYPE

調査対象のテーブルの値の型。

フォーマットの詳細は を参照してください。

7.3.40.5.2.8. TABLE_N_RECORDS

調査対象のテーブルのレコード数。

64bitの正の整数です。

7.3.40.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.40.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.40.5.2.11. TYPE_NAME

調査対象の型の名前。

以下は組み込みの型の名前のリストです。

7.3.40.5.2.12. TYPE_ID_OF_TYPE

TYPE_ID_OF_TYPE は常に 32 です。

7.3.40.5.2.13. TYPE_NAME_OF_TYPE

TYPE_NAME_OF_TYPE は常に type です。

7.3.40.5.2.14. TYPE_SIZE

TYPE_SIZE は調査対象の型のサイズです。単位はバイトです。調査対象の型が可変長型の場合は、サイズは最大サイズという意味です。