Lines Matching full:key

42  *	Big key/data handling for the hashing package.
79 * You need to do an insert and the key/data pair is too big
88 const DBT *key, in __big_insert() argument
100 key_data = (char *)key->data; in __big_insert()
101 key_size = key->size; in __big_insert()
105 /* First move the Key */ in __big_insert()
148 * same page as the key ends, FREESPACE is at least one. in __big_insert()
176 * Called when bufp's page contains a partial key (index should be 1)
178 * All pages in the big key/data pair except bufp are freed. We cannot
224 * key/data pair. Bufp points to the first one -- it should now be in __big_delete()
259 * 0 = key not found
261 * -2 means key not found and this is big key/data
268 char *key, in __find_bigpair() argument
280 kkey = key; in __find_bigpair()
312 * of the pair; 0 if there isn't any (i.e. big pair is the last key in the
352 * Return the data for the key/data pair that begins on this page at this
501 * Fill in the key and data for this big pair.
506 DBT *key, in __big_keydata() argument
510 key->size = collect_key(hashp, bufp, 0, val, set); in __big_keydata()
511 if (key->size == (size_t) -1) in __big_keydata()
513 key->data = (u_char *)hashp->tmp_key; in __big_keydata()
518 * Count how big the total key size is by recursing through the pages. Then
519 * collect the data, allocate a buffer and copy the key as you recurse up.
539 if (bp[2] == FULL_KEY || bp[2] == FULL_KEY_DATA) { /* End of Key. */ in collect_key()
570 BUFHEAD *big_keyp, /* Pointer to first page containing the big key/data */ in __big_split()
578 DBT key, val; in __big_split() local
584 /* Now figure out where the big key/data goes */ in __big_split()
585 if (__big_keydata(hashp, big_keyp, &key, &val, 0)) in __big_split()
587 change = (__call_hash(hashp, key.data, key.size) != obucket); in __big_split()
596 /* Now make one of np/op point to the big key/data pair */ in __big_split()