# groonga - An open-source fulltext search engine and column store.

- 日本語

# 7.3.10. `column_create`

## 7.3.10.1. Summary

column_create - カラムの追加

Groonga組込コマンドの一つであるcolumn_createについて説明します。組込コマンドは、groonga実行ファイルの引数、標準入力、またはソケット経由でgroongaサーバにリクエストを送信することによって実行します。

column_createは、使用しているデータベースのテーブルに対してカラムを追加します。

## 7.3.10.2. Syntax

    column_create table name flags type [source]

## 7.3.10.3. Usage

テーブルEntryに、ShortText型の値を格納するカラム、bodyを作成します。:

    column_create Entry body --type ShortText
    [true]

テーブルTermに、Entryテーブルのbodyカラムの値を対象とする完全転置インデックス型カラム、entry_bodyを作成します。:

    column_create Term entry_body COLUMN_INDEX|WITH_POSITION Entry body
    [true]

## 7.3.10.4. Parameters

`table`

> カラムを追加するテーブルの名前を指定します。

`name`

> 作成するカラムの名前を指定します。カラム名は、テーブルの中で一意でなければなりません。

> ピリオド('.'), コロン(':')を含む名前のカラムは作成できません。また、アンダースコア('_')で始まる名前は予約済みであり、使用できません。

`flags`

> カラムの属性を表す以下の数値か、パイプ('|')で組み合わせたシンボル名を指定します。

> 0, `COLUMN_SCALAR`
>   単一の値が格納できるカラムを作成します。
> 1, `COLUMN_VECTOR`
>   複数の値の配列を格納できるカラムを作成します。
> 2, `COLUMN_INDEX`
>   インデックス型のカラムを作成します。

> There are two flags to compress the value of column, but you can't specify these flags for now because there are memory leaks issue GitHub#6 when refers the value of column. This issue occurs both of them (zlib and lzo).

> 16, `COMPRESS_ZLIB`
>   Compress the value of column by using zlib. This flag is enabled when you build Groonga with `--with-zlib`.
> 32, `COMPRESS_LZO`
>   Compress the value of column by using lzo. This flag is enabled when you build Groonga with `--with-lzo`.

> インデックス型のカラムについては、flagsの値に以下の値を加えることによって、追加の属 性を指定することができます。

> 128, `WITH_SECTION`
>   段落情報を格納するインデックスを作成します。
> 256, `WITH_WEIGHT`
>   ウェイト情報を格納するインデックスを作成します。
> 512, `WITH_POSITION`
>   位置情報を格納するインデックス(完全転置インデックス)を作成します。

`type`

> 値の型を指定します。Groongaの組込型か、同一データベースに定義済みのユーザ定義型、定義済みのテーブルを指定することができます。

`source`

> インデックス型のカラムを作成した場合は、インデックス対象となるカラムをsource引数に指定します。

## 7.3.10.5. Return value

    [HEADER, SUCCEEDED]

`HEADER`

> See Output format about `HEADER`.

`SUCCEEDED`

> If command is succeeded, it returns true on success, false otherwise.