Пример #1
0
void VerifyHandler::invoke(logrec_t& r)
{
    w_assert0(r.valid_header());

    lsn_t lsn = r.lsn();
    PageID pid = r.pid();

    if (r.is_redo()) {
        checkRedo(r, pid, lsn, r.page_prev_lsn());

        if (r.is_multi_page()) {
            checkRedo(r, r.pid2(), lsn, r.page2_prev_lsn());
        }

        if (alloc_cache_t::is_alloc_pid(pid)) {
            // checkAlloc(r);
        }
    }

    if (merge) {
        w_assert0(pid >= lastPID);
        if (pid == lastPID) {
            w_assert0(lsn > lastLSN);
        }
        w_assert0(merge || lsn >= minLSN);
        w_assert0(merge || lsn <= maxLSN);
    }

    lastLSN = lsn;
    lastPID = pid;

    count++;
}