Groonga 3.0.9 Source Code Document
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Data Structures | Macros | Enumerations | Functions
hash.c File Reference
#include "hash.h"
#include "output.h"
#include <string.h>
#include <limits.h>
#include "store.h"
#include "normalizer_in.h"
Include dependency graph for hash.c:

Go to the source code of this file.

Data Structures

struct  grn_array_header
struct  grn_plain_hash_entry
struct  grn_rich_hash_entry
struct  grn_io_hash_entry
struct  grn_tiny_hash_entry
struct  grn_hash_entry_header
union  grn_hash_entry
struct  entry
struct  entry_str
struct  entry_astr
struct  val32

Macros

#define GRN_ARRAY_MAX   (GRN_ID_MAX - 8)
#define GRN_ARRAY_SEGMENT_SIZE   0x400000
#define GRN_HASH_MAX_SEGMENT   0x400
#define GRN_HASH_HEADER_SIZE   0x9000
#define GRN_HASH_SEGMENT_SIZE   0x400000
#define W_OF_KEY_IN_A_SEGMENT   22
#define IDX_MASK_IN_A_SEGMENT   0xfffff
#define LOGICAL_MAX_SEGMENT   ((GRN_HASH_MAX_SEGMENT) * 4)
#define HASH_IMMEDIATE   1
#define MAX_INDEX_SIZE   ((GRN_HASH_MAX_SEGMENT * (IDX_MASK_IN_A_SEGMENT + 1)) >> 1)
#define GARBAGE   (0xffffffff)
#define INITIAL_INDEX_SIZE   256U
#define DELETE_IT
#define HASH_CURR_MAX(hash)   ((grn_hash_is_io_hash(hash)) ? (hash)->header->curr_rec : (hash)->a.max)
#define PREPARE_VAL(e, ep, es)
#define COMPARE_VAL_(ap, as, bp, bs)
#define COMPARE_VAL(ap, as, bp, bs)   ((dir) ? COMPARE_VAL_((bp),(bs),(ap),(as)) : COMPARE_VAL_((ap),(as),(bp),(bs)))
#define SWAP(a, ap, as, b, bp, bs)
#define PREPARE_VAL32(id, e, ep)
#define COMPARE_VAL32_(ap, bp)
#define COMPARE_VAL32(ap, bp)   ((dir) ? COMPARE_VAL32_((bp),(ap)) : COMPARE_VAL32_((ap),(bp)))
#define SWAP_VAL32(ap, bp)

Enumerations

enum  { GRN_ARRAY_VALUE_SEGMENT = 0, GRN_ARRAY_BITMAP_SEGMENT = 1 }
enum  { GRN_HASH_KEY_SEGMENT = 0, GRN_HASH_ENTRY_SEGMENT = 1, GRN_HASH_INDEX_SEGMENT = 2, GRN_HASH_BITMAP_SEGMENT = 3 }

Functions

