8.3.10. column_rename

8.3.10.1. 概要

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

It is a light operation. It just changes a relationship between name and the column object. It doesn't copy column values.

It is a dangerous operation. You must stop all operations including read operations while you run column_rename. If the following case is occurred, Groonga process may be crashed:

  • Starts an operation (like select) that accesses the column to be renamed by the current column name. The current column name is called as the old column name in the below because the column name is renamed.
  • Runs column_rename. The select is still running.
  • The select accesses the column to be renamed by the old column name. But the select can't find the column by the old name because the column has been renamed to the new column name. It may crash the Groonga process.

8.3.10.2. 構文

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

column_rename table name new_name

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

8.3.10.4. 引数

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

8.3.10.4.1. 必須引数

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

8.3.10.4.1.1. table

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

8.3.10.4.1.2. name

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

8.3.10.4.1.3. new_name

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

8.3.10.5. 戻り値

[HEADER, SUCCEEDED_OR_NOT]

HEADER

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

SUCCEEDED_OR_NOT

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