Lines Matching full:page

44 #define	DEFMINKEYPAGE	(2)		/* Minimum keys per page */
46 #define MINPSIZE (512) /* Minimum page size */
49 * Page 0 of a btree file contains a copy of the meta-data. This page is also
50 * used as an out-of-band page, i.e. page pointers that point to nowhere point
51 * to page 0. Page 1 is the root of the btree.
53 #define P_INVALID 0 /* Invalid tree page number. */
54 #define P_META 0 /* Tree metadata page number. */
55 #define P_ROOT 1 /* Tree root page number. */
58 * There are five page layouts in the btree: btree internal pages (BINTERNAL),
60 * (RLEAF) and overflow pages. All five page types have a page header (PAGE).
66 pgno_t pgno; /* this page's page number */
70 #define P_BINTERNAL 0x01 /* btree internal page */
71 #define P_BLEAF 0x02 /* leaf page */
72 #define P_OVERFLOW 0x04 /* overflow page */
73 #define P_RINTERNAL 0x08 /* recno internal page */
74 #define P_RLEAF 0x10 /* leaf page */
79 indx_t lower; /* lower bound of free space on page */
80 indx_t upper; /* upper bound of free space on page */
82 } PAGE; typedef
92 * rest of the page immediately following the page header. Each offset is to
93 * an item which is unique to the type of page. The h_lower offset is just
95 * page. Offsets are from the beginning of the page.
97 * If an item is too big to store on a single page, a flag is set and the item
98 * is a { page, size } pair such that the page is the first page of an overflow
102 * The page number and size fields in the items are pgno_t-aligned so they can
112 * on that page. For a tree without duplicate keys, an internal page with two
114 * and less than b stored on the page associated with a. Duplicate keys are
115 * somewhat special and can cause duplicate internal and leaf page records and
120 pgno_t pgno; /* page number stored on */
127 /* Get the page's BINTERNAL structure at index indx. */
135 /* Copy a BINTERNAL entry to the page. */
146 * For the recno internal pages, the item is a page number with the number of
147 * keys found on that page and below.
151 pgno_t pgno; /* page number stored below */
154 /* Get the page's RINTERNAL structure at index indx. */
162 /* Copy a RINTERAL entry to the page. */
177 /* Get the page's BLEAF structure at index indx. */
189 /* Copy a BLEAF entry to the page. */
209 /* Get the page's RLEAF structure at index indx. */
220 /* Copy a RLEAF entry to the page. */
230 * A record in the tree is either a pointer to a page and an index in the page
231 * or a page number and an index. These structures are used as a cursor, stack
234 * One comment about searches. Internal page searches must find the largest
235 * record less than key in the tree so that descents work. Leaf page searches
240 pgno_t pgno; /* the page number */
241 indx_t index; /* the index on the page */
245 PAGE *page; /* the (pinned) page */ member
246 indx_t index; /* the index on the page */
250 * About cursors. The cursor (and the page that contained the key/data pair
293 u_int32_t psize; /* page size */
294 u_int32_t free; /* page number of first free page */
307 EPG bt_cur; /* current (pinned) page */
308 PAGE *bt_pinned; /* page pinned across calls */
327 pgno_t bt_free; /* next free page */
328 u_int32_t bt_psize; /* page size */