void grn_tiny_array_init (grn_ctx *ctx, grn_tiny_array *array, uint16_t element_size, uint16_t flags)
void grn_tiny_array_fin (grn_tiny_array *array)
void * grn_tiny_array_at (grn_tiny_array *array, grn_id id)
grn_id grn_tiny_array_id (grn_tiny_array *array, const void *element_address)
uint32_t grn_table_queue_size (grn_table_queue *queue)
void grn_table_queue_head_increment (grn_table_queue *queue)
void grn_table_queue_tail_increment (grn_table_queue *queue)
grn_id grn_table_queue_head (grn_table_queue *queue)
grn_id grn_table_queue_tail (grn_table_queue *queue)
void grn_array_queue_lock_clear (grn_ctx *ctx, grn_array *array)
grn_table_queuegrn_array_queue (grn_ctx *ctx, grn_array *array)
grn_arraygrn_array_create (grn_ctx *ctx, const char *path, uint32_t value_size, uint32_t flags)
grn_arraygrn_array_open (grn_ctx *ctx, const char *path)
grn_rc grn_array_close (grn_ctx *ctx, grn_array *array)
grn_rc grn_array_remove (grn_ctx *ctx, const char *path)
grn_rc grn_array_truncate (grn_ctx *ctx, grn_array *array)
int grn_array_get_value (grn_ctx *ctx, grn_array *array, grn_id id, void *valuebuf)
void * _grn_array_get_value (grn_ctx *ctx, grn_array *array, grn_id id)
grn_rc grn_array_set_value (grn_ctx *ctx, grn_array *array, grn_id id, const void *value, int flags)
grn_rc grn_array_delete_by_id (grn_ctx *ctx, grn_array *array, grn_id id, grn_table_delete_optarg *optarg)
grn_id grn_array_at (grn_ctx *ctx, grn_array *array, grn_id id)
grn_rc grn_array_copy_sort_key (grn_ctx *ctx, grn_array *array, grn_table_sort_key *keys, int n_keys)
void grn_array_cursor_close (grn_ctx *ctx, grn_array_cursor *cursor)
grn_array_cursorgrn_array_cursor_open (grn_ctx *ctx, grn_array *array, grn_id min, grn_id max, int offset, int limit, int flags)
grn_id grn_array_cursor_next (grn_ctx *ctx, grn_array_cursor *cursor)
grn_id grn_array_next (grn_ctx *ctx, grn_array *array, grn_id id)
int grn_array_cursor_get_value (grn_ctx *ctx, grn_array_cursor *cursor, void **value)
grn_rc grn_array_cursor_set_value (grn_ctx *ctx, grn_array_cursor *cursor, const void *value, int flags)
grn_rc grn_array_cursor_delete (grn_ctx *ctx, grn_array_cursor *cursor, grn_table_delete_optarg *optarg)
void grn_array_clear_curr_rec (grn_ctx *ctx, grn_array *array)
grn_id grn_array_add (grn_ctx *ctx, grn_array *array, void **value)
grn_id grn_array_push (grn_ctx *ctx, grn_array *array, void(*func)(grn_ctx *, grn_array *, grn_id, void *), void *func_arg)
grn_id grn_array_pull (grn_ctx *ctx, grn_array *array, grn_bool blockp, void(*func)(grn_ctx *, grn_array *, grn_id, void *), void *func_arg)
void grn_array_unblock (grn_ctx *ctx, grn_array *array)
grn_hashgrn_hash_create (grn_ctx *ctx, const char *path, uint32_t key_size, uint32_t value_size, uint32_t flags)
grn_hashgrn_hash_open (grn_ctx *ctx, const char *path)
grn_rc grn_hash_close (grn_ctx *ctx, grn_hash *hash)
grn_rc grn_hash_remove (grn_ctx *ctx, const char *path)
grn_rc grn_hash_truncate (grn_ctx *ctx, grn_hash *hash)
grn_rc grn_hash_lock (grn_ctx *ctx, grn_hash *hash, int timeout)
grn_rc grn_hash_unlock (grn_ctx *ctx, grn_hash *hash)
grn_rc grn_hash_clear_lock (grn_ctx *ctx, grn_hash *hash)
grn_id grn_hash_add (grn_ctx *ctx, grn_hash *hash, const void *key, unsigned int key_size, void **value, int *added)
grn_id grn_hash_get (grn_ctx *ctx, grn_hash *hash, const void *key, unsigned int key_size, void **value)
const char * _grn_hash_key (grn_ctx *ctx, grn_hash *hash, grn_id id, uint32_t *key_size)
int grn_hash_get_key (grn_ctx *ctx, grn_hash *hash, grn_id id, void *keybuf, int bufsize)
int grn_hash_get_key2 (grn_ctx *ctx, grn_hash *hash, grn_id id, grn_obj *bulk)
int grn_hash_get_value (grn_ctx *ctx, grn_hash *hash, grn_id id, void *valuebuf)
const char * grn_hash_get_value_ (grn_ctx *ctx, grn_hash *hash, grn_id id, uint32_t *size)
int grn_hash_get_key_value (grn_ctx *ctx, grn_hash *hash, grn_id id, void *keybuf, int bufsize, void *valuebuf)
int _grn_hash_get_key_value (grn_ctx *ctx, grn_hash *hash, grn_id id, void **key, void **value)
grn_rc grn_hash_set_value (grn_ctx *ctx, grn_hash *hash, grn_id id, const void *value, int flags)
grn_rc grn_hash_delete_by_id (grn_ctx *ctx, grn_hash *hash, grn_id id, grn_table_delete_optarg *optarg)
grn_rc grn_hash_delete (grn_ctx *ctx, grn_hash *hash, const void *key, uint32_t key_size, grn_table_delete_optarg *optarg)
const char * _grn_hash_strkey_by_val (void *v, uint16_t *size)
void grn_hash_cursor_close (grn_ctx *ctx, grn_hash_cursor *c)
grn_hash_cursorgrn_hash_cursor_open (grn_ctx *ctx, grn_hash *hash, const void *min, uint32_t min_size, const void *max, uint32_t max_size, int offset, int limit, int flags)
grn_id grn_hash_cursor_next (grn_ctx *ctx, grn_hash_cursor *c)
grn_id grn_hash_next (grn_ctx *ctx, grn_hash *hash, grn_id id)
grn_id grn_hash_at (grn_ctx *ctx, grn_hash *hash, grn_id id)
int grn_hash_cursor_get_key (grn_ctx *ctx, grn_hash_cursor *c, void **key)
int grn_hash_cursor_get_value (grn_ctx *ctx, grn_hash_cursor *c, void **value)
int grn_hash_cursor_get_key_value (grn_ctx *ctx, grn_hash_cursor *c, void **key, uint32_t *key_size, void **value)
grn_rc grn_hash_cursor_set_value (grn_ctx *ctx, grn_hash_cursor *c, const void *value, int flags)
grn_rc grn_hash_cursor_delete (grn_ctx *ctx, grn_hash_cursor *c, grn_table_delete_optarg *optarg)
int grn_hash_sort (grn_ctx *ctx, grn_hash *hash, int limit, grn_array *result, grn_table_sort_optarg *optarg)
void grn_hash_check (grn_ctx *ctx, grn_hash *hash)

