本文へスキップ
`Ctrl`+`K`

# 7.3.57. `schema`

## 7.3.57.1. 概要

Added in version 5.0.9.

`schema` コマンドはデータベース内のスキーマを返します。

このコマンドはデータベースの詳細を知りたいときに便利です。たとえば、データベースを視覚化したり、データベースのGUIを作ったりするときに便利です。

## 7.3.57.2. 構文

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

    schema

## 7.3.57.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]

このサンプルスキーマに対する `schema` コマンドの出力は次の通りです。

実行例:

    schema
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "plugins": {
    #     },
    #     "types": {
    #       "BFloat16": {
    #         "id": 20,
    #         "name": "BFloat16",
    #         "size": 2,
    #         "can_be_key_type": true,
    #         "can_be_value_type": true
    #       },
    #       "Bool": {
    #         "id": 3,
    #         "name": "Bool",
    #         "size": 1,
    #         "can_be_key_type": true,
    #         "can_be_value_type": true
    #       },
    #       "Float": {
    #         "id": 12,
    #         "name": "Float",
    #         "size": 8,
    #         "can_be_key_type": true,
    #         "can_be_value_type": true
    #       },
    #       "Float32": {
    #         "id": 19,
    #         "name": "Float32",
    #         "size": 4,
    #         "can_be_key_type": true,
    #         "can_be_value_type": true
    #       },
    #       "Int16": {
    #         "id": 6,
    #         "name": "Int16",
    #         "size": 2,
    #         "can_be_key_type": true,
    #         "can_be_value_type": true
    #       },
    #       "Int32": {
    #         "id": 8,
    #         "name": "Int32",
    #         "size": 4,
    #         "can_be_key_type": true,
    #         "can_be_value_type": true
    #       },
    #       "Int64": {
    #         "id": 10,
    #         "name": "Int64",
    #         "size": 8,
    #         "can_be_key_type": true,
    #         "can_be_value_type": true
    #       },
    #       "Int8": {
    #         "id": 4,
    #         "name": "Int8",
    #         "size": 1,
    #         "can_be_key_type": true,
    #         "can_be_value_type": true
    #       },
    #       "LongText": {
    #         "id": 16,
    #         "name": "LongText",
    #         "size": 2147483648,
    #         "can_be_key_type": false,
    #         "can_be_value_type": false
    #       },
    #       "Object": {
    #         "id": 2,
    #         "name": "Object",
    #         "size": 8,
    #         "can_be_key_type": true,
    #         "can_be_value_type": true
    #       },
    #       "ShortText": {
    #         "id": 14,
    #         "name": "ShortText",
    #         "size": 4096,
    #         "can_be_key_type": true,
    #         "can_be_value_type": false
    #       },
    #       "Text": {
    #         "id": 15,
    #         "name": "Text",
    #         "size": 65536,
    #         "can_be_key_type": false,
    #         "can_be_value_type": false
    #       },
    #       "Time": {
    #         "id": 13,
    #         "name": "Time",
    #         "size": 8,
    #         "can_be_key_type": true,
    #         "can_be_value_type": true
    #       },
    #       "TokyoGeoPoint": {
    #         "id": 17,
    #         "name": "TokyoGeoPoint",
    #         "size": 8,
    #         "can_be_key_type": true,
    #         "can_be_value_type": true
    #       },
    #       "UInt16": {
    #         "id": 7,
    #         "name": "UInt16",
    #         "size": 2,
    #         "can_be_key_type": true,
    #         "can_be_value_type": true
    #       },
    #       "UInt32": {
    #         "id": 9,
    #         "name": "UInt32",
    #         "size": 4,
    #         "can_be_key_type": true,
    #         "can_be_value_type": true
    #       },
    #       "UInt64": {
    #         "id": 11,
    #         "name": "UInt64",
    #         "size": 8,
    #         "can_be_key_type": true,
    #         "can_be_value_type": true
    #       },
    #       "UInt8": {
    #         "id": 5,
    #         "name": "UInt8",
    #         "size": 1,
    #         "can_be_key_type": true,
    #         "can_be_value_type": true
    #       },
    #       "WGS84GeoPoint": {
    #         "id": 18,
    #         "name": "WGS84GeoPoint",
    #         "size": 8,
    #         "can_be_key_type": true,
    #         "can_be_value_type": true
    #       }
    #     },
    #     "tokenizers": {
    #       "TokenBigram": {
    #         "id": 67,
    #         "name": "TokenBigram"
    #       },
    #       "TokenBigramIgnoreBlank": {
    #         "id": 72,
    #         "name": "TokenBigramIgnoreBlank"
    #       },
    #       "TokenBigramIgnoreBlankSplitSymbol": {
    #         "id": 73,
    #         "name": "TokenBigramIgnoreBlankSplitSymbol"
    #       },
    #       "TokenBigramIgnoreBlankSplitSymbolAlpha": {
    #         "id": 74,
    #         "name": "TokenBigramIgnoreBlankSplitSymbolAlpha"
    #       },
    #       "TokenBigramIgnoreBlankSplitSymbolAlphaDigit": {
    #         "id": 75,
    #         "name": "TokenBigramIgnoreBlankSplitSymbolAlphaDigit"
    #       },
    #       "TokenBigramSplitSymbol": {
    #         "id": 69,
    #         "name": "TokenBigramSplitSymbol"
    #       },
    #       "TokenBigramSplitSymbolAlpha": {
    #         "id": 70,
    #         "name": "TokenBigramSplitSymbolAlpha"
    #       },
    #       "TokenBigramSplitSymbolAlphaDigit": {
    #         "id": 71,
    #         "name": "TokenBigramSplitSymbolAlphaDigit"
    #       },
    #       "TokenDelimit": {
    #         "id": 65,
    #         "name": "TokenDelimit"
    #       },
    #       "TokenDelimitNull": {
    #         "id": 76,
    #         "name": "TokenDelimitNull"
    #       },
    #       "TokenDocumentVectorBM25": {
    #         "id": 82,
    #         "name": "TokenDocumentVectorBM25"
    #       },
    #       "TokenDocumentVectorTFIDF": {
    #         "id": 81,
    #         "name": "TokenDocumentVectorTFIDF"
    #       },
    #       "TokenMecab": {
    #         "id": 64,
    #         "name": "TokenMecab"
    #       },
    #       "TokenNgram": {
    #         "id": 78,
    #         "name": "TokenNgram"
    #       },
    #       "TokenPattern": {
    #         "id": 79,
    #         "name": "TokenPattern"
    #       },
    #       "TokenRegexp": {
    #         "id": 77,
    #         "name": "TokenRegexp"
    #       },
    #       "TokenTable": {
    #         "id": 80,
    #         "name": "TokenTable"
    #       },
    #       "TokenTrigram": {
    #         "id": 68,
    #         "name": "TokenTrigram"
    #       },
    #       "TokenUnigram": {
    #         "id": 66,
    #         "name": "TokenUnigram"
    #       }
    #     },
    #     "normalizers": {
    #       "NormalizerAuto": {
    #         "id": 83,
    #         "name": "NormalizerAuto"
    #       },
    #       "NormalizerHTML": {
    #         "id": 90,
    #         "name": "NormalizerHTML"
    #       },
    #       "NormalizerNFKC100": {
    #         "id": 85,
    #         "name": "NormalizerNFKC100"
    #       },
    #       "NormalizerNFKC121": {
    #         "id": 86,
    #         "name": "NormalizerNFKC121"
    #       },
    #       "NormalizerNFKC130": {
    #         "id": 87,
    #         "name": "NormalizerNFKC130"
    #       },
    #       "NormalizerNFKC150": {
    #         "id": 88,
    #         "name": "NormalizerNFKC150"
    #       },
    #       "NormalizerNFKC51": {
    #         "id": 84,
    #         "name": "NormalizerNFKC51"
    #       },
    #       "NormalizerTable": {
    #         "id": 89,
    #         "name": "NormalizerTable"
    #       }
    #     },
    #     "token_filters": {
    #       "TokenFilterNFKC100": {
    #         "id": 230,
    #         "name": "TokenFilterNFKC100"
    #       },
    #       "TokenFilterNFKC121": {
    #         "id": 231,
    #         "name": "TokenFilterNFKC121"
    #       },
    #       "TokenFilterNFKC130": {
    #         "id": 232,
    #         "name": "TokenFilterNFKC130"
    #       },
    #       "TokenFilterNFKC150": {
    #         "id": 233,
    #         "name": "TokenFilterNFKC150"
    #       }
    #     },
    #     "tables": {
    #       "Memos": {
    #         "id": 256,
    #         "name": "Memos",
    #         "type": "hash table",
    #         "key_type": {
    #           "id": 14,
    #           "name": "ShortText",
    #           "type": "type"
    #         },
    #         "value_type": null,
    #         "tokenizer": null,
    #         "normalizer": null,
    #         "normalizers": [
    #
    #         ],
    #         "token_filters": [
    #
    #         ],
    #         "indexes": [
    #
    #         ],
    #         "command": {
    #           "name": "table_create",
    #           "arguments": {
    #             "name": "Memos",
    #             "flags": "TABLE_HASH_KEY",
    #             "key_type": "ShortText"
    #           },
    #           "command_line": "table_create --name Memos --flags TABLE_HASH_KEY --key_type ShortText"
    #         },
    #         "columns": {
    #           "content": {
    #             "id": 257,
    #             "name": "content",
    #             "table": "Memos",
    #             "full_name": "Memos.content",
    #             "type": "scalar",
    #             "value_type": {
    #               "id": 15,
    #               "name": "Text",
    #               "type": "type"
    #             },
    #             "compress": null,
    #             "missing": "add",
    #             "invalid": "error",
    #             "section": false,
    #             "weight": false,
    #             "weight_float32": false,
    #             "weight_bfloat16": false,
    #             "position": false,
    #             "sources": [
    #
    #             ],
    #             "generator": "",
    #             "indexes": [
    #               {
    #                 "id": 259,
    #                 "full_name": "Terms.memos_content_index",
    #                 "table": "Terms",
    #                 "name": "memos_content_index",
    #                 "section": 0
    #               }
    #             ],
    #             "command": {
    #               "name": "column_create",
    #               "arguments": {
    #                 "table": "Memos",
    #                 "name": "content",
    #                 "flags": "COLUMN_SCALAR",
    #                 "type": "Text"
    #               },
    #               "command_line": "column_create --table Memos --name content --flags COLUMN_SCALAR --type Text"
    #             }
    #           }
    #         }
    #       },
    #       "Terms": {
    #         "id": 258,
    #         "name": "Terms",
    #         "type": "patricia trie",
    #         "key_type": {
    #           "id": 14,
    #           "name": "ShortText",
    #           "type": "type"
    #         },
    #         "value_type": null,
    #         "tokenizer": {
    #           "id": 67,
    #           "name": "TokenBigram",
    #           "options": null
    #         },
    #         "normalizer": {
    #           "id": 83,
    #           "name": "NormalizerAuto",
    #           "options": null
    #         },
    #         "normalizers": [
    #           {
    #             "id": 83,
    #             "name": "NormalizerAuto",
    #             "options": null
    #           }
    #         ],
    #         "token_filters": [
    #
    #         ],
    #         "indexes": [
    #
    #         ],
    #         "command": {
    #           "name": "table_create",
    #           "arguments": {
    #             "name": "Terms",
    #             "flags": "TABLE_PAT_KEY",
    #             "key_type": "ShortText",
    #             "default_tokenizer": "TokenBigram",
    #             "normalizer": "NormalizerAuto"
    #           },
    #           "command_line": "table_create --name Terms --flags TABLE_PAT_KEY --key_type ShortText --default_tokenizer TokenBigram --normalizer NormalizerAuto"
    #         },
    #         "columns": {
    #           "memos_content_index": {
    #             "id": 259,
    #             "name": "memos_content_index",
    #             "table": "Terms",
    #             "full_name": "Terms.memos_content_index",
    #             "type": "index",
    #             "value_type": {
    #               "id": 256,
    #               "name": "Memos",
    #               "type": "reference"
    #             },
    #             "compress": null,
    #             "missing": null,
    #             "invalid": null,
    #             "section": false,
    #             "weight": false,
    #             "weight_float32": false,
    #             "weight_bfloat16": false,
    #             "position": true,
    #             "sources": [
    #               {
    #                 "id": 257,
    #                 "name": "content",
    #                 "table": "Memos",
    #                 "full_name": "Memos.content"
    #               }
    #             ],
    #             "generator": "",
    #             "indexes": [
    #
    #             ],
    #             "command": {
    #               "name": "column_create",
    #               "arguments": {
    #                 "table": "Terms",
    #                 "name": "memos_content_index",
    #                 "flags": "COLUMN_INDEX|WITH_POSITION",
    #                 "type": "Memos",
    #                 "source": "content"
    #               },
    #               "command_line": "column_create --table Terms --name memos_content_index --flags COLUMN_INDEX|WITH_POSITION --type Memos --source content"
    #             }
    #           }
    #         }
    #       }
    #     }
    #   }
    # ]

## 7.3.57.4. 引数

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

### 7.3.57.4.1. 必須引数

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

### 7.3.57.4.2. 省略可能引数

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

## 7.3.57.5. 戻り値

`schema` はこのデータベースのスキーマを返します。:

    [HEADER, SCHEMA]

### 7.3.57.5.1. `HEADER`

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

### 7.3.57.5.2. `SCHEMA`

`SCHEMA` は以下の情報を含んだオブジェクトです。:

    {
      "plugins":       PLUGINS,
      "types":         TYPES,
      "tokenizers":    TOKENIZERS,
      "normalizers":   NORMALIZERS,
      "token_filters": TOKEN_FITLERS,
      "tables":        TABLES
    }

### 7.3.57.5.3. `PLUGINS`

`PLUGINS` はオブジェクトです。キーはプラグイン名で値はプラグインの詳細です。:

    {
      "PLUGIN_NAME_1": PLUGIN_1,
      "PLUGIN_NAME_2": PLUGIN_2,
      ...
      "PLUGIN_NAME_n": PLUGIN_n
    }

### 7.3.57.5.4. `PLUGIN`

`PLUGIN` はプラグインの詳細を示すオブジェクトです。

    {
      "name": PLUGIN_NAME
    }

以下は `PLUGIN` のプロパティです。

名前 | 説明
--- | ---
`name` | プラグイン名。 plugin_register で使います。

### 7.3.57.5.5. `TYPES`

`TYPES` はオブジェクトです。キーは型名で、値は型の詳細です。:

    {
      "TYPE_NAME_1": TYPE_1,
      "TYPE_NAME_2": TYPE_2,
      ...
      "TYPE_NAME_n": TYPE_n
    }

### 7.3.57.5.6. `TYPE`

`TYPE` は型の詳細を示すオブジェクトです。:

    {
      "name": TYPE_NAME,
      "size": SIZE_OF_ONE_VALUE_IN_BYTE,
      "can_be_key_type": BOOLEAN,
      "can_be_value_type": BOOLEAN
    }

以下は `TYPE` のプロパティです。

名前 | 説明
--- | ---
`name` | 型名。
`size` | 1つの値のバイト数です。
`can_be_key_type` | この型をテーブルのキーの型に使えるなら `true` 、そうでないなら `false` 。
`can_be_value_type` | この型をテーブルの値の型に使えるなら `true` 、そうでないなら `false` 。

### 7.3.57.5.7. `TOKENIZERS`

`TOKENIZERS` はオブジェクトです。キーはトークナイザー名で値はトークナイザーの詳細です。:

    {
      "TOKENIZER_NAME_1": TOKENIZER_1,
      "TOKENIZER_NAME_2": TOKENIZER_2,
      ...
      "TOKENIZER_NAME_n": TOKENIZER_n
    }

### 7.3.57.5.8. `TOKENIZER`

`TOKENIZER` はトークナイザーの詳細を示すオブジェクトです。:

    {
      "name": TOKENIZER_NAME
    }

以下は `TOKENIZER` のプロパティです。

名前 | 説明
--- | ---
`name` | トークナイザー名。 default_tokenizer で使います。

### 7.3.57.5.9. `NORMALIZERS`

`NORMALIZERS` はオブジェクトです。キーはノーマライザー名で値はノーマライザーの詳細です。:

    {
      "NORMALIZER_NAME_1": NORMALIZER_1,
      "NORMALIZER_NAME_2": NORMALIZER_2,
      ...
      "NORMALIZER_NAME_n": NORMALIZER_n
    }

### 7.3.57.5.10. `NORMALIZER`

`NORMALIZER` はノーマライザーの詳細を示すオブジェクトです。:

    {
      "name": NORMALIZER_NAME
    }

以下は `NORMALIZER` のプロパティです。

名前 | 説明
--- | ---
`name` | ノーマライザー名。 normalizer で使います。

### 7.3.57.5.11. `TOKEN_FILTERS`

`TOKEN_FILTERS` はオブジェクトです。キーはトークンフィルター名で値はトークンフィルターの詳細です。:

    {
      "TOKEN_FILTER_NAME_1": TOKEN_FILTER_1,
      "TOKEN_FILTER_NAME_2": TOKEN_FILTER_2,
      ...
      "TOKEN_FILTER_NAME_n": TOKEN_FILTER_n
    }

### 7.3.57.5.12. `TOKEN_FILTER`

`TOKEN_FILTER` はトークンフィルターの詳細を示すオブジェクトです。:

    {
      "name": TOKEN_FILTER_NAME
    }

以下は `TOKEN_FILTER` のプロパティです。

名前 | 説明
--- | ---
`name` | トークンフィルター名。 token_filters で使います。

### 7.3.57.5.13. `TABLES`

`TABLES` はオブジェクトです。キーはテーブル名で値はテーブルの詳細です。:

    {
      "TABLE_NAME_1": TABLE_1,
      "TABLE_NAME_2": TABLE_2,
      ...
      "TABLE_NAME_n": TABLE_n
    }

### 7.3.57.5.14. `TABLE`

`TABLE` はテーブルの詳細を示すオブジェクトです。

    {
      "name": TABLE_NAME
      "type": TYPE,
      "key_type": KEY_TYPE,
      "value_type": VALUE_TYPE,
      "tokenizer": TOKENIZER,
      "normalizer": NORMALIZER,
      "token_filters": [
        TOKEN_FILTER_1,
        TOKEN_FILTER_2,
        ...,
        TOKEN_FILTER_n,
      ],
      "indexes": [
        INDEX_1,
        INDEX_2,
        ...,
        INDEX_n
      ],
      "command": COMMAND,
      "columns": {
        "COLUMN_NAME_1": COLUMN_1,
        "COLUMN_NAME_2": COLUMN_2,
        ...,
        "COLUMN_NAME_3": COLUMN_3,
      }
    }

以下は `TABLE` のプロパティです。

名前 | 説明
--- | ---
`name` | テーブル名。

`type`

テーブルの種類。

以下のどれかです。

- `array`: TABLE_NO_KEY

- `hash`: TABLE_HASH_KEY

- `patricia trie`: TABLE_PAT_KEY

- `double array trie`: TABLE_DAT_KEY

`key_type`

テーブルのキーの型。

テーブルの種類が `array` なら `null` になります。

テーブルの種類が `array` でなければオブジェクトになります。オブジェクトは次のプロパティを持ちます。

- `name` ：型名。

- `type` ：もし型がテーブルなら `reference` 、そうでないなら `type` 。

`value_type`

テーブルの値の型。

テーブルが「値」を使っていない場合は `null` になります。

テーブルが「値」を使っている場合はオブジェクトになります。オブジェクトは次のプロパティを持ちます。

- `name` ：型名。

- `type` ：もし型がテーブルなら `reference` 、そうでないなら `type` 。

`tokenizer`

テーブルのトークナイザー。 default_tokenizer で指定されたものです。

テーブルがトークナイザーを使っていない場合は `null` になります。

テーブルがトークナイザーを使っている場合はオブジェクトになります。オブジェクトは次のプロパティを持ちます。

- `name` ：トークナイザー名。

`normalizer`

テーブルのノーマライザー。 normalizer で指定されたものです。

テーブルがノーマライザーを使っていない場合は `null` になります。

テーブルがノーマライザーを使っている場合はオブジェクトになります。オブジェクトは次のプロパティを持ちます。

- `name` ：ノーマライザー名。

`token_filters`

テーブルのトークンフィルターです。 token_filters で指定されたものです。

オブジェクトの配列です。オブジェクトは次のプロパティを持ちます。

- `name` ：トークンフィルター名。

`indexes` | テーブルのキーに対するインデックス。 INDEX の配列です。
`command` | このテーブルを作るためのGroongaコマンドに関する情報。 COMMAND になります。
`columns` | テーブルのカラム。 オブジェクトです。キーはカラム名で値は COLUMN です。

### 7.3.57.5.15. `INDEX`

`INDEX` はインデックスの詳細を示すオブジェクトです。:

    {
      "full_name": INDEX_COLUMN_NAME_WITH_TABLE_NAME,
      "table":     TABLE_NAME,
      "name":      INDEX_COLUMN_NAME,
      "section":   SECTION
    }

以下は `INDEX` のプロパティです。

名前 | 説明
--- | ---
`full_name` | テーブル名を含むインデックスカラム名。 例： `Terms.index`
`table` | インデックスカラムのテーブル名。 例： `Terms`
`name` | インデックスカラム名。 例： `index`
`section` | テーブルのキーに対するインデックスカラムのセクション番号。 インデックスカラムがマルチカラムインデックスでない場合は `0` になります。

### 7.3.57.5.16. `COMMAND`

`COMMAND` はこのテーブル・カラムを作る方法を示したオブジェクトです。:

    {
      "name": COMMAND_NAME,
      "arguments": {
        "KEY_1": "VALUE_1",
        "KEY_2": "VALUE_2",
        ...,
        "KEY_n": "VALUE_n"
      },
      "command_line": COMMAND_LINE
    }

以下は `COMMAND` のプロパティです。

名前 | 説明
--- | ---
`name` | このテーブル・カラムを作るGroongaコマンドの名前。
`arguments` | このテーブル・カラムを作るためのGroongaコマンドの引数。 オブジェクトになります。キーは引数名で値は引数の値です。
`command_line` | このテーブル・カラムを作るGroongaコマンドのコマンドラインです。 この文字列はGroongaが評価できます。

### 7.3.57.5.17. `COLUMN`

`COLUMN` はカラムの詳細を示したオブジェクトです。:

    {
      "name": COLUMN_NAME,
      "table": TABLE_NAME,
      "full_name": COLUMN_NAME_WITH_TABLE,
      "type": TYPE,
      "value_type": VALUE_TYPE,
      "compress": COMPRESS,
      "section": SECTION,
      "weight": WEIGHT,
      "compress": COMPRESS,
      "section": BOOLEAN,
      "weight": BOOLEAN,
      "position": BOOLEAN,
      "sources": [
        SOURCE_1,
        SOURCE_2,
        ...,
        SOURCE_n
      ],
      "generator": GENERATOR,
      "indexes": [
        INDEX_1,
        INDEX_2,
        ...,
        INDEX_n
      ],
      "command": COMMAND
    }

以下は `COLUMN` のプロパティです。

名前 | 説明
--- | ---
`name` | カラム名。 例： `age`
`table` | カラムのテーブル名。 例： `Users`
`full_name` | テーブル名を含むカラム名。 例： `Users.age`

`type`

カラムの種類。

以下のどれかです。

- `scalar`: スカラーカラム

- `vector`: ベクターカラム

- `index`: インデックスカラム

`value_type`

カラムの値の型。

オブジェクトです。このオブジェクトは次のプロパティを持ちます。

- `name` ：型名。

- `type` ：もし型がテーブルなら `reference` 、そうでないなら `type` 。

`compress`

カラムの圧縮方法です。

カラムがどの圧縮方法も使っていない場合は `null` になります。

カラムが圧縮方法を使っている場合は次のどれかになります。

- `zlib` ：カラムの値を圧縮するためにzlibを使います。

- `lz4` ：カラムの値を圧縮するためにLZ4を使います。

`section` | カラムがセクション情報を保存できるかどうか。 `WITH_SECTION` フラグ付きでカラムを作ったときは `true` 、そうでないときは `false` になります。 通常、インデックスカラムでない場合は `false` になります。
`weight` | カラムが重み情報を保存できるかどうか。 `WITH_WEIGHT` フラグ付きでカラムを作ったときは `true` 、そうでないときは `false` になります。
`position` | カラムが位置情報を保存できるかどうか。 `WITH_POSITION` フラグ付きでカラムを作ったときは `true` 、そうでないときは `false` になります。 通常、インデックスカラムでない場合は `false` になります。
`sources` | インデックスカラムのソースカラム。 SOURCE の配列になります。 インデックスカラムまたは 生成カラム の場合は1つ以上の要素になります。そうでない場合は空の配列になります。
`generator` | Added in version 14.1.0. スクリプト構文 の生成式です。 生成カラム でない場合は空文字列になります。
`indexes` | カラムのインデックス。 INDEX の配列です。
`command` | このカラムを作るためのGroongaコマンド情報。 COMMAND になります。

### 7.3.57.5.18. `SOURCE`

`SOURCE` はソースの詳細を示すオブジェクトです。:

    {
      "name":      COLUMN_NAME,
      "table":     TABLE_NAME,
      "full_name": COLUMN_NAME_WITH_TABLE_NAME
    }

以下は `SOURCE` のプロパティです。

名前 | 説明
--- | ---
`name` | ソースカラム名。 例： `content` `_key` 擬似カラムになるかもしれません。
`table` | ソースカラムのテーブル名。 例： `Memos`
`full_name` | テーブル名を含むソースカラム名。 例： `Memos.content`

## 7.3.57.6. 参考

- table_create

- column_create