/** * Read an overflow page page. * * @param id the page id * @return the page */ PageDataOverflow getPageOverflow(int id) { Page p = store.getPage(id); if (p instanceof PageDataOverflow) { return (PageDataOverflow) p; } throw DbException.get(ErrorCode.FILE_CORRUPTED_1, p == null ? "null" : p.toString()); }
public DbException getNewDuplicateKeyException() { String sql = "PRIMARY KEY ON " + table.getSQL(); if (mainIndexColumn >= 0 && mainIndexColumn < indexColumns.length) { sql += "(" + indexColumns[mainIndexColumn].getSQL() + ")"; } DbException e = DbException.get(ErrorCode.DUPLICATE_KEY_1, sql); e.setSource(this); return e; }
/** * Read the given page. * * @param id the page id * @param parent the parent, or -1 if unknown * @return the page */ PageData getPage(int id, int parent) { Page pd = store.getPage(id); if (pd == null) { PageDataLeaf empty = PageDataLeaf.create(this, id, parent); // could have been created before, but never committed store.logUndo(empty, null); store.update(empty); return empty; } else if (!(pd instanceof PageData)) { throw DbException.get(ErrorCode.FILE_CORRUPTED_1, "" + pd); } PageData p = (PageData) pd; if (parent != -1) { if (p.getParentPageId() != parent) { throw DbException.throwInternalError( p + " parent " + p.getParentPageId() + " expected " + parent); } } return p; }