Macro Definition Documentation

#define COMPARE_VAL (   ap,
  as,
  bp,
  bs 
)    ((dir) ? COMPARE_VAL_((bp),(bs),(ap),(as)) : COMPARE_VAL_((ap),(as),(bp),(bs)))

Definition at line 2727 of file hash.c.

#define COMPARE_VAL32 (   ap,
  bp 
)    ((dir) ? COMPARE_VAL32_((bp),(ap)) : COMPARE_VAL32_((ap),(bp)))

Definition at line 2875 of file hash.c.

#define COMPARE_VAL32_ (   ap,
  bp 
)
Value:
(arg->compar\
? arg->compar(ctx,\
(grn_obj *)hash, (void *)&(ap)->v, sizeof(uint32_t),\
(grn_obj *)hash, (void *)&(bp)->v, sizeof(uint32_t),\
arg->compar_arg)\
: ((arg->flags & GRN_TABLE_SORT_AS_NUMBER)\
? ((arg->flags & GRN_TABLE_SORT_AS_UNSIGNED)\
? *((uint32_t *)&(ap)->v) > *((uint32_t *)&(bp)->v)\
: *((int32_t *)&(ap)->v) > *((int32_t *)&(bp)->v))\
: memcmp(&(ap)->v, &(bp)->v, sizeof(uint32_t)) > 0))

Definition at line 2863 of file hash.c.

#define COMPARE_VAL_ (   ap,
  as,
  bp,
  bs 
)
Value:
(arg->compar\
? arg->compar(ctx,\
(grn_obj *)hash, (void *)(ap), as,\
(grn_obj *)hash, (void *)(bp), bs, arg->compar_arg)\
: ((arg->flags & GRN_TABLE_SORT_AS_NUMBER)\
? ((arg->flags & GRN_TABLE_SORT_AS_UNSIGNED)\
? ((arg->flags & GRN_TABLE_SORT_AS_INT64)\
? *((uint64_t *)(ap)) > *((uint64_t *)(bp))\
: *((uint32_t *)(ap)) > *((uint32_t *)(bp)))\
: ((arg->flags & GRN_TABLE_SORT_AS_INT64)\
? *((int64_t *)(ap)) > *((int64_t *)(bp))\
: *((int32_t *)(ap)) > *((int32_t *)(bp))))\
: grn_str_greater(ap, as, bp, bs)))

Definition at line 2712 of file hash.c.

