/* * __merge_promote_key -- * Copy a key from a child page into the reference in its parent, so it * can be found by searches. */ static int __merge_promote_key(WT_SESSION_IMPL *session, WT_REF *ref) { WT_IKEY *ikey; WT_PAGE *page; WT_REF *child_ref; page = ref->page; switch (page->type) { case WT_PAGE_COL_INT: child_ref = &page->u.intl.t[0]; ref->u.recno = page->u.intl.recno = child_ref->u.recno; return (0); case WT_PAGE_ROW_INT: child_ref = &page->u.intl.t[0]; ikey = child_ref->u.key; WT_ASSERT(session, ikey != NULL); return (__wt_row_ikey_incr(session, page, 0, WT_IKEY_DATA(ikey), ikey->size, &ref->u.key)); WT_ILLEGAL_VALUE(session); } }
/* * __merge_promote_key -- * Copy a key from a child page into the reference in its parent, so it * can be found by searches. */ static int __merge_promote_key(WT_SESSION_IMPL *session, WT_REF *ref) { WT_PAGE *page; WT_REF *child_ref; size_t size; void *p; page = ref->page; switch (page->type) { case WT_PAGE_COL_INT: child_ref = &page->u.intl.t[0]; ref->key.recno = page->u.intl.recno = child_ref->key.recno; return (0); case WT_PAGE_ROW_INT: child_ref = &page->u.intl.t[0]; __wt_ref_key(child_ref->page, child_ref, &p, &size); return (__wt_row_ikey_incr( session, page, 0, p, size, &ref->key.ikey)); WT_ILLEGAL_VALUE(session); } }