Lines Matching full:page
45 static int __bt_curdel(BTREE *, const DBT *, PAGE *, u_int);
46 static int __bt_pdelete(BTREE *, PAGE *);
47 static int __bt_relink(BTREE *, PAGE *);
48 static int __bt_stkacq(BTREE *, PAGE **, CURSOR *);
61 PAGE *h; in __bt_delete()
66 /* Toss any page pinned across calls. */ in __bt_delete()
95 * If the page is about to be emptied, we'll need to in __bt_delete()
128 * hp: pointer to current, pinned PAGE pointer
135 __bt_stkacq(BTREE *t, PAGE **hp, CURSOR *c) in __bt_stkacq()
140 PAGE *h; in __bt_stkacq()
148 * currently locked page so we don't hit an already-locked page. in __bt_stkacq()
154 h = e->page; in __bt_stkacq()
161 * Move right, looking for the page. At each move we have to move in __bt_stkacq()
162 * up the stack until we don't have to move to the next page. If in __bt_stkacq()
173 /* Get the parent page. */ in __bt_stkacq()
193 /* Lose the currently pinned page. */ in __bt_stkacq()
213 h = e->page; in __bt_stkacq()
216 * Move left, looking for the page. At each move we have to move in __bt_stkacq()
218 * next page. If we have to change pages at an internal level, we in __bt_stkacq()
228 /* Get the parent page. */ in __bt_stkacq()
247 /* Lose the currently pinned page. */ in __bt_stkacq()
282 PAGE *h; in __bt_bdelete()
287 /* Find any matching record; __bt_search pins the page. */ in __bt_bdelete()
291 mpool_put(t->bt_mp, e->page, 0); in __bt_bdelete()
297 * there are duplicates and we reach either side of the page, do in __bt_bdelete()
301 h = e->page; in __bt_bdelete()
318 /* Check for right-hand edge of the page. */ in __bt_bdelete()
322 /* Delete from the key to the beginning of the page. */ in __bt_bdelete()
334 /* Check for an empty page. */ in __bt_bdelete()
341 /* Put the page. */ in __bt_bdelete()
351 * Delete a single page from the tree.
355 * h: leaf page
361 * mpool_put's the page
364 __bt_pdelete(BTREE *t, PAGE *h) in __bt_pdelete()
367 PAGE *pg; in __bt_pdelete()
374 * Walk the parent page stack -- a LIFO stack of the pages that were in __bt_pdelete()
375 * traversed when we searched for the page where the delete occurred. in __bt_pdelete()
376 * Each stack entry is a page number and a page index offset. The in __bt_pdelete()
377 * offset is for the page traversed on the search. We've just deleted in __bt_pdelete()
378 * a page, so we have to delete the key from the parent page. in __bt_pdelete()
380 * If the delete from the parent page makes it empty, this process may in __bt_pdelete()
381 * continue all the way up the tree. We stop if we reach the root page in __bt_pdelete()
383 * delete does not empty the page. in __bt_pdelete()
386 /* Get the parent page. */ in __bt_pdelete()
402 * root page. If it's the rootpage, turn it back into an empty in __bt_pdelete()
403 * leaf page. in __bt_pdelete()
416 /* Pack remaining key items at the end of the page. */ in __bt_pdelete()
436 /* Free the leaf page, as long as it wasn't the root. */ in __bt_pdelete()
446 * Delete a single record from a leaf page.
451 * h: page
452 * idx: index on page to delete
458 __bt_dleaf(BTREE *t, const DBT *key, PAGE *h, u_int idx) in __bt_dleaf()
481 /* Pack the remaining key/data items at the end of the page. */ in __bt_dleaf()
496 /* If the cursor is on this page, adjust it as necessary. */ in __bt_dleaf()
512 * h: page
513 * idx: index on page to delete
519 __bt_curdel(BTREE *t, const DBT *key, PAGE *h, u_int idx) in __bt_curdel()
523 PAGE *pg; in __bt_curdel()
541 e.page = h; in __bt_curdel()
549 /* Check previous key, if not at the beginning of the page. */ in __bt_curdel()
551 e.page = h; in __bt_curdel()
558 /* Check next key, if not at the end of the page. */ in __bt_curdel()
560 e.page = h; in __bt_curdel()
567 /* Check previous key if at the beginning of the page. */ in __bt_curdel()
571 e.page = pg; in __bt_curdel()
579 /* Check next key if at the end of the page. */ in __bt_curdel()
583 e.page = pg; in __bt_curdel()
588 dup2: c->pg.pgno = e.page->pgno; in __bt_curdel()
595 e.page = h; in __bt_curdel()
607 * Link around a deleted page.
611 * h: page to be deleted
614 __bt_relink(BTREE *t, PAGE *h) in __bt_relink()
616 PAGE *pg; in __bt_relink()