7.25.22. grn_table
#
7.25.22.1. Summary#
TODO…
7.25.22.2. Example#
TODO…
7.25.22.3. Reference#
-
grn_id grn_table_lcp_search(grn_ctx *ctx, grn_obj *table, const void *key, unsigned int key_size)#
tableが
GRN_TABLE_PAT_KEY
もしくはGRN_TABLE_DAT_KEY
を指定して作ったtableなら、longest common prefix searchを行い、対応するIDを返します。tableが
GRN_TABLE_HASH_KEY
を指定して作ったtableなら、完全に一致するキーを検索し、対応するIDを返します。- Parameters:
table – 対象tableを指定します。
key – 検索keyを指定します。
-
int grn_table_get_key(grn_ctx *ctx, grn_obj *table, grn_id id, void *keybuf, int buf_size)#
tableのIDに対応するレコードのkeyを取得します。
対応するレコードが存在する場合はkey長を返します。見つからない場合は0を返します。対応するキーの検索に成功し、またbuf_sizeの長さがkey長以上であった場合は、keybufに該当するkeyをコピーします。
- Parameters:
table – 対象tableを指定します。
id – 対象レコードのIDを指定します。
keybuf – keyを格納するバッファ(呼出側で準備する)を指定します。
buf_size – keybufのサイズ(byte長)を指定します。
-
grn_rc grn_table_update_by_id(grn_ctx *ctx, grn_obj *table, grn_id id, const void *dest_key, unsigned int dest_key_size)#
tableのidに対応するレコードのkeyを変更します。新しいkeyとそのbyte長をdest_keyとdest_key_sizeに指定します。
この操作は、
GRN_TABLE_DAT_KEY
型のテーブルのみ使用できます。- Parameters:
table – 対象tableを指定します。
id – レコードIDを指定します。
-
grn_rc grn_table_truncate(grn_ctx *ctx, grn_obj *table)#
tableの全レコードを一括して削除します。
注意: multithread環境では他のthreadのアクセスによって、存在しないアドレスへアクセスし、SIGSEGVが発生する可能性があります。
- Parameters:
table – 対象tableを指定します。
-
type grn_table_sort_key#
TODO…
-
type grn_table_sort_flags#
TODO…
-
type grn_table_group_result#
TODO…
-
type grn_table_group_flags#
TODO…
-
grn_rc grn_table_group(grn_ctx *ctx, grn_obj *table, grn_table_sort_key *keys, int n_keys, grn_table_group_result *results, int n_results)#
tableのレコードを特定の条件でグループ化します。
- Parameters:
table – 対象tableを指定します。
keys – group化キー構造体の配列へのポインタを指定します。
n_keys – group化キー構造体の配列のサイズを指定します。
results – group化の結果を格納する構造体の配列へのポインタを指定します。
n_results – group化の結果を格納する構造体の配列のサイズを指定します。
-
grn_rc grn_table_setoperation(grn_ctx *ctx, grn_obj *table1, grn_obj *table2, grn_obj *res, grn_operator op)#
table1とtable2をopの指定に従って集合演算した結果をresに格納します。
resにtable1あるいはtable2そのものを指定した場合を除けば、table1, table2は破壊されません。
- Parameters:
table1 – 対象table1を指定します。
table2 – 対象table2を指定します。
res – 結果を格納するtableを指定します。
op – 実行する演算の種類を指定します。
-
grn_rc grn_table_difference(grn_ctx *ctx, grn_obj *table1, grn_obj *table2, grn_obj *res1, grn_obj *res2)#
table1とtable2から重複するレコードを取り除いた結果をそれぞれres1, res2に格納します。
- Parameters:
table1 – 対象table1を指定します。
table2 – 対象table2を指定します。
res1 – 結果を格納するtableを指定します。
res2 – 結果を格納するtableを指定します。
-
int grn_table_columns(grn_ctx *ctx, grn_obj *table, const char *name, unsigned int name_size, grn_obj *res)#
nameパラメータから始まるtableのカラムIDをresパラメータに格納します。name_sizeパラメータが0の場合はすべてのカラムIDを格納します。
- Parameters:
table – 対象tableを指定します。
name – 取得したいカラム名のprefixを指定します。
name_size – nameパラメータの長さを指定します。
res – 結果を格納する
GRN_TABLE_HASH_KEY
のtableを指定します。
- Returns:
格納したカラムIDの数を返します。