| 664 |
664 |
/**
|
| 665 |
665 |
* grn_table_cursor_open:
|
| 666 |
666 |
* @table: 対象table
|
| 667 |
|
* @min: keyの下限 (NULLは下限なしと見なす)
|
| 668 |
|
* @min_size: @minのsize
|
| 669 |
|
* @max: keyの上限 (NULLは上限なしと見なす)
|
| 670 |
|
* @max_size: @maxのsize
|
|
667 |
* @min: keyの下限 (NULLは下限なしと見なす)、GRN_CURSOR_PREFIXについては後述
|
|
668 |
* @min_size: @minのsize、GRN_CURSOR_PREFIXについては後述
|
|
669 |
* @max: keyの上限 (NULLは上限なしと見なす)、GRN_CURSOR_PREFIXについては後述
|
|
670 |
* @max_size: @maxのsize、GRN_CURSOR_PREFIXについては無視される場合がある
|
| 671 |
671 |
* @flags: GRN_CURSOR_ASCENDINGを指定すると昇順にレコードを取り出す。
|
| 672 |
672 |
* GRN_CURSOR_DESCENDINGを指定すると降順にレコードを取り出す。
|
|
673 |
* (下記GRN_CURSOR_PREFIXを指定し、
|
|
674 |
* 似ているレコードを取得する場合、
|
|
675 |
* もしくは、common prefix searchを行う場合には、
|
|
676 |
* GRN_CURSOR_ASCENDING/DESCENDINGは無視される)
|
| 673 |
677 |
* GRN_CURSOR_GTを指定するとminに一致したkeyをcursorの範囲に含まない。
|
|
678 |
* (minがNULLの場合もしくは、下記GRN_CURSOR_PREFIXを指定し、
|
|
679 |
* 似ているレコードを取得する場合、
|
|
680 |
* もしくは、common prefix searchを行う場合には、
|
|
681 |
* GRN_CURSOR_GTは無視される)
|
| 674 |
682 |
* GRN_CURSOR_LTを指定するとmaxに一致したkeyをcursorの範囲に含まない。
|
|
683 |
* (maxがNULLの場合もしくは、下記GRN_CURSOR_PREFIXを指定した場合には、
|
|
684 |
* GRN_CURSOR_LTは無視される)
|
| 675 |
685 |
* GRN_CURSOR_BY_IDを指定するとID順にレコードを取り出す。
|
|
686 |
* (下記GRN_CURSOR_PREFIXを指定した場合には、
|
|
687 |
* GRN_CURSOR_BY_IDは無視される)
|
| 676 |
688 |
* GRN_OBJ_TABLE_PAT_KEYを指定したtableについては、
|
| 677 |
689 |
* GRN_CURSOR_BY_KEYを指定するとkey順にレコードを取り出す。
|
| 678 |
|
* (GRN_OBJ_TABLE_HASH_KEY,GRN_OBJ_TABLE_NO_KEYではGRN_CURSOR_BY_KEYは無視される)
|
|
690 |
* (GRN_OBJ_TABLE_HASH_KEY,GRN_OBJ_TABLE_NO_KEYを指定したテーブル、
|
|
691 |
* もしくは、下記GRN_CURSOR_PREFIXを指定した場合には、
|
|
692 |
* GRN_CURSOR_BY_KEYは無視される)
|
|
693 |
* GRN_CURSOR_PREFIXを指定すると、
|
|
694 |
* GRN_OBJ_TABLE_PAT_KEYを指定したテーブルに関する
|
|
695 |
* 下記のレコードを取り出すカーソルが作成される。
|
|
696 |
* maxがNULLの場合には、minと主キーが前方一致するレコードを取り出す。
|
|
697 |
* maxが指定され、かつ、テーブルの主キーがShortText型である場合、
|
|
698 |
* maxとcommon prefix searchを行い、
|
|
699 |
* common prefixがmin_sizeバイト以上のレコードを取り出す。
|
|
700 |
* この場合、minパラメータは無視される。
|
|
701 |
* maxが指定され、かつ、テーブルの主キーが固定長型の場合、
|
|
702 |
* maxと似ている順番にレコードを取り出す。
|
|
703 |
* ただし、主キーのパトリシア木で、min_sizeバイト未満のビットに対する
|
|
704 |
* ノードで、maxと異なった方向にあるノードに対応するレコードについては
|
|
705 |
* 取り出さない。
|
|
706 |
* 「似ている」ことの定義は、主キーの型によって異なる。
|
|
707 |
* (GeoPoint型では、地理的に近いものほど似ているとし、
|
|
708 |
* 数値型では、数値が近いものほど似ているとする)
|
|
709 |
* この場合、maxで与えられるポインタが指す値は、
|
|
710 |
* 対象テーブルの主キーサイズと同じか超える幅である必要がある。
|
|
711 |
* minとmax_sizeは無視される。
|
| 679 |
712 |
* @offset: 該当する範囲のレコードのうち、(0ベースで)offset番目からレコードを取り出す。
|
| 680 |
713 |
* @limit: 該当する範囲のレコードのうち、limit件のみを取り出す。
|
| 681 |
714 |
* -1が指定された場合は、全件が指定されたものとみなす。
|
| 682 |
|
-
|