Package org.apache.derby.iapi.store.raw
Interface LogicalUndoable
-
- All Superinterfaces:
java.io.Externalizable
,Formatable
,Loggable
,java.io.Serializable
,TypedFormat
,Undoable
- All Known Implementing Classes:
DeleteOperation
,InsertOperation
,LogicalPageOperation
,UpdateFieldOperation
public interface LogicalUndoable extends Undoable
A LogicalUndoable is a log operation that operates on the content of a page and the log operation needs logical undo. This interface is used by LogicalUndo to extract information out of the log record, and to pass back to the logging system the real location where the roll back should happen.It has specific page information such as its segment Id, container Id, page number, and it knows how to restore a storable row from the information stored in the log record.
- See Also:
LogicalUndo
-
-
Field Summary
-
Fields inherited from interface org.apache.derby.iapi.store.raw.Loggable
ABORT, BI_LOG, CHECKSUM, COMMIT, COMPENSATION, FILE_RESOURCE, FIRST, LAST, PREPARE, RAWSTORE, XA_NEEDLOCK
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description ContainerHandle
getContainer()
Return the containerHandle used by this log operation.RecordHandle
getRecordHandle()
Return the recordHandle stored in the log operation that correspond to the record that was changed in the rollforward.void
resetRecordHandle(RecordHandle rh)
If the row has moved, reset the record handle that the undo should be applied on.void
restoreLoggedRow(java.lang.Object[] row, LimitObjectInput in)
Restore the row stored in the log operation.-
Methods inherited from interface org.apache.derby.iapi.store.raw.Loggable
doMe, getPreparedLog, group, needsRedo, releaseResource
-
Methods inherited from interface org.apache.derby.iapi.services.io.TypedFormat
getTypeFormatId
-
Methods inherited from interface org.apache.derby.iapi.store.raw.Undoable
generateUndo
-
-
-
-
Method Detail
-
getContainer
ContainerHandle getContainer() throws StandardException
Return the containerHandle used by this log operation. Logical cannot change container identity between roll forward and roll back. This method should only be called by LogicalUndo to extract information from the log record.- Throws:
StandardException
- Standard Derby error policy
-
getRecordHandle
RecordHandle getRecordHandle()
Return the recordHandle stored in the log operation that correspond to the record that was changed in the rollforward. This method should only be called by LogicalUndo to extract information from the log record.
-
restoreLoggedRow
void restoreLoggedRow(java.lang.Object[] row, LimitObjectInput in) throws StandardException, java.io.IOException
Restore the row stored in the log operation. This method should only be called by LogicalUndo to extract information from the log record.- Parameters:
row
- an IN/OUT parameter, caller passed in the row with the correct column number and type, the log operation will restore the row with the optional data stored in the log record.- Throws:
StandardException
- Standard Derby error policyjava.io.IOException
- Method may read from in- See Also:
LogicalUndo
-
resetRecordHandle
void resetRecordHandle(RecordHandle rh)
If the row has moved, reset the record handle that the undo should be applied on.- Parameters:
rh
- the RecordHandle that represents the row's new location
-
-