#define DELETE_IT
Value:
do {\
*ep = GARBAGE;\
if (grn_hash_is_io_hash(hash)) {\
uint32_t size = key_size - 1;\
struct grn_hash_header *hh = hash->header;\
ee->key = hh->garbages[size];\
hh->garbages[size] = e;\
grn_io_array_bit_off(ctx, hash->io, GRN_HASH_BITMAP_SEGMENT, e);\
} else {\
ee->key = hash->garbages;\
hash->garbages = e;\
if ((hash->obj.header.flags & GRN_OBJ_KEY_VAR_SIZE) && !(ee->flag & HASH_IMMEDIATE)) {\
grn_ctx *ctx = hash->ctx;\
GRN_CTX_FREE(ctx, ((entry_astr *)ee)->str);\
}\
grn_tiny_bitmap_get_and_set(&hash->bitmap, e, 0);\
}\
(*hash->n_entries)--;\
(*hash->n_garbages)++;\
rc = GRN_SUCCESS;\
} while (0)

Definition at line 2429 of file hash.c.

#define GARBAGE   (0xffffffff)

Definition at line 1521 of file hash.c.

#define GRN_ARRAY_MAX   (GRN_ID_MAX - 8)

Definition at line 261 of file hash.c.

#define GRN_ARRAY_SEGMENT_SIZE   0x400000

Definition at line 389 of file hash.c.

#define GRN_HASH_HEADER_SIZE   0x9000

Definition at line 1170 of file hash.c.

#define GRN_HASH_MAX_SEGMENT   0x400

Definition at line 1169 of file hash.c.

#define GRN_HASH_SEGMENT_SIZE   0x400000

Definition at line 1171 of file hash.c.

#define HASH_CURR_MAX (   hash)    ((grn_hash_is_io_hash(hash)) ? (hash)->header->curr_rec : (hash)->a.max)

Definition at line 2533 of file hash.c.

#define HASH_IMMEDIATE   1

Definition at line 1315 of file hash.c.

#define IDX_MASK_IN_A_SEGMENT   0xfffff

Definition at line 1173 of file hash.c.

#define INITIAL_INDEX_SIZE   256U

Definition at line 1630 of file hash.c.

#define LOGICAL_MAX_SEGMENT   ((GRN_HASH_MAX_SEGMENT) * 4)

Definition at line 1248 of file hash.c.

#define MAX_INDEX_SIZE   ((GRN_HASH_MAX_SEGMENT * (IDX_MASK_IN_A_SEGMENT + 1)) >> 1)

Definition at line 1317 of file hash.c.

#define PREPARE_VAL (   e,
  ep,
  es 
)
Value:
do {\
if ((arg->flags & GRN_TABLE_SORT_BY_VALUE)) {\
ep = ((const uint8_t *)(get_value(hash, (entry_str *)(e))));\
es = hash->value_size;\
} else {\
ep = ((const uint8_t *)(get_key(ctx, hash, (entry_str *)(e))));\
es = ((hash->obj.header.flags & GRN_OBJ_KEY_VAR_SIZE)\
? ((entry_str *)(e))->size : hash->key_size); \
}\
ep += arg->offset;\
es -= arg->offset;\
} while (0)

Definition at line 2699 of file hash.c.

#define PREPARE_VAL32 (   id,
  e,
  ep 
)
Value:
do {\
(ep)->id = id;\
(ep)->v = (arg->flags & GRN_TABLE_SORT_BY_ID)\
? (int32_t) id\
: (*((int32_t *)((byte *)((arg->flags & GRN_TABLE_SORT_BY_VALUE)\
? get_value(hash, (e))\
: get_key(ctx, hash, (e))) + arg->offset)));\
} while (0)

Definition at line 2854 of file hash.c.

#define SWAP (   a,
  ap,
  as,
  b,
  bp,
  bs 
)
Value:
do {\
const uint8_t *cp_ = ap;\
uint32_t cs_ = as;\
ap = bp; bp = cp_;\
as = bs; bs = cs_;\
swap(a,b);\
} while (0)

Definition at line 2772 of file hash.c.

#define SWAP_VAL32 (   ap,
  bp 
)
Value:
do {\
val32 cr_ = *ap;\
*ap = *bp;\
*bp = cr_;\
} while (0)

Definition at line 2911 of file hash.c.

#define W_OF_KEY_IN_A_SEGMENT   22

Definition at line 1172 of file hash.c.

Enumeration Type Documentation

anonymous enum
Enumerator:
GRN_HASH_KEY_SEGMENT 
GRN_HASH_ENTRY_SEGMENT 
GRN_HASH_INDEX_SEGMENT 
GRN_HASH_BITMAP_SEGMENT 

