Groonga
Loading...
Searching...
No Matches
dat.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define GRN_DAT_EACH(ctx, dat, id, key, key_size, block)
#define GRN_DAT_EACH_BEGIN(ctx, dat, cursor, id)
#define GRN_DAT_EACH_END(ctx, cursor)

Typedefs

typedef struct _grn_dat grn_dat
typedef struct _grn_dat_cursor grn_dat_cursor
typedef struct _grn_table_scan_hit grn_dat_scan_hit

Functions

GRN_API int grn_dat_scan (grn_ctx *ctx, grn_dat *dat, const char *str, unsigned int str_size, grn_dat_scan_hit *scan_hits, unsigned int max_num_scan_hits, const char **str_rest)
GRN_API grn_id grn_dat_lcp_search (grn_ctx *ctx, grn_dat *dat, const void *key, unsigned int key_size)
GRN_API grn_dat * grn_dat_create (grn_ctx *ctx, const char *path, unsigned int key_size, unsigned int value_size, unsigned int flags)
GRN_API grn_dat * grn_dat_open (grn_ctx *ctx, const char *path)
GRN_API grn_rc grn_dat_close (grn_ctx *ctx, grn_dat *dat)
GRN_API grn_rc grn_dat_remove (grn_ctx *ctx, const char *path)
GRN_API grn_id grn_dat_get (grn_ctx *ctx, grn_dat *dat, const void *key, unsigned int key_size, void **value)
GRN_API grn_id grn_dat_add (grn_ctx *ctx, grn_dat *dat, const void *key, unsigned int key_size, void **value, int *added)
GRN_API int grn_dat_get_key (grn_ctx *ctx, grn_dat *dat, grn_id id, void *keybuf, int bufsize)
GRN_API int grn_dat_get_key2 (grn_ctx *ctx, grn_dat *dat, grn_id id, grn_obj *bulk)
GRN_API grn_rc grn_dat_delete_by_id (grn_ctx *ctx, grn_dat *dat, grn_id id, grn_table_delete_optarg *optarg)
GRN_API grn_rc grn_dat_delete (grn_ctx *ctx, grn_dat *dat, const void *key, unsigned int key_size, grn_table_delete_optarg *optarg)
GRN_API grn_rc grn_dat_update_by_id (grn_ctx *ctx, grn_dat *dat, grn_id src_key_id, const void *dest_key, unsigned int dest_key_size)
GRN_API grn_rc grn_dat_update (grn_ctx *ctx, grn_dat *dat, const void *src_key, unsigned int src_key_size, const void *dest_key, unsigned int dest_key_size)
GRN_API unsigned int grn_dat_size (grn_ctx *ctx, grn_dat *dat)
GRN_API grn_dat_cursor * grn_dat_cursor_open (grn_ctx *ctx, grn_dat *dat, const void *min, unsigned int min_size, const void *max, unsigned int max_size, int offset, int limit, int flags)
GRN_API grn_id grn_dat_cursor_next (grn_ctx *ctx, grn_dat_cursor *c)
GRN_API void grn_dat_cursor_close (grn_ctx *ctx, grn_dat_cursor *c)
GRN_API int grn_dat_cursor_get_key (grn_ctx *ctx, grn_dat_cursor *c, const void **key)
GRN_API grn_rc grn_dat_cursor_delete (grn_ctx *ctx, grn_dat_cursor *c, grn_table_delete_optarg *optarg)
GRN_API size_t grn_dat_cursor_get_max_n_records (grn_ctx *ctx, grn_dat_cursor *c)

Macro Definition Documentation

◆ GRN_DAT_EACH

#define GRN_DAT_EACH ( ctx,
dat,
id,
key,
key_size,
block )
Value:
do { \
grn_dat_cursor *_sc = NULL; \
if (dat && grn_dat_size(ctx, dat) > 0) { \
_sc = grn_dat_cursor_open(ctx, dat, NULL, 0, NULL, 0, 0, -1, 0); \
} \
if (_sc) { \
grn_id id; \
unsigned int *_ks = (key_size); \
if (_ks) { \
while ((id = grn_dat_cursor_next(ctx, _sc))) { \
int _ks_raw = \
grn_dat_cursor_get_key(ctx, _sc, (const void **)(key)); \
*(_ks) = (unsigned int)_ks_raw; \
block \
} \
} else { \
while ((id = grn_dat_cursor_next(ctx, _sc))) { \
grn_dat_cursor_get_key(ctx, _sc, (const void **)(key)); \
block \
} \
} \
grn_dat_cursor_close(ctx, _sc); \
} \
} while (0)
GRN_API grn_dat_cursor * grn_dat_cursor_open(grn_ctx *ctx, grn_dat *dat, const void *min, unsigned int min_size, const void *max, unsigned int max_size, int offset, int limit, int flags)
struct _grn_dat_cursor grn_dat_cursor
Definition dat.h:27
GRN_API grn_id grn_dat_cursor_next(grn_ctx *ctx, grn_dat_cursor *c)
GRN_API unsigned int grn_dat_size(grn_ctx *ctx, grn_dat *dat)
uint32_t grn_id
Definition groonga.h:44

