7.3.44. object_remove
#
7.3.44.1. 概要#
Added in version 6.0.0.
object_remove
はオブジェクトを削除します。テーブル・カラム・コマンドなどあらゆるオブジェクトを削除できます。通常は table_remove 、 column_remove といった対象オブジェクト専用のコマンドを使うべきです。
object_remove
はあらゆるオブジェクトを削除できるため危険です。 object_remove
を使うときは注意してください。
object_remove
には「強制モード」があります。「強制モード」を使うと壊れたオブジェクトを削除できます。「強制モード」は grndb が報告した問題を解決するために有用です。
7.3.44.2. 構文#
このコマンドには2つの引数があります。:
object_remove name
[force=no]
7.3.44.3. 使い方#
name
で指定したデータベース内のオブジェクトを削除できます。
実行例:
object_remove Users
# [
# [
# -22,
# 1337566253.89858,
# 0.000355720520019531,
# "[object][remove] target object doesn't exist: <Users>",
# [
# [
# "command_object_remove",
# "lib/proc/proc_object.c",
# 2929
# ]
# ]
# ],
# false
# ]
table_create Users TABLE_HASH_KEY ShortText
# [[0,1337566253.89858,0.000355720520019531],true]
object_remove Users
# [[0,1337566253.89858,0.000355720520019531],true]
object_remove Users
は Users
テーブルを作る前は false
を返します。
object_remove Users
は Users
テーブルを作った後は true
を返します。
デフォルトでは壊れたオブジェクトを削除することはできません。
実行例:
table_create Users TABLE_HASH_KEY ShortText
# [[0,1337566253.89858,0.000355720520019531],true]
thread_limit 1
# [[0,1337566253.89858,0.000355720520019531],1]
database_unmap
# [[0,1337566253.89858,0.000355720520019531],true]
$ echo "BROKEN" > ${DB_PATH}.0000100
object_remove Users
# [
# [
# -22,
# 1337566253.89858,
# 0.000355720520019531,
# "[object][remove] failed to open the target object: <Users>",
# [
# [
# "command_object_remove",
# "lib/proc/proc_object.c",
# 2929
# ]
# ]
# ],
# false
# ]
object_exist Users
# [[0,1337566253.89858,0.000355720520019531],true]
force yes
を指定することで壊れたオブジェクトを削除できます。
実行例:
object_remove Users --force yes
# [[0,1337566253.89858,0.000355720520019531],true]
object_exist Users
# [[0,1337566253.89858,0.000355720520019531],false]
--force yes
は「強制モード」を有効にするという意味です。「強制モード」では壊れたオブジェクトを削除することができます。
7.3.44.4. 引数#
このセクションではすべての引数について説明します。
7.3.44.4.1. 必須引数#
必須の引数は1つです。
7.3.44.4.1.1. name
#
削除するテーブルの名前を指定します。
カラムを削除したいときは、次のように テーブル名.カラム名
という書式を使ってください。
実行例:
table_create Logs TABLE_NO_KEY
# [[0,1337566253.89858,0.000355720520019531],true]
column_create Logs timestamp COLUMN_SCALAR Time
# [[0,1337566253.89858,0.000355720520019531],true]
object_remove Logs.timestamp
# [[0,1337566253.89858,0.000355720520019531],true]
Logs.timestamp
内の Logs
がテーブル名で timestamp
がカラム名です。
7.3.44.4.2. 省略可能引数#
省略可能な引数が1つあります。
7.3.44.4.2.1. force
#
「強制モード」でオブジェクトを削除するかどうかを指定します。
デフォルトでは壊れたオブジェクトを削除できません。しかし、「強制モード」を使えば壊れたオブジェクトを削除できます。
force
の値は yes
または no
でなければいけません。 yes
は「強制モード」を有効にするという意味です。 no
は「強制モード」を無効にするという意味です。
デフォルト値は no
です。デフォルトでは「強制モード」は無効ということです。
7.3.44.5. 戻り値#
エラーなしでデータベース内に指定した名前のオブジェクトを削除したときはボディは true
になります。例:
[HEADER, true]
このコマンドを実行している最中になにかしらエラーが発生したときはボディは false
になります。例:
[HEADER, false]
HEADER
については 出力形式 を参照してください。
false
が「このコマンドはオブジェクトを削除できなかった」ということを表すわけではないことに注意してください。「強制モード」を有効にすると、オブジェクトが壊れていても削除します。この場合、オブジェクトは削除されますが、ボディは false
になります。