Definition at line 1250 of file hash.c.

anonymous enum
Enumerator:
GRN_ARRAY_VALUE_SEGMENT 
GRN_ARRAY_BITMAP_SEGMENT 

Definition at line 409 of file hash.c.

Function Documentation

void* _grn_array_get_value ( grn_ctx ctx,
grn_array array,
grn_id  id 
)

Definition at line 711 of file hash.c.

Here is the caller graph for this function:

int _grn_hash_get_key_value ( grn_ctx ctx,
grn_hash hash,
grn_id  id,
void **  key,
void **  value 
)

Definition at line 2363 of file hash.c.

Here is the caller graph for this function:

const char* _grn_hash_key ( grn_ctx ctx,
grn_hash hash,
grn_id  id,
uint32_t *  key_size 
)

Definition at line 2258 of file hash.c.

Here is the caller graph for this function:

const char* _grn_hash_strkey_by_val ( void *  v,
uint16_t *  size 
)

Definition at line 2518 of file hash.c.

grn_id grn_array_add ( grn_ctx ctx,
grn_array array,
void **  value 
)

Definition at line 1085 of file hash.c.

Here is the caller graph for this function:

grn_id grn_array_at ( grn_ctx ctx,
grn_array array,
grn_id  id 
)

Definition at line 842 of file hash.c.

Here is the caller graph for this function:

void grn_array_clear_curr_rec ( grn_ctx ctx,
grn_array array 
)

Definition at line 1078 of file hash.c.

Here is the caller graph for this function:

grn_rc grn_array_close ( grn_ctx ctx,
grn_array array 
)

Definition at line 611 of file hash.c.

Here is the call graph for this function:

Here is the caller graph for this function:

grn_rc grn_array_copy_sort_key ( grn_ctx ctx,
grn_array array,
grn_table_sort_key keys,
int  n_keys 
)

Definition at line 859 of file hash.c.

grn_array* grn_array_create ( grn_ctx ctx,
const char *  path,
uint32_t  value_size,
uint32_t  flags 
)

Definition at line 558 of file hash.c.

void grn_array_cursor_close ( grn_ctx ctx,
grn_array_cursor cursor 
)

Definition at line 872 of file hash.c.

Here is the caller graph for this function:

grn_rc grn_array_cursor_delete ( grn_ctx ctx,
grn_array_cursor cursor,
grn_table_delete_optarg optarg 
)

Definition at line 993 of file hash.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int grn_array_cursor_get_value ( grn_ctx ctx,
grn_array_cursor cursor,
void **  value 
)

Definition at line 972 of file hash.c.

grn_id grn_array_cursor_next ( grn_ctx ctx,
grn_array_cursor cursor 
)

Definition at line 941 of file hash.c.

grn_array_cursor* grn_array_cursor_open ( grn_ctx ctx,
grn_array array,
grn_id  min,
grn_id  max,
int  offset,
int  limit,
int  flags 
)

Definition at line 879 of file hash.c.

Here is the caller graph for this function:

grn_rc grn_array_cursor_set_value ( grn_ctx ctx,
grn_array_cursor cursor,
const void *  value,
int  flags 
)

Definition at line 985 of file hash.c.

Here is the caller graph for this function:

grn_rc grn_array_delete_by_id ( grn_ctx ctx,
grn_array array,
grn_id  id,
grn_table_delete_optarg optarg 
)

Definition at line 781 of file hash.c.

Here is the caller graph for this function:

int grn_array_get_value ( grn_ctx ctx,
grn_array array,
grn_id  id,
void *  valuebuf 
)

Definition at line 698 of file hash.c.

Here is the caller graph for this function:

grn_id grn_array_next ( grn_ctx ctx,
grn_array array,
grn_id  id 
)

Definition at line 959 of file hash.c.

Here is the caller graph for this function:

grn_array* grn_array_open ( grn_ctx ctx,
const char *  path 
)

Definition at line 574 of file hash.c.

Here is the call graph for this function:

Here is the caller graph for this function:

grn_id grn_array_pull ( grn_ctx ctx,
grn_array array,
grn_bool  blockp,
void(*)(grn_ctx *, grn_array *, grn_id, void *)  func,
void *  func_arg 
)

Definition at line 1126 of file hash.c.

Here is the call graph for this function:

