org.apache.derby.impl.store.raw.data
Class PurgeOperation

java.lang.Object
  extended by org.apache.derby.impl.store.raw.data.PageBasicOperation
      extended by org.apache.derby.impl.store.raw.data.PhysicalPageOperation
          extended by org.apache.derby.impl.store.raw.data.PurgeOperation
All Implemented Interfaces:
java.io.Externalizable, java.io.Serializable, Formatable, TypedFormat, Loggable, RePreparable, Undoable

public final class PurgeOperation
extends PhysicalPageOperation

USE WITH EXTREME Caution: Purge records from a Page. Represents purging of a range of rows from the page.

See Also:
Page.purgeAtSlot(int, int, boolean), Serialized Form
Format IDLOGOP_PURGE the formatId is written by FormatIdOutputStream when this object is written out by writeObject
Purposepurge num_rows from the page
Upgrade
Disk LayoutPagePhysicalOperation the super class slot(CompressedInt) the slot to start purging num_rows(CompressedInt) number of rows rows to purge recordIds(CompressedInt[num_rows]) the recordIds of the purged rows OptionalData the before images of the rows that were purged

Field Summary
protected  int num_rows
           
protected  ByteArray preparedLog
           
protected  int[] recordIds
           
protected  int slot
           
 
Fields inherited from class org.apache.derby.impl.store.raw.data.PageBasicOperation
containerHdl, foundHere, page
 
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
 
Constructor Summary
PurgeOperation()
           
PurgeOperation(RawTransaction t, BasePage page, int slot, int num_rows, int[] recordIds, boolean needDataLogged)
           
 
Method Summary
 void doMe(Transaction xact, LogInstant instant, LimitObjectInput in)
          Apply the purge operation to the page.
 ByteArray getPreparedLog()
          the default for optional data is set to null.
 int getTypeFormatId()
          Return my format identifier.
 void readExternal(java.io.ObjectInput in)
          Read this in
 void restoreMe(Transaction xact, BasePage undoPage, LogInstant CLRInstant, LimitObjectInput in)
          restore the before image of the page
 java.lang.String toString()
          DEBUG: Print self.
 void undoMe(Transaction xact, BasePage undoPage, LogInstant CLRInstant, LimitObjectInput in)
          Undo the purge operation on the page.
 void writeExternal(java.io.ObjectOutput out)
           
private  void writeOptionalDataToBuffer(RawTransaction t, boolean needDataLogged)
          Write out the purged record from the page.
 
Methods inherited from class org.apache.derby.impl.store.raw.data.PhysicalPageOperation
generateUndo
 
Methods inherited from class org.apache.derby.impl.store.raw.data.PageBasicOperation
findpage, getPage, getPageForRedoRecovery, getPageId, getPageVersion, group, needsRedo, reclaimPrepareLocks, releaseResource, resetPageNumber
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.derby.iapi.store.raw.Loggable
group, needsRedo, releaseResource
 

Field Detail

slot

protected int slot

num_rows

protected int num_rows

recordIds

protected int[] recordIds

preparedLog

protected transient ByteArray preparedLog
Constructor Detail

PurgeOperation

public PurgeOperation(RawTransaction t,
                      BasePage page,
                      int slot,
                      int num_rows,
                      int[] recordIds,
                      boolean needDataLogged)
               throws StandardException
Throws:
StandardException

PurgeOperation

public PurgeOperation()
Method Detail

writeExternal

public void writeExternal(java.io.ObjectOutput out)
                   throws java.io.IOException
Specified by:
writeExternal in interface java.io.Externalizable
Overrides:
writeExternal in class PageBasicOperation
Throws:
java.io.IOException

readExternal

public void readExternal(java.io.ObjectInput in)
                  throws java.io.IOException,
                         java.lang.ClassNotFoundException
Read this in

Specified by:
readExternal in interface java.io.Externalizable
Overrides:
readExternal in class PageBasicOperation
Throws:
java.io.IOException - error reading from log stream
java.lang.ClassNotFoundException - log stream corrupted

getTypeFormatId

public int getTypeFormatId()
Return my format identifier.

Returns:
The identifier. (A UUID stuffed in an array of 16 bytes).

doMe

public void doMe(Transaction xact,
                 LogInstant instant,
                 LimitObjectInput in)
          throws StandardException,
                 java.io.IOException
Apply the purge operation to the page.

Parameters:
xact - the Transaction
instant - the log instant of this operation
in - optional data
Throws:
java.io.IOException - Can be thrown by any of the methods of ObjectInput.
StandardException - Standard Derby policy.
See Also:
Loggable.doMe(org.apache.derby.iapi.store.raw.Transaction, org.apache.derby.iapi.store.raw.log.LogInstant, org.apache.derby.iapi.services.io.LimitObjectInput)

undoMe

public void undoMe(Transaction xact,
                   BasePage undoPage,
                   LogInstant CLRInstant,
                   LimitObjectInput in)
            throws StandardException,
                   java.io.IOException
Undo the purge operation on the page.

Specified by:
undoMe in class PhysicalPageOperation
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
Throws:
java.io.IOException - Can be thrown by any of the methods of ObjectInput.
StandardException - Standard Derby policy.
See Also:
PhysicalPageOperation.undoMe(org.apache.derby.iapi.store.raw.Transaction, org.apache.derby.impl.store.raw.data.BasePage, org.apache.derby.iapi.store.raw.log.LogInstant, org.apache.derby.iapi.services.io.LimitObjectInput)

restoreMe

public void restoreMe(Transaction xact,
                      BasePage undoPage,
                      LogInstant CLRInstant,
                      LimitObjectInput in)
               throws StandardException,
                      java.io.IOException
restore the before image of the page

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
Throws:
StandardException - Standard Derby Error Policy
java.io.IOException - problem reading the complete log record from the input stream

getPreparedLog

public 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

writeOptionalDataToBuffer

private void writeOptionalDataToBuffer(RawTransaction t,
                                       boolean needDataLogged)
                                throws StandardException,
                                       java.io.IOException
Write out the purged record from the page. Used for undo only.

Throws:
java.io.IOException - Can be thrown by any of the methods of ObjectOutput.
StandardException - Standard Derby policy.

toString

public java.lang.String toString()
DEBUG: Print self.

Overrides:
toString in class PageBasicOperation

Built on Thu 2010-12-23 20:49:13+0000, from revision ???

Apache Derby V10.6 Internals - Copyright © 2004,2007 The Apache Software Foundation. All Rights Reserved.