/* * __ovfl_read -- * Read an overflow item from the disk. */ static int __ovfl_read(WT_SESSION_IMPL *session, const uint8_t *addr, size_t addr_size, WT_ITEM *store) { WT_BTREE *btree; const WT_PAGE_HEADER *dsk; btree = S2BT(session); /* * Read the overflow item from the block manager, then reference the * start of the data and set the data's length. * * Overflow reads are synchronous. That may bite me at some point, but * WiredTiger supports large page sizes, overflow items should be rare. */ WT_RET(__wt_bt_read(session, store, addr, addr_size)); dsk = store->data; store->data = WT_PAGE_HEADER_BYTE(btree, dsk); store->size = dsk->u.datalen; WT_STAT_FAST_DATA_INCR(session, cache_read_overflow); return (0); }
/* * __inmem_col_fix -- * Build in-memory index for fixed-length column-store leaf pages. */ static void __inmem_col_fix(WT_SESSION_IMPL *session, WT_PAGE *page) { WT_BTREE *btree; const WT_PAGE_HEADER *dsk; btree = S2BT(session); dsk = page->dsk; page->pg_fix_bitf = WT_PAGE_HEADER_BYTE(btree, dsk); }
/* * __inmem_col_fix -- * Build in-memory index for fixed-length column-store leaf pages. */ static void __inmem_col_fix(WT_SESSION_IMPL *session, WT_PAGE *page) { WT_BTREE *btree; WT_PAGE_HEADER *dsk; btree = session->btree; dsk = page->dsk; page->u.col_fix.bitf = WT_PAGE_HEADER_BYTE(btree, dsk); }