#include <sm_vas.h> // which includes scan.h
class scan_rt_i {
public:
stid_t stid;
tid_t tid;
ndx_t ntype;
serial_t serial; // serial number if store has
// a logical ID
NORET scan_rt_i(
const stid_t& stid,
sob_cmp_t c,
const nbox_t& box,
concurrency_t cc = t_cc_page);
NORET scan_rt_i(
const lvid_t& lvid,
const serial_t& stid,
sob_cmp_t c,
const nbox_t& box,
concurrency_t cc = t_cc_page);
NORET ~scan_rt_i();
rc_t next(
nbox_t& key,
void* el,
smsize_t& elen,
bool& eof);
void finish();
bool eof() { return _eof; }
bool error_detected()
};
A common question is what is the effect of changes to an index made by a transaction that is also scanning the index. It is not safe to change anything in the file while scanning. Instead, a list of changes should be made during the scan and only performed after the scan is complete.