Example #1
0
void RecordManager::commit() {
    if (BufferManager::status == "DISABLE") {}
    else {
        //BufferManager::clearBlocks();
        cout << "cm: " << tables.size() << endl;
        for (int i = 0; i < tables.size(); i++) {
            TablePtr tPtr = TablePtr(new Table(tables[i]));
            //tPtr->printBlocks();
            if (tPtr->blankTable()) break;
            cout << "ds: " << tables[i].tableName << endl;
            TableRowPtr lastRowPtr = tPtr->getTail();
            cout << "ls: " << lastRowPtr->getAddr().getOffset() << endl;
            //queue<TableRowPtr> & bQueue = iter->second;
            while (!tPtr->noBlank()) {
                TableRowPtr rPtr = tPtr->getBlankRow();
                cout << "tr: " << rPtr->getAddr().getOffset();
                tPtr->popBlank();
                //while (!lastRowPtr->isBlank()) lastRowPtr = tPtr->getPrevious(rPtr);
                cout << " ls: " << lastRowPtr->getAddr().getOffset() << endl;
                tPtr->fillBlank(rPtr, lastRowPtr->getValues());
                lastRowPtr = tPtr->getPrevious(lastRowPtr);
            }
            cout << "[]" << endl;
            tPtr->printBlocks();
            tPtr->notifyCleanup();
            //tPtr->printBlocks();
            cout << "last: " << lastRowPtr->getAddr().getOffset() << endl;
            tPtr->notifyTruncate(lastRowPtr->getAddr());
        }
    }
}