TranslationPage xlatPage = TranslationPage.getTranslationPageView(io,TRANS_BLOCK_SIZE);
/** * Returns a mapping * * @param rowid The logical rowid * @return The physical rowid */ Location fetch( Location rowid ) throws IOException { TranslationPage xlatPage = TranslationPage.getTranslationPageView( recordFile.get( rowid.getBlock() ) ); try { Location retval = new Location( xlatPage.get( rowid.getOffset() ) ); return retval; } finally { recordFile.release( rowid.getBlock(), false ); } }
/** * Releases the indicated logical rowid. */ void delete(long rowid) throws IOException { //zero out old location, is needed for defragmentation TranslationPage xlatPage = TranslationPage.getTranslationPageView(file.get(Location.getBlock(rowid)),blockSize); xlatPage.setLocationBlock(Location.getOffset(rowid), 0); xlatPage.setLocationOffset(Location.getOffset(rowid), (short)0); file.release(Location.getBlock(rowid), true); freeman.put(rowid); }
/** * Returns a mapping * * @param rowid The logical rowid * @return The physical rowid */ Location fetch(Location rowid) throws IOException { TranslationPage xlatPage = TranslationPage.getTranslationPageView( file.get(rowid.getBlock())); try { Location retval = new Location(xlatPage.get(rowid.getOffset())); return retval; } finally { file.release(rowid.getBlock(), false); } }
/** * Returns a mapping * * @param rowid The logical rowid * @return The physical rowid */ Location fetch( Location rowid ) throws IOException { TranslationPage xlatPage = TranslationPage.getTranslationPageView( recordFile.get( rowid.getBlock() ) ); try { Location retval = new Location( xlatPage.get( rowid.getOffset() ) ); return retval; } finally { recordFile.release( rowid.getBlock(), false ); } }
/** * Returns a mapping * * @param rowid * The logical rowid * @return The physical rowid, 0 if does not exist */ long fetch(long rowid) throws IOException { final long block = Location.getBlock(rowid); long last = pageman.getLast(Magic.TRANSLATION_PAGE); if(last+1<block) return 0; final short offset = Location.getOffset(rowid); BlockIo bio = file.get(block); TranslationPage xlatPage = TranslationPage.getTranslationPageView(bio,blockSize); try { long retval = Location.toLong( xlatPage.getLocationBlock(offset), xlatPage.getLocationOffset(offset)); return retval; } finally { file.release(block, false); } }
/** * Updates the mapping * * @param rowid The logical rowid * @param loc The physical rowid */ void update( Location rowid, Location loc ) throws IOException { TranslationPage xlatPage = TranslationPage.getTranslationPageView( recordFile.get( rowid.getBlock() ) ); PhysicalRowId physid = xlatPage.get( rowid.getOffset() ); physid.setBlock( loc.getBlock() ); physid.setOffset( loc.getOffset() ); recordFile.release( rowid.getBlock(), true ); }
/** * Updates the mapping * * @param rowid The logical rowid * @param loc The physical rowid */ void update( Location rowid, Location loc ) throws IOException { TranslationPage xlatPage = TranslationPage.getTranslationPageView( recordFile.get( rowid.getBlock() ) ); PhysicalRowId physid = xlatPage.get( rowid.getOffset() ); physid.setBlock( loc.getBlock() ); physid.setOffset( loc.getOffset() ); recordFile.release( rowid.getBlock(), true ); }
/** * Updates the mapping * * @param rowid The logical rowid * @param loc The physical rowid */ void update(Location rowid, Location loc) throws IOException { TranslationPage xlatPage = TranslationPage.getTranslationPageView( file.get(rowid.getBlock())); PhysicalRowId physid = xlatPage.get(rowid.getOffset()); physid.setBlock(loc.getBlock()); physid.setOffset(loc.getOffset()); file.release(rowid.getBlock(), true); }
/** * Updates the mapping * * @param rowid * The logical rowid * @param loc * The physical rowid */ void update(long rowid, long loc) throws IOException { TranslationPage xlatPage = TranslationPage.getTranslationPageView(file.get(Location.getBlock(rowid)),blockSize); //make sure it is right type of page // PhysicalRowId physid = xlatPage.get(rowid.getOffset()); // physid.setBlock(loc.getBlock()); // physid.setOffset(loc.getOffset()); xlatPage.setLocationBlock(Location.getOffset(rowid), Location.getBlock(loc)); xlatPage.setLocationOffset(Location.getOffset(rowid), Location.getOffset(loc)); file.release(Location.getBlock(rowid), true); }