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

# 7.3.14. `column_list`

## 7.3.14.1. 概要

`column_list` コマンドはテーブルにあるカラムの一覧を返します。

## 7.3.14.2. 構文

このコマンドの引数は1つで必須です:

    column_list table

## 7.3.14.3. 使い方

以下は `column_list` コマンドの簡単な使用例です。

実行例:

    table_create Users TABLE_PAT_KEY ShortText
    # [[0,1337566253.89858,0.000355720520019531],true]
    column_create Users age COLUMN_SCALAR UInt8
    # [[0,1337566253.89858,0.000355720520019531],true]
    column_create Users tags COLUMN_VECTOR ShortText
    # [[0,1337566253.89858,0.000355720520019531],true]
    column_list Users
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   [
    #     [
    #       [
    #         "id",
    #         "UInt32"
    #       ],
    #       [
    #         "name",
    #         "ShortText"
    #       ],
    #       [
    #         "path",
    #         "ShortText"
    #       ],
    #       [
    #         "type",
    #         "ShortText"
    #       ],
    #       [
    #         "flags",
    #         "ShortText"
    #       ],
    #       [
    #         "domain",
    #         "ShortText"
    #       ],
    #       [
    #         "range",
    #         "ShortText"
    #       ],
    #       [
    #         "source",
    #         "ShortText"
    #       ],
    #       [
    #         "generator",
    #         "ShortText"
    #       ]
    #     ],
    #     [
    #       256,
    #       "_key",
    #       "",
    #       "",
    #       "COLUMN_SCALAR",
    #       "Users",
    #       "ShortText",
    #       [
    #
    #       ],
    #       ""
    #     ],
    #     [
    #       257,
    #       "age",
    #       "${DB_PATH}.0000101",
    #       "fix",
    #       "COLUMN_SCALAR|PERSISTENT",
    #       "Users",
    #       "UInt8",
    #       [
    #
    #       ],
    #       ""
    #     ],
    #     [
    #       258,
    #       "tags",
    #       "${DB_PATH}.0000102",
    #       "var",
    #       "COLUMN_VECTOR|PERSISTENT",
    #       "Users",
    #       "ShortText",
    #       [
    #
    #       ],
    #       ""
    #     ]
    #   ]
    # ]

## 7.3.14.4. 引数

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

### 7.3.14.4.1. 必須引数

すべての引数は必須です。

#### 7.3.14.4.1.1. `table`

カラムの一覧を取得するテーブルの名前を指定します。

## 7.3.14.5. 戻り値

`column_list` はテーブルのカラム一覧を返します。:

    [
      HEADER,
      [
        COLUMN_LIST_HEADER,
        COLUMN_INFORMATION1,
        COLUMN_INFORMATION2,
        ...
      ]
    ]

### 7.3.14.5.1. `HEADER`

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

### 7.3.14.5.2. `COLUMN_LIST_HEADER`

`COLUMN_LIST_HEADER` は各 COLUMN_INFORMATION の内容を説明します。

`COLUMN_LIST_HEADER` は次の形式を使います。

    [
      ["id",     "UInt32"],
      ["name",   "ShortText"],
      ["path",   "ShortText"],
      ["type",   "ShortText"],
      ["flags",  "ShortText"],
      ["domain", "ShortText"],
      ["range",  "ShortText"],
      ["source", "ShortText"]
      ["generator", "ShortText"]
    ]

以下のことを意味します。

- COLUMN_INFORMATION の1番目の要素は `id` の値で、その値の型は `UInt32` です。

- COLUMN_INFORMATION の2番目の要素は `name` の値で、その値の型は `ShortText` です。

- COLUMN_INFORMATION の3番目の要素は...

このフィールドはカラムの情報のメタデータを提供します。したがって、このフィールドは人ではなくプログラムに有用です。

### 7.3.14.5.3. `COLUMN_INFORMATION`

各 `COLUMN_INFORMATION` は次の形式を使います。:

    [
      ID,
      NAME,
      PATH,
      TYPE,
      FLAGS,
      DOMAIN,
      RANGE,
      SOURCES,
      GENERATOR
    ]

#### 7.3.14.5.3.1. `ID`

このカラムのGroongaデータベース内でのIDです。通常、それを気にする必要はありません。

#### 7.3.14.5.3.2. `NAME`

カラム名。

#### 7.3.14.5.3.3. `PATH`

カラムのデータを保存しているパス。

#### 7.3.14.5.3.4. `TYPE`

カラムの型。次のうちのどれかです。

値 | 説明
--- | ---
`fix` | このカラムは、固定長カラムです。固定長型のスカラーカラムは、固定長カラムです。
`var` | このカラムは、可変長カラムです。ベクターカラムまたは可変長型のスカラーカラムは、可変長カラムです。
`index` | このカラムはインデックスカラムです。

#### 7.3.14.5.3.5. `FLAGS`

カラムのフラグです。各フラグは、`COLUMN_VECTOR|WITH_WEIGHT` のように `|` で分けられています。 `FLAGS` は、`COLUMN_SCALAR` , `COLUMN_VECTOR` , `COLUMN_INDEX` のいずれか１つを含まなければいけません。他のフラグは省略可能です。

有効なフラグは以下の通りです。

フラグ | 説明
--- | ---
`COLUMN_SCALAR` | このカラムはスカラーカラムです。
`COLUMN_VECTOR` | このカラムはベクターカラムです。
`COLUMN_INDEX` | このカラムはインデックスカラムです。
`WITH_WEIGHT` | このカラムは、重みを持つことができます。 `COLUMN_VECTOR` と `COLUMN_INDEX` は重みを持てます。 `COLUMN_SCALAR` は、重みを持ちません。
`WITH_SECTION` | このカラムはセクション(段落)情報を持つことができます。 `COLUMN_INDEX` はセクション(段落)情報を持てます。 `COLUMN_SCALAR` と `COLUMN_VECTOR` はセクション(段落)情報を持ちません。 マルチカラムインデックスはこのフラグを持ちます。
`WITH_POSITION` | このカラムは出現位置情報を持つことができます。 `COLUMN_INDEX` は出現位置情報を持てます。 `COLUMN_SCALAR` と `COLUMN_VECTOR` は出現位置情報を持ちません。 全文検索インデックスはこのフラグを持つべきです。
`PERSISTENT` | このカラムは永続カラムです。それは 擬似カラム ではないことを意味します。

#### 7.3.14.5.3.6. `DOMAIN`

カラムを持っているテーブルの名前です。

#### 7.3.14.5.3.7. `RANGE`

カラムの型名です。型名かテーブル名です。

#### 7.3.14.5.3.8. `SOURCES`

インデックスカラムまたは自動生成カラムがソースとして使うカラム名の配列です。

インデックスカラムがマルチカラムインデックスの場合、この配列には2つ以上のソースカラム名が入っています。

#### 7.3.14.5.3.9. `GENERATOR`

Added in version 14.1.0.

スクリプト構文 の生成式です。

このカラムが 生成カラム でないときだけ、1文字以上の文字列になります。それ以外の場合は空文字列になります。

## 7.3.14.6. 参考

- column_create

- カラム