# groonga - オープンソースのカラムストア機能付き全文検索エンジン

- English page

# 7.3.11. `column_rename`

## 7.3.11.1. 概要

`column_rename` コマンドはカラム名を変更します。

軽い操作です。名前とカラムオブジェクト間の関係を変更するだけです。カラムの値をコピーしません。

危険な操作です。 `column_rename` が走っている間、読み取り操作を含む全ての操作を停止しなければいけません。以下のケースが起こった場合、Groongaプロセスはクラッシュするかもしれません。

> - 現在のカラム名によって名前が変更されるカラムにアクセスする操作( `select` のような)を開始します。カラム名が変更されるため、下記では現在のカラム名は `古いカラム名` と呼ばれます。

> - `column_rename` を走らせます。 `select` はまだ実行されています。

> - `select` は古いカラム名によって名前が変更されたカラムにアクセスします。しかし、カラムはすでに新しいカラム名に変更されているため、`select` は古いカラム名によってカラムを見つけることができません。Groongaプロセスはクラッシュするでしょう。

## 7.3.11.2. 構文

`column_rename` コマンドは引数を3つとります。すべて必須です:

    column_rename table name new_name

## 7.3.11.3. 使い方

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

実行例:

    table_create Users TABLE_PAT_KEY ShortText
    # [[0, 1337566253.89858, 0.000355720520019531], true]
    column_create Users score COLUMN_SCALAR Int32
    # [[0, 1337566253.89858, 0.000355720520019531], true]
    load --table Users
    [
    {"_key": "Alice",  "score": 2},
    {"_key": "Bob",    "score": 0},
    {"_key": "Carlos", "score": -1}
    ]
    # [[0, 1337566253.89858, 0.000355720520019531], 3]
    column_rename Users score point
    # [[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"
    #       ]
    #     ],
    #     [
    #       256,
    #       "_key",
    #       "",
    #       "",
    #       "COLUMN_SCALAR",
    #       "Users",
    #       "ShortText",
    #       []
    #     ],
    #     [
    #       257,
    #       "point",
    #       "/tmp/groonga-databases/commands_column_rename.0000101",
    #       "fix",
    #       "COLUMN_SCALAR|PERSISTENT",
    #       "Users",
    #       "Int32",
    #       []
    #     ]
    #   ]
    # ]
    select Users
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   [
    #     [
    #       [
    #         3
    #       ],
    #       [
    #         [
    #           "_id",
    #           "UInt32"
    #         ],
    #         [
    #           "_key",
    #           "ShortText"
    #         ],
    #         [
    #           "point",
    #           "Int32"
    #         ]
    #       ],
    #       [
    #         1,
    #         "Alice",
    #         2
    #       ],
    #       [
    #         2,
    #         "Bob",
    #         0
    #       ],
    #       [
    #         3,
    #         "Carlos",
    #         -1
    #       ]
    #     ]
    #   ]
    # ]

## 7.3.11.4. 引数

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

### 7.3.11.4.1. 必須引数

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

#### 7.3.11.4.1.1. `table`

名前を変更したいカラムが所属するテーブルの名前を指定します。

#### 7.3.11.4.1.2. `name`

名前を変更するカラムを指定します。

#### 7.3.11.4.1.3. `new_name`

新しいカラム名を指定します。

## 7.3.11.5. 戻り値

    [HEADER, SUCCEEDED_OR_NOT]

`HEADER`

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

`SUCCEEDED_OR_NOT`

> コマンドの実行が成功するとtrueを返します。失敗するとfalseを返します。