.. -*- rst -*-

.. highlightlang:: none

``column_create``
=================

Summary
-------

column_create - カラムの追加

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

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


Syntax
------
::

 column_create table name flags type [source]

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]

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 <https://github.com/groonga/groonga/issues/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引数に指定します。

Return value
------------

::

 [HEADER, SUCCEEDED]

``HEADER``

  See :doc:`/reference/command/output_format` about ``HEADER``.

``SUCCEEDED``

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