private void free(long id) throws IOException { // get the rowid, and write a zero current size into it. BlockIo curBlock = file.get(Location.getBlock(id)); DataPage curPage = DataPage.getDataPageView(curBlock,BLOCK_SIZE); RecordHeader.setCurrentSize(curBlock, Location.getOffset(id), 0); file.release(Location.getBlock(id), true); // write the rowid to the free list freeman.put(id, RecordHeader.getAvailableSize(curBlock, Location.getOffset(id))); }
curPage = DataPage.getDataPageView(curBlock,BLOCK_SIZE); curPage.setFirst(DataPage.O_DATA); RecordHeader.setAvailableSize(curBlock, DataPage.O_DATA, 0); } else { curBlock = file.get(start); curPage = DataPage.getDataPageView(curBlock,BLOCK_SIZE); start = pageman.allocate(Magic.USED_PAGE); curBlock = file.get(start); curPage = DataPage.getDataPageView(curBlock, BLOCK_SIZE); curPage.setFirst((short) 0); // no rowids, just data file.release(start, true); curPage = DataPage.getDataPageView(curBlock, BLOCK_SIZE); curPage.setFirst((short) (DataPage.O_DATA + neededLeft)); file.release(start, true);
curPage = DataPage.getDataPageView( curBlock ); curPage.setFirst( DataPage.O_DATA ); RecordHeader hdr = new RecordHeader( curBlock, DataPage.O_DATA ); curPage = DataPage.getDataPageView( curBlock ); curPage = DataPage.getDataPageView( curBlock ); curPage.setFirst( (short) 0 ); // no rowids, just data file.release( start, true ); curPage = DataPage.getDataPageView( curBlock ); curPage.setFirst( (short) (DataPage.O_DATA + neededLeft) ); file.release( start, true );
curPage = DataPage.getDataPageView( curBlock ); curPage.setFirst( DataPage.O_DATA ); RecordHeader hdr = new RecordHeader( curBlock, DataPage.O_DATA ); } else { curBlock = file.get( start ); curPage = DataPage.getDataPageView( curBlock ); start = pageManager.allocate( Magic.USED_PAGE ); curBlock = file.get( start ); curPage = DataPage.getDataPageView( curBlock ); curPage.setFirst( (short) 0 ); // no rowids, just data file.release( start, true ); curPage = DataPage.getDataPageView( curBlock ); curPage.setFirst( (short) (DataPage.O_DATA + neededLeft) ); file.release( start, true );
curPage = DataPage.getDataPageView( curBlock ); curPage.setFirst( DataPage.O_DATA ); RecordHeader hdr = new RecordHeader( curBlock, DataPage.O_DATA ); } else { curBlock = file.get( start ); curPage = DataPage.getDataPageView( curBlock ); start = pageman.allocate( Magic.USED_PAGE ); curBlock = file.get( start ); curPage = DataPage.getDataPageView( curBlock ); curPage.setFirst( (short) 0 ); // no rowids, just data file.release( start, true ); curPage = DataPage.getDataPageView( curBlock ); curPage.setFirst( (short) (DataPage.O_DATA + neededLeft) ); file.release( start, true );