@ Override public void delete ( SearchKey key , RecordId dataRecordId , boolean doLogicalLogging ) { if ( tx . isReadOnly ( ) ) throw new UnsupportedOperationException ( ) ; search ( new SearchRange ( key ) , SearchPurpose . DELETE ) ; // log the logical operation starts if ( doLogicalLogging ) tx . recoveryMgr ( ) . logLogicalStart ( ) ; leaf . delete ( dataRecordId ) ; // log the logical operation ends if ( doLogicalLogging ) tx . recoveryMgr ( ) . logIndexDeletionEnd ( ii . indexName ( ) , key , dataRecordId . block ( ) . number ( ) , dataRecordId . id ( ) ) ; }
Deletes the specified index record . The method first traverses the directory to find the leaf page containing that record ; then it deletes the record from the page . F