/* * __wt_curbulk_init -- * Initialize a bulk cursor. */ int __wt_curbulk_init(WT_CURSOR_BULK *cbulk) { WT_CURSOR *c = &cbulk->cbt.iface; c->insert = __curbulk_insert; c->close = __curbulk_close; return (__wt_bulk_init(cbulk)); }
/* * __wt_curbulk_init -- * Initialize a bulk cursor. */ int __wt_curbulk_init(WT_CURSOR_BULK *cbulk, int bitmap) { WT_CURSOR *c = &cbulk->cbt.iface; /* * Bulk cursors only support insert and close (reset is a no-op). * This is slightly tricky because cursor.reset is called during * checkpoints, which means checkpoints have to handle open bulk * cursors. */ __wt_cursor_set_notsup(c); c->insert = __curbulk_insert; c->close = __curbulk_close; cbulk->bitmap = bitmap; if (bitmap) F_SET(c, WT_CURSTD_RAW); return (__wt_bulk_init(cbulk)); }
/* * __wt_curbulk_init -- * Initialize a bulk cursor. */ int __wt_curbulk_init(WT_SESSION_IMPL *session, WT_CURSOR_BULK *cbulk, bool bitmap, bool skip_sort_check) { WT_CURSOR *c; WT_CURSOR_BTREE *cbt; c = &cbulk->cbt.iface; cbt = &cbulk->cbt; /* Bulk cursors only support insert and close (reset is a no-op). */ __wt_cursor_set_notsup(c); switch (cbt->btree->type) { case BTREE_COL_FIX: c->insert = bitmap ? __curbulk_insert_fix_bitmap : __curbulk_insert_fix; break; case BTREE_COL_VAR: c->insert = __curbulk_insert_var; break; case BTREE_ROW: /* * Row-store order comparisons are expensive, so we optionally * skip them when we know the input is correct. */ c->insert = skip_sort_check ? __curbulk_insert_row_skip_check : __curbulk_insert_row; break; WT_ILLEGAL_VALUE(session); } cbulk->first_insert = true; cbulk->recno = 0; cbulk->bitmap = bitmap; if (bitmap) F_SET(c, WT_CURSTD_RAW); return (__wt_bulk_init(session, cbulk)); }