null+****@clear*****
null+****@clear*****
2010年 6月 30日 (水) 20:21:27 JST
Tasuku SUENAGA a.k.a. gunyarakun 2010-06-30 11:21:27 +0000 (Wed, 30 Jun 2010) New Revision: a4ce6662116ec2c6aefae0131446fa165ee52b94 Log: Added parameter descriptions of grn_table_cursor_open. Modified files: groonga.h Modified: groonga.h (+39 -5) =================================================================== --- groonga.h 2010-06-30 01:34:55 +0000 (04c35c5) +++ groonga.h 2010-06-30 11:21:27 +0000 (91cb6a5) @@ -664,18 +664,52 @@ typedef grn_obj grn_table_cursor; /** * grn_table_cursor_open: * @table: 対象table - * @min: keyの下限 (NULLは下限なしと見なす) - * @min_size: @minのsize - * @max: keyの上限 (NULLは上限なしと見なす) - * @max_size: @maxのsize + * @min: keyの下限 (NULLは下限なしと見なす)、GRN_CURSOR_PREFIXについては後述 + * @min_size: @minのsize、GRN_CURSOR_PREFIXについては後述 + * @max: keyの上限 (NULLは上限なしと見なす)、GRN_CURSOR_PREFIXについては後述 + * @max_size: @maxのsize、GRN_CURSOR_PREFIXについては無視される場合がある * @flags: GRN_CURSOR_ASCENDINGを指定すると昇順にレコードを取り出す。 * GRN_CURSOR_DESCENDINGを指定すると降順にレコードを取り出す。 + * (下記GRN_CURSOR_PREFIXを指定し、 + * 似ているレコードを取得する場合、 + * もしくは、common prefix searchを行う場合には、 + * GRN_CURSOR_ASCENDING/DESCENDINGは無視される) * GRN_CURSOR_GTを指定するとminに一致したkeyをcursorの範囲に含まない。 + * (minがNULLの場合もしくは、下記GRN_CURSOR_PREFIXを指定し、 + * 似ているレコードを取得する場合、 + * もしくは、common prefix searchを行う場合には、 + * GRN_CURSOR_GTは無視される) * GRN_CURSOR_LTを指定するとmaxに一致したkeyをcursorの範囲に含まない。 + * (maxがNULLの場合もしくは、下記GRN_CURSOR_PREFIXを指定した場合には、 + * GRN_CURSOR_LTは無視される) * GRN_CURSOR_BY_IDを指定するとID順にレコードを取り出す。 + * (下記GRN_CURSOR_PREFIXを指定した場合には、 + * GRN_CURSOR_BY_IDは無視される) * GRN_OBJ_TABLE_PAT_KEYを指定したtableについては、 * GRN_CURSOR_BY_KEYを指定するとkey順にレコードを取り出す。 - * (GRN_OBJ_TABLE_HASH_KEY,GRN_OBJ_TABLE_NO_KEYではGRN_CURSOR_BY_KEYは無視される) + * (GRN_OBJ_TABLE_HASH_KEY,GRN_OBJ_TABLE_NO_KEYを指定したテーブルでは + * GRN_CURSOR_BY_KEYは無視される) + * GRN_CURSOR_PREFIXを指定すると、 + * GRN_OBJ_TABLE_PAT_KEYを指定したテーブルに関する + * 下記のレコードを取り出すカーソルが作成される。 + * maxがNULLの場合には、minと主キーが前方一致するレコードを取り出す。 + * maxが指定され、かつ、テーブルの主キーがShortText型である場合、 + * maxとcommon prefix searchを行い、 + * common prefixがmin_sizeバイト以上のレコードを取り出す。 + * この場合、minパラメータは無視される。 + * maxが指定され、かつ、テーブルの主キーが固定長型の場合、 + * maxと似ている順番にレコードを取り出す。 + * ただし、主キーのパトリシア木で、min_sizeバイト未満のビットに対する + * ノードで、maxと異なった方向にあるノードに対応するレコードについては + * 取り出さない。 + * 「似ている」ことの定義は、主キーの型によって異なる。 + * (GeoPoint型では、地理的に近いものほど似ているとし、 + * 数値型では、数値が近いものほど似ているとする) + * この場合、maxで与えられるポインタが指す値は、 + * 対象テーブルの主キーサイズと同じか超える幅である必要がある。 + * minとmax_sizeは無視される。 + * GRN_CURSOR_BY_ID/GRN_CURSOR_BY_KEY/GRN_CURSOR_PREFIXの3フラグは、 + * 同時に指定することができない。 * @offset: 該当する範囲のレコードのうち、(0ベースで)offset番目からレコードを取り出す。 * @limit: 該当する範囲のレコードのうち、limit件のみを取り出す。 * -1が指定された場合は、全件が指定されたものとみなす。