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

java.lang.Object
  extended byorg.apache.derby.impl.store.raw.data.PageBasicOperation
      extended byorg.apache.derby.impl.store.raw.data.SetReservedSpaceOperation
All Implemented Interfaces:
java.io.Externalizable, Formatable, Loggable, RePreparable, java.io.Serializable, TypedFormat

public class SetReservedSpaceOperation
extends PageBasicOperation

Represents shrinking of the reserved space of a particular row on a page. This operation is not undoable.

See Also:
Serialized Form

Field Summary
protected  int doMeSlot
           
protected  int newValue
           
protected  int oldValue
           
protected  int recordId
           
 
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, COMMIT, COMPENSATION, FILE_RESOURCE, FIRST, LAST, PREPARE, RAWSTORE, XA_NEEDLOCK
 
Constructor Summary
SetReservedSpaceOperation()
           
SetReservedSpaceOperation(BasePage page, int slot, int recordId, int newValue, int oldValue)
           
 
Method Summary
 void doMe(Transaction xact, LogInstant instant, LimitObjectInput in)
          Apply the change indicated by this operation and optional data.
 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 writeExternal(java.io.ObjectOutput out)
           
 
Methods inherited from class org.apache.derby.impl.store.raw.data.PageBasicOperation
findpage, getPage, getPageForLoadTran, getPageId, getPageVersion, getPreparedLog, group, needsRedo, reclaimPrepareLocks, releaseResource, resetPageNumber
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

doMeSlot

protected int doMeSlot

recordId

protected int recordId

newValue

protected int newValue

oldValue

protected int oldValue
Constructor Detail

SetReservedSpaceOperation

public SetReservedSpaceOperation(BasePage page,
                                 int slot,
                                 int recordId,
                                 int newValue,
                                 int oldValue)

SetReservedSpaceOperation

public SetReservedSpaceOperation()
Method Detail

getTypeFormatId

public int getTypeFormatId()
Return my format identifier.

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

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

doMe

public void doMe(Transaction xact,
                 LogInstant instant,
                 LimitObjectInput in)
          throws StandardException,
                 java.io.IOException
Description copied from interface: Loggable
Apply the change indicated by this operation and optional data. If this method fail, the system will be shut down because the log record has already been written to disk. Moreover, the log record will be replayed during recovery and this doMe method will be called on the same page again, so if it fails again, recovery will fail and the database cannot be started. So it is very important to make sure that every resource you need, such as disk space, has been acquired before the logAndDo method is called!
This method cannot acquire any resource (like latching of a page) since it is called underneath the logging system, ie., the log record has already been written to the log stream.

The available() method of in indicates how much data can be read, i.e. how much was originally written.

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 Cloudscape 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)

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 Cloudscape Error Policy
java.io.IOException - problem reading the complete log record from the input stream

toString

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

Overrides:
toString in class PageBasicOperation


Apache Derby V10.0 Engine Documentation - Copyright © 1997,2004 The Apache Software Foundation or its licensors, as applicable.