item_info
ITEM_INFO item_info;
item_info.seek_size = PAIR_OVERHEAD;
item_info.seek_size = key->size + val->size;
item_info.seek_size = 0;
item_info.seek_found_page = 0;
__get_item_next(hashp, &cursor, &page_key, &page_val, &item_info);
if (item_info.status == ITEM_ERROR)
if (item_info.status == ITEM_NO_MORE)
if (item_info.key_off == BIGPAIR) {
if (__addel(hashp, &item_info, key, val, num_items, 0))
if (item_info.caused_expand)
if (item_info.key_off == BIGPAIR) {
if (__big_return(hashp, &item_info, val, 0))
if (__delpair(hashp, &cursor, &item_info) ||
__addel(hashp, &item_info, key, val, UNKNOWN, 0))
if (item_info.caused_expand)
if (__delpair(hashp, &cursor, &item_info))
(struct item_info *)malloc(sizeof(struct item_info));
ITEM_INFO item_info;
item_info.seek_size = 0;
__get_item_first(hashp, cursorp, key, val, &item_info);
__get_item_next(hashp, cursorp, key, val, &item_info);
if (item_info.status == ITEM_OK) {
if (item_info.key_off == BIGPAIR &&
item_info.pgndx))
} else if (item_info.status != ITEM_NO_MORE)
__get_item_next(hashp, cursorp, key, val, &item_info);
__big_return(HTAB *hashp, ITEM_INFO *item_info, DBT *val,
OADDR_TO_PAGE(item_info->data_off), A_RAW);
pagep = __get_page(hashp, item_info->pgno, A_RAW);
ITEM_INFO item_info;
item_info.seek_size = 0;
item_info.seek_found_page = 0;
__get_item_next(hashp, &cursor, &key, &val, &item_info);
if (item_info.status == ITEM_ERROR) {
} else if (item_info.status == ITEM_NO_MORE)
if (item_info.key_off == BIGPAIR) {
item_info.pgndx)) {
item_info->status = ITEM_ERROR;
if (item_info->seek_size &&
FREESPACE(cursorp->pagep) > item_info->seek_size)
item_info->seek_found_page = cursorp->pgno;
item_info->status = ITEM_NO_MORE;
item_info->status = ITEM_ERROR;
item_info->pgno = cursorp->pgno;
item_info->bucket = cursorp->bucket;
item_info->ndx = cursorp->ndx;
item_info->pgndx = cursorp->pgndx;
item_info->key_off = KEY_OFF(cursorp->pagep, cursorp->pgndx);
item_info->data_off = DATA_OFF(cursorp->pagep, cursorp->pgndx);
item_info->status = ITEM_OK;
ITEM_INFO *item_info)
return (__get_item_next(hashp, cursorp, key, val, item_info));
ITEM_INFO *item_info)
status = __get_item(hashp, cursorp, key, val, item_info);
__delpair(HTAB *hashp, CURSOR *cursorp, ITEM_INFO *item_info)
pagep = __get_page(hashp, item_info->bucket, A_BUCKET);
if (item_info->pgno == to_find) {
item_info->pgno = ADDR(pagep);
item_info->pgndx = NUM_ENT(pagep);
item_info->seek_found_page = ADDR(pagep);
__addel(HTAB *hashp, ITEM_INFO *item_info, const DBT *key, const DBT *val,
__addel(hashp, item_info, key, val, num_items, expanding)
ITEM_INFO *item_info;
item_info->seek_found_page != 0 ?
item_info->seek_found_page : item_info->pgno, A_RAW);
item_info->pgno = ADDR(pagep);
item_info->caused_expand = 0;
item_info->caused_expand = 0;
item_info->caused_expand |=
item_info->pgndx > hashp->hdr.ffactor;
item_info->caused_expand =
add_bigptr(HTAB * hashp, ITEM_INFO * item_info, indx_t big_pgno)
add_bigptr(hashp, item_info, big_pgno)
ITEM_INFO *item_info;
pagep = __get_page(hashp, item_info->bucket, A_BUCKET);
ITEM_INFO *item_info)