void setParentPageId(int parent) { store.logUndo(this, data); this.parentPageId = parent; }
private void setNext(int old, int nextPage) { if (SysProperties.CHECK && old != this.nextPage) { DbException.throwInternalError("move " + this + " " + nextPage); } store.logUndo(this, data); this.nextPage = nextPage; data.setInt(START_NEXT_OVERFLOW, nextPage); }
/** * Free this page. */ void free() { store.logUndo(this, data); store.free(getPos()); }
/** * Add a page to the free list. * * @param pageId the page id to add */ void free(int pageId) { full = false; store.logUndo(this, data); used.clear(pageId - getPos()); store.update(this); }
/** * Change the parent page id. * * @param id the new parent page id */ void setParentPageId(int id) { index.getPageStore().logUndo(this, data); changeCount = index.getPageStore().getChangeCount(); written = false; parentPageId = id; }
@Override void freeRecursive() { index.getPageStore().logUndo(this, data); index.getPageStore().free(getPos()); }
private void updateRowCount(int offset) { if (rowCount != UNKNOWN_ROWCOUNT) { rowCount += offset; } if (rowCountStored != UNKNOWN_ROWCOUNT) { rowCountStored = UNKNOWN_ROWCOUNT; index.getPageStore().logUndo(this, data); if (written) { writeHead(); } index.getPageStore().update(this); } }
private void updateRowCount(int offset) { if (rowCount != UNKNOWN_ROWCOUNT) { rowCount += offset; } if (rowCountStored != UNKNOWN_ROWCOUNT) { rowCountStored = UNKNOWN_ROWCOUNT; index.getPageStore().logUndo(this, data); if (written) { writeHead(); } index.getPageStore().update(this); } }
/** * Change the parent page id. * * @param id the new parent page id */ void setParentPageId(int id) { index.getPageStore().logUndo(this, data); parentPageId = id; if (written) { changeCount = index.getPageStore().getChangeCount(); data.setInt(START_PARENT, parentPageId); } }
/** * Mark a page as used. * * @param pageId the page id */ void allocate(int pageId) { int idx = pageId - getPos(); if (idx >= 0 && !used.get(idx)) { // set the bit first, because logUndo can // allocate other pages, and we must not // return the same page twice used.set(idx); store.logUndo(this, data); store.update(this); } }
@Override void freeRecursive() { index.getPageStore().logUndo(this, data); index.getPageStore().free(getPos()); freeOverflow(); }
private void addChild(int x, int childPageId, long key) { index.getPageStore().logUndo(this, data); written = false; changeCount = index.getPageStore().getChangeCount(); childPageIds = insert(childPageIds, entryCount + 1, x + 1, childPageId); keys = insert(keys, entryCount, x, key); entryCount++; length += 4 + Data.getVarLongLen(key); }
@Override void freeRecursive() { index.getPageStore().logUndo(this, data); index.getPageStore().free(getPos()); for (int i = 0; i < entryCount + 1; i++) { int child = childPageIds[i]; index.getPage(child).freeRecursive(); } }
@Override void setRowCountStored(int rowCount) { this.rowCount = rowCount; if (rowCountStored != rowCount) { rowCountStored = rowCount; index.getPageStore().logUndo(this, data); if (written) { changeCount = index.getPageStore().getChangeCount(); writeHead(); } index.getPageStore().update(this); } }
/** * Change the page id. * * @param id the new page id */ void setPageId(int id) { int old = getPos(); index.getPageStore().removeFromCache(getPos()); setPos(id); index.getPageStore().logUndo(this, null); remapChildren(old); }
@Override void freeRecursive() { index.getPageStore().logUndo(this, data); index.getPageStore().free(getPos()); for (int i = 0; i < entryCount + 1; i++) { int child = childPageIds[i]; index.getPage(child, getPos()).freeRecursive(); } }
@Override void setRowCountStored(int rowCount) { if (rowCount < 0 && pageStoreInternalCount) { return; } this.rowCount = rowCount; if (rowCountStored != rowCount) { rowCountStored = rowCount; index.getPageStore().logUndo(this, data); if (written) { changeCount = index.getPageStore().getChangeCount(); writeHead(); } index.getPageStore().update(this); } }
private void removeChild(int i) { index.getPageStore().logUndo(this, data); written = false; changeCount = index.getPageStore().getChangeCount(); int removedKeyIndex = i < entryCount ? i : i - 1; entryCount--; length -= 4 + Data.getVarLongLen(keys[removedKeyIndex]); if (entryCount < 0) { DbException.throwInternalError("" + entryCount); } keys = remove(keys, entryCount + 1, removedKeyIndex); childPageIds = remove(childPageIds, entryCount + 2, i); }
/** * Change the page id. * * @param id the new page id */ void setPageId(int id) { changeCount = index.getPageStore().getChangeCount(); written = false; index.getPageStore().removeFromCache(getPos()); setPos(id); index.getPageStore().logUndo(this, null); remapChildren(); }
@Override boolean remove(long key) { int i = find(key); if (keys == null || keys[i] != key) { throw DbException.get(ErrorCode.ROW_NOT_FOUND_WHEN_DELETING_1, index.getSQL() + ": " + key + " " + (keys == null ? -1 : keys[i])); } index.getPageStore().logUndo(this, data); if (entryCount == 1) { freeRecursive(); return true; } removeRow(i); index.getPageStore().update(this); return false; }