grn_id grn_array_push ( grn_ctx ctx,
grn_array array,
void(*)(grn_ctx *, grn_array *, grn_id, void *)  func,
void *  func_arg 
)

Definition at line 1098 of file hash.c.

Here is the call graph for this function:

grn_table_queue* grn_array_queue ( grn_ctx ctx,
grn_array array 
)

Definition at line 535 of file hash.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void grn_array_queue_lock_clear ( grn_ctx ctx,
grn_array array 
)

Definition at line 527 of file hash.c.

Here is the call graph for this function:

Here is the caller graph for this function:

grn_rc grn_array_remove ( grn_ctx ctx,
const char *  path 
)

Definition at line 628 of file hash.c.

Here is the call graph for this function:

grn_rc grn_array_set_value ( grn_ctx ctx,
grn_array array,
grn_id  id,
const void *  value,
int  flags 
)

Definition at line 760 of file hash.c.

Here is the caller graph for this function:

grn_rc grn_array_truncate ( grn_ctx ctx,
grn_array array 
)

Definition at line 635 of file hash.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void grn_array_unblock ( grn_ctx ctx,
grn_array array 
)

Definition at line 1156 of file hash.c.

Here is the call graph for this function:

grn_id grn_hash_add ( grn_ctx ctx,
grn_hash hash,
const void *  key,
unsigned int  key_size,
void **  value,
int *  added 
)

Definition at line 2107 of file hash.c.

Here is the caller graph for this function:

grn_id grn_hash_at ( grn_ctx ctx,
grn_hash hash,
grn_id  id 
)

Definition at line 2633 of file hash.c.

Here is the caller graph for this function:

void grn_hash_check ( grn_ctx ctx,
grn_hash hash 
)

Definition at line 3055 of file hash.c.

Here is the call graph for this function:

grn_rc grn_hash_clear_lock ( grn_ctx ctx,
grn_hash hash 
)

Definition at line 2023 of file hash.c.

grn_rc grn_hash_close ( grn_ctx ctx,
grn_hash hash 
)

Definition at line 1805 of file hash.c.

Here is the call graph for this function:

Here is the caller graph for this function:

grn_hash* grn_hash_create ( grn_ctx ctx,
const char *  path,
uint32_t  key_size,
uint32_t  value_size,
uint32_t  flags 
)

Definition at line 1705 of file hash.c.

void grn_hash_cursor_close ( grn_ctx ctx,
grn_hash_cursor c 
)

Definition at line 2527 of file hash.c.

Here is the caller graph for this function:

grn_rc grn_hash_cursor_delete ( grn_ctx ctx,
grn_hash_cursor c,
grn_table_delete_optarg optarg 
)

Definition at line 2690 of file hash.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int grn_hash_cursor_get_key ( grn_ctx ctx,
grn_hash_cursor c,
void **  key 
)

Definition at line 2639 of file hash.c.

Here is the caller graph for this function:

int grn_hash_cursor_get_key_value ( grn_ctx ctx,
grn_hash_cursor c,
void **  key,
uint32_t *  key_size,
void **  value 
)

Definition at line 2666 of file hash.c.

int grn_hash_cursor_get_value ( grn_ctx ctx,
grn_hash_cursor c,
void **  value 
)

Definition at line 2652 of file hash.c.

Here is the caller graph for this function:

grn_id grn_hash_cursor_next ( grn_ctx ctx,
grn_hash_cursor c 
)

Definition at line 2607 of file hash.c.

Here is the caller graph for this function:

grn_hash_cursor* grn_hash_cursor_open ( grn_ctx ctx,
grn_hash hash,
const void *  min,
uint32_t  min_size,
const void *  max,
uint32_t  max_size,
int  offset,
int  limit,
int  flags 
)

Definition at line 2537 of file hash.c.

Here is the call graph for this function:

grn_rc grn_hash_cursor_set_value ( grn_ctx ctx,
grn_hash_cursor c,
const void *  value,
int  flags 
)

Definition at line 2682 of file hash.c.

Here is the call graph for this function:

Here is the caller graph for this function:

grn_rc grn_hash_delete ( grn_ctx ctx,
grn_hash hash,
const void *  key,
uint32_t  key_size,
grn_table_delete_optarg optarg 
)

Definition at line 2478 of file hash.c.

grn_rc grn_hash_delete_by_id ( grn_ctx ctx,
grn_hash hash,
grn_id  id,
grn_table_delete_optarg optarg 
)

