- All Superinterfaces:
- java.io.Externalizable, org.apache.derby.iapi.services.io.Formatable, Loggable, java.io.Serializable, org.apache.derby.iapi.services.io.TypedFormat, Undoable
- 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.
| 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 |
getContainer
public ContainerHandle getContainer()
throws org.apache.derby.iapi.error.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.
getRecordHandle
public 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
public void restoreLoggedRow(java.lang.Object[] row,
org.apache.derby.iapi.services.io.LimitObjectInput in)
throws org.apache.derby.iapi.error.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.
resetRecordHandle
public void resetRecordHandle(RecordHandle rh)
- If the row has moved, reset the record handle that the undo should be applied on.