◆ GRN_DAT_EACH_BEGIN

#define GRN_DAT_EACH_BEGIN ( ctx,
dat,
cursor,
id )
Value:
do { \
if ((dat) && grn_dat_size((ctx), (dat)) > 0) { \
grn_dat_cursor *cursor = \
grn_dat_cursor_open((ctx), (dat), NULL, 0, NULL, 0, 0, -1, 0); \
if (cursor) { \
grn_id id; \
while ((id = grn_dat_cursor_next((ctx), (cursor))) != GRN_ID_NIL) {
#define GRN_ID_NIL
Means "does not exist".
Definition groonga.h:55

◆ GRN_DAT_EACH_END

#define GRN_DAT_EACH_END ( ctx,
cursor )
Value:
} \
grn_dat_cursor_close((ctx), (cursor)); \
} \
} \
} \
while (false)

Typedef Documentation

◆ grn_dat

typedef struct _grn_dat grn_dat

◆ grn_dat_cursor

typedef struct _grn_dat_cursor grn_dat_cursor

◆ grn_dat_scan_hit

Function Documentation

◆ grn_dat_add()

GRN_API grn_id grn_dat_add ( grn_ctx * ctx,
grn_dat * dat,
const void * key,
unsigned int key_size,
void ** value,
int * added )

◆ grn_dat_close()

GRN_API grn_rc grn_dat_close ( grn_ctx * ctx,
grn_dat * dat )

◆ grn_dat_create()

GRN_API grn_dat * grn_dat_create ( grn_ctx * ctx,
const char * path,
unsigned int key_size,
unsigned int value_size,
unsigned int flags )

◆ grn_dat_cursor_close()

GRN_API void grn_dat_cursor_close ( grn_ctx * ctx,
grn_dat_cursor * c )

◆ grn_dat_cursor_delete()

GRN_API grn_rc grn_dat_cursor_delete ( grn_ctx * ctx,
grn_dat_cursor * c,
grn_table_delete_optarg * optarg )

◆ grn_dat_cursor_get_key()

GRN_API int grn_dat_cursor_get_key ( grn_ctx * ctx,
grn_dat_cursor * c,
const void ** key )

◆ grn_dat_cursor_get_max_n_records()

GRN_API size_t grn_dat_cursor_get_max_n_records ( grn_ctx * ctx,
grn_dat_cursor * c )

◆ grn_dat_cursor_next()

GRN_API grn_id grn_dat_cursor_next ( grn_ctx * ctx,
grn_dat_cursor * c )

◆ grn_dat_cursor_open()

GRN_API grn_dat_cursor * grn_dat_cursor_open ( grn_ctx * ctx,
grn_dat * dat,
const void * min,
unsigned int min_size,
const void * max,
unsigned int max_size,
int offset,
int limit,
int flags )

◆ grn_dat_delete()

GRN_API grn_rc grn_dat_delete ( grn_ctx * ctx,
grn_dat * dat,
const void * key,
unsigned int key_size,
grn_table_delete_optarg * optarg )

◆ grn_dat_delete_by_id()

GRN_API grn_rc grn_dat_delete_by_id ( grn_ctx * ctx,
grn_dat * dat,
grn_id id,
grn_table_delete_optarg * optarg )

◆ grn_dat_get()

GRN_API grn_id grn_dat_get ( grn_ctx * ctx,
grn_dat * dat,
const void * key,
unsigned int key_size,
void ** value )

◆ grn_dat_get_key()

GRN_API int grn_dat_get_key ( grn_ctx * ctx,
grn_dat * dat,
grn_id id,
void * keybuf,
int bufsize )

◆ grn_dat_get_key2()

GRN_API int grn_dat_get_key2 ( grn_ctx * ctx,
grn_dat * dat,
grn_id id,
grn_obj * bulk )

◆ grn_dat_lcp_search()

GRN_API grn_id grn_dat_lcp_search ( grn_ctx * ctx,
grn_dat * dat,
const void * key,
unsigned int key_size )

◆ grn_dat_open()

GRN_API grn_dat * grn_dat_open ( grn_ctx * ctx,
const char * path )

◆ grn_dat_remove()

GRN_API grn_rc grn_dat_remove ( grn_ctx * ctx,
const char * path )

◆ grn_dat_scan()

GRN_API int grn_dat_scan ( grn_ctx * ctx,
grn_dat * dat,
const char * str,
unsigned int str_size,
grn_dat_scan_hit * scan_hits,
unsigned int max_num_scan_hits,
const char ** str_rest )

◆ grn_dat_size()

GRN_API unsigned int grn_dat_size ( grn_ctx * ctx,
grn_dat * dat )

◆ grn_dat_update()

GRN_API grn_rc grn_dat_update ( grn_ctx * ctx,
grn_dat * dat,
const void * src_key,
unsigned int src_key_size,
const void * dest_key,
unsigned int dest_key_size )

◆ grn_dat_update_by_id()

GRN_API grn_rc grn_dat_update_by_id ( grn_ctx * ctx,
grn_dat * dat,
grn_id src_key_id,
const void * dest_key,
unsigned int dest_key_size )