Definition at line 2452 of file hash.c.

Here is the caller graph for this function:

grn_id grn_hash_get ( grn_ctx ctx,
grn_hash hash,
const void *  key,
unsigned int  key_size,
void **  value 
)

Definition at line 2199 of file hash.c.

Here is the caller graph for this function:

int grn_hash_get_key ( grn_ctx ctx,
grn_hash hash,
grn_id  id,
void *  keybuf,
int  bufsize 
)

Definition at line 2270 of file hash.c.

Here is the caller graph for this function:

int grn_hash_get_key2 ( grn_ctx ctx,
grn_hash hash,
grn_id  id,
grn_obj bulk 
)

Definition at line 2285 of file hash.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int grn_hash_get_key_value ( grn_ctx ctx,
grn_hash hash,
grn_id  id,
void *  keybuf,
int  bufsize,
void *  valuebuf 
)

Definition at line 2339 of file hash.c.

int grn_hash_get_value ( grn_ctx ctx,
grn_hash hash,
grn_id  id,
void *  valuebuf 
)

Definition at line 2305 of file hash.c.

Here is the caller graph for this function:

const char* grn_hash_get_value_ ( grn_ctx ctx,
grn_hash hash,
grn_id  id,
uint32_t *  size 
)

Definition at line 2323 of file hash.c.

Here is the caller graph for this function:

grn_rc grn_hash_lock ( grn_ctx ctx,
grn_hash hash,
int  timeout 
)

Definition at line 1987 of file hash.c.

Here is the call graph for this function:

grn_id grn_hash_next ( grn_ctx ctx,
grn_hash hash,
grn_id  id 
)

Definition at line 2623 of file hash.c.

Here is the caller graph for this function:

grn_hash* grn_hash_open ( grn_ctx ctx,
const char *  path 
)

Definition at line 1728 of file hash.c.

Here is the call graph for this function:

Here is the caller graph for this function:

grn_rc grn_hash_remove ( grn_ctx ctx,
const char *  path 
)

Definition at line 1820 of file hash.c.

Here is the call graph for this function:

grn_rc grn_hash_set_value ( grn_ctx ctx,
grn_hash hash,
grn_id  id,
const void *  value,
int  flags 
)

Definition at line 2378 of file hash.c.

Here is the caller graph for this function:

int grn_hash_sort ( grn_ctx ctx,
grn_hash hash,
int  limit,
grn_array result,
grn_table_sort_optarg optarg 
)

Definition at line 2990 of file hash.c.

Here is the call graph for this function:

Here is the caller graph for this function:

grn_rc grn_hash_truncate ( grn_ctx ctx,
grn_hash hash 
)

Definition at line 1827 of file hash.c.

Here is the call graph for this function:

Here is the caller graph for this function:

grn_rc grn_hash_unlock ( grn_ctx ctx,
grn_hash hash 
)

Definition at line 2015 of file hash.c.

grn_id grn_table_queue_head ( grn_table_queue queue)

Definition at line 372 of file hash.c.

Here is the caller graph for this function:

void grn_table_queue_head_increment ( grn_table_queue queue)

Definition at line 352 of file hash.c.

Here is the caller graph for this function:

uint32_t grn_table_queue_size ( grn_table_queue queue)

Definition at line 344 of file hash.c.

Here is the caller graph for this function:

grn_id grn_table_queue_tail ( grn_table_queue queue)

Definition at line 380 of file hash.c.

Here is the caller graph for this function:

void grn_table_queue_tail_increment ( grn_table_queue queue)

Definition at line 362 of file hash.c.

Here is the caller graph for this function:

void* grn_tiny_array_at ( grn_tiny_array array,
grn_id  id 
)

Definition at line 130 of file hash.c.

Here is the caller graph for this function:

void grn_tiny_array_fin ( grn_tiny_array array)

Definition at line 113 of file hash.c.

Here is the caller graph for this function:

grn_id grn_tiny_array_id ( grn_tiny_array array,
const void *  element_address 
)

Definition at line 136 of file hash.c.

Here is the caller graph for this function:

void grn_tiny_array_init ( grn_ctx ctx,
grn_tiny_array array,
uint16_t  element_size,
uint16_t  flags 
)

Definition at line 99 of file hash.c.

Here is the caller graph for this function: