7.25.19. grn_obj — Groonga v14.0.9 documentation

Skip to main content
`Ctrl`+`K`

# 7.25.19. `grn_obj`

## 7.25.19.1. Summary

TODO…

## 7.25.19.2. Example

TODO…

## 7.25.19.3. Reference

Note

We are currently switching to automatic generation using Doxygen.

type grn_obj

  TODO…

void grn_obj_unlink(grn_ctx *ctx, grn_obj *obj)

  objをメモリから解放します。objに属するobjectも再帰的にメモリから解放されます。

int grn_obj_name(grn_ctx *ctx, grn_obj *obj, char *namebuf, int buf_size)

  objの名前の長さを返します。無名objectなら0を返します。

  名前付きのobjectであり、buf_sizeの長さが名前の長以上であった場合は、namebufに該当する名前をコピーします。

  Parameters:

    - obj – 対象objectを指定します。

    - namebuf – 名前を格納するバッファ（呼出側で準備する）を指定します。

    - buf_size – namebufのサイズ（byte長）を指定します。

grn_id grn_obj_get_range(grn_ctx *ctx, grn_obj *obj)

  objパラメータのとる値の範囲を表わしているオブジェクトのIDを返します。例えば、`grn_builtin_type` にある `GRN_DB_INT` などを返します。

  Parameters:

    - obj – 対象objectを指定します。

int grn_obj_expire(grn_ctx *ctx, grn_obj *obj, int threshold)

  objの占有するメモリのうち、可能な領域をthresholdを指標として解放します。

  Parameters:

    - obj – 対象objectを指定します。

int grn_obj_check(grn_ctx *ctx, grn_obj *obj)

  objに対応するファイルの整合性を検査します。

  Parameters:

    - obj – 対象objectを指定します。

grn_rc grn_obj_lock(grn_ctx *ctx, grn_obj *obj, grn_id id, int timeout)

  objをlockします。timeout（秒）経過してもlockを取得できない場合は `GRN_RESOURCE_DEADLOCK_AVOIDED` を返します。

  Parameters:

    - obj – 対象objectを指定します。

grn_rc grn_obj_unlock(grn_ctx *ctx, grn_obj *obj, grn_id id)

  objをunlockします。

  Parameters:

    - obj – 対象objectを指定します。

grn_rc grn_obj_clear_lock(grn_ctx *ctx, grn_obj *obj)

  強制的にロックをクリアします。

  Parameters:

    - obj – 対象objectを指定します。

unsigned int grn_obj_is_locked(grn_ctx *ctx, grn_obj *obj)

  objが現在lockされていれば0以外の値を返します。

  Parameters:

    - obj – 対象objectを指定します。

int grn_obj_defrag(grn_ctx *ctx, grn_obj *obj, int threshold)

  objの占有するDBファイル領域のうち、可能な領域をthresholdを指標としてフラグメントの解消を行います。

  フラグメント解消が実行されたセグメントの数を返します。

  Parameters:

    - obj – 対象objectを指定します。

grn_id grn_obj_id(grn_ctx *ctx, grn_obj *obj)

  objのidを返します。

  Parameters:

    - obj – 対象objectを指定します。

grn_rc grn_obj_delete_by_id(grn_ctx *ctx, grn_obj *db, grn_id id, grn_bool removep)

  dbからidに対応するテーブルやカラムなどを削除します。mroonga向けに用意した内部APIです。

  Parameters:

    - db – The target database.

    - id – The object (table, column and so on) ID to be deleted.

    - removep – If `GRN_TRUE`, clear object cache and remove relation between ID and key in database. Otherwise, just clear object cache.

grn_rc grn_obj_path_by_id(grn_ctx *ctx, grn_obj *db, grn_id id, char *buffer)

  dbのidに対応するpathを返します。mroonga向けに用意した内部APIです。

  Parameters:

    - db – The target database.

    - id – The object (table, column and so on) ID to be deleted.

    - buffer – path string corresponding to the id will be set in this buffer.

grn_rc grn_obj_cast_by_id(grn_ctx *ctx, grn_obj *source, grn_obj *destination, grn_bool add_record_if_not_exist)

  It casts value of `source` to value with type of `destination`. Casted value is appended to `destination`.

  Both `source` and `destination` must be bulk.

  If `destination` is a reference type bulk. (Reference type bulk means that type of `destination` is a table.) `add_record_if_not_exist` is used. If `source` value doesn’t exist in the table that is a type of `destination`. The `source` value is added to the table.

  Parameters:

    - ctx – The context object.

    - source – The bulk to be casted.

    - destination – The bulk to specify cast target type and store casted value.

    - add_record_if_not_exist – Whether adding a new record if `source` value doesn’t exist in cast target table. This parameter is only used when `destination` is a reference type bulk.

  Returns:

    `GRN_SUCCESS` on success, not `GRN_SUCCESS` on error.