Class PhysicalUndoOperation

java.lang.Object
org.apache.derby.impl.store.raw.data.PageBasicOperation
org.apache.derby.impl.store.raw.data.PhysicalUndoOperation
All Implemented Interfaces:
Externalizable, Serializable, Formatable, TypedFormat, Compensation, Loggable, RePreparable

public final class PhysicalUndoOperation extends PageBasicOperation implements Compensation
PhysicalUndoOperation is a compensation operation that rolls back the change of an Undo-able operation. A PhysicalUndoOperation itself is not undo-able, i.e, it is loggable but not undoable.
See Also:
  • Field Details

  • Constructor Details

    • PhysicalUndoOperation

      PhysicalUndoOperation(BasePage page)
    • PhysicalUndoOperation

      PhysicalUndoOperation(BasePage page, PhysicalPageOperation op)
      Set up a compensation operation during run time rollback
    • PhysicalUndoOperation

      public PhysicalUndoOperation()
      Return my format identifier.
  • Method Details

    • getTypeFormatId

      public int getTypeFormatId()
      Description copied from interface: TypedFormat
      Get a universally unique identifier for the type of this object.
      Specified by:
      getTypeFormatId in interface TypedFormat
      Returns:
      The identifier. (A UUID stuffed in an array of 16 bytes).
    • setUndoOp

      public void setUndoOp(Undoable op)
      Set up a PageUndoOperation during recovery redo.
      Specified by:
      setUndoOp in interface Compensation
      Parameters:
      op - the Undoable operation
      See Also:
    • doMe

      public final void doMe(Transaction xact, LogInstant instant, LimitObjectInput in) throws StandardException, IOException
      Apply the undo operation, in this implementation of the RawStore, it can only call the undoMe method of undoOp
      Specified by:
      doMe in interface Loggable
      Parameters:
      xact - the Transaction that is doing the rollback
      instant - the log instant of this undo operation
      in - optional data
      Throws:
      IOException - Can be thrown by any of the methods of InputStream.
      StandardException - Standard Derby policy.
    • releaseResource

      public void releaseResource(Transaction xact)
      Description copied from class: PageBasicOperation
      Release latched page and any other resources acquired during a previous findpage, safe to call multiple times. In this RawStore implementataion, resource is acquired by a log operation in one of two places
    • during runtime or recovery undo in PageOperation.generateUndo()
    • during recovery redo in PageBasicOperation.needsRedo()
    • Specified by:
      releaseResource in interface Loggable
      Overrides:
      releaseResource in class PageBasicOperation
    • group

      public int group()
      Description copied from class: PageBasicOperation
      A page operation is a RAWSTORE log record
      Specified by:
      group in interface Loggable
      Overrides:
      group in class PageBasicOperation
    • getPreparedLog

      public final ByteArray getPreparedLog()
      Description copied from class: PageBasicOperation
      the default for optional data is set to null. If an operation has optional data, the operation need to prepare the optional data for this method. WARNING: If a log operation extends this class, and the operation has optional data, it MUST overwrite this method to return a ByteArray that contains the optional data.
      Specified by:
      getPreparedLog in interface Loggable
      Overrides:
      getPreparedLog in class PageBasicOperation
    • restoreMe

      public void restoreMe(Transaction xact, BasePage undoPage, LogInstant CLRinstant, LimitObjectInput in)
      Description copied from class: PageBasicOperation
      Undo the change indicated by this log operation and optional data. The page the undo should apply to is the latched undoPage. The undoPage must be the same page as the doMe page and the undo operation must restore the before image of the row that changed.
      this can only be used under special circumstances: namely table level locking, and no internal or nested transaction, and all operations are rollec back with restoreMe instead of undoMe.
      This method is here to support BeforeImageLogging
      Specified by:
      restoreMe in class PageBasicOperation
      Parameters:
      xact - the Transaction doing the rollback
      undoPage - the page to rollback changes on
      CLRinstant - the log instant of this (PageUndo) operation
      in - optional data for the rollback operation
    • toString

      public String toString()
      DEBUG: Print self.
      Overrides:
      toString in class PageBasicOperation