Class UpdateOperation
java.lang.Object
org.apache.derby.impl.store.raw.data.PageBasicOperation
org.apache.derby.impl.store.raw.data.PhysicalPageOperation
org.apache.derby.impl.store.raw.data.UpdateOperation
- All Implemented Interfaces:
Externalizable, Serializable, Formatable, TypedFormat, Loggable, RePreparable, Undoable
Represents the update of a particular row on a page.
- See Also:
-
Field Summary
FieldsFields inherited from class PageBasicOperation
containerHdl, foundHere, pageFields inherited from interface Loggable
ABORT, BI_LOG, CHECKSUM, COMMIT, COMPENSATION, FILE_RESOURCE, FIRST, LAST, PREPARE, RAWSTORE, XA_NEEDLOCK -
Constructor Summary
ConstructorsConstructorDescriptionUpdateOperation(RawTransaction t, BasePage page, int slot, int recordId, Object[] row, FormatableBitSet validColumns, int realStartColumn, DynamicByteArrayOutputStream logBuffer, int realSpaceOnPage, RecordHandle headRowHandle) -
Method Summary
Modifier and TypeMethodDescriptionvoiddoMe(Transaction xact, LogInstant instant, LimitObjectInput in) Store the new record directly over the old record, the implementation of storeRecord is responsible for removing any old data.intReturn the last column of the row this operation loggedthe default for optional data is set to null.private RecordHandlereturn RecordHandle of the update row.intReturn my format identifier.voidRead this invoidreclaimPrepareLocks(Transaction t, LockingPolicy locking_policy) reclaim locks associated with the changes in this log record.voidrestoreMe(Transaction xact, BasePage undoPage, LogInstant CLRInstant, LimitObjectInput in) restore the before image of the pagetoString()voidundoMe(Transaction xact, BasePage undoPage, LogInstant CLRInstant, LimitObjectInput in) Store the old record directly over the new record, the implementation of storeRecord is responsible for removing any new data.voidprivate voidwriteOptionalDataToBuffer(RawTransaction t, DynamicByteArrayOutputStream logBuffer, Object[] row, FormatableBitSet validColumns, int realStartColumn, int realSpaceOnPage, RecordHandle headRowHandle) Write out the changed colums of new record (from the row) followed by changed columns of the old record (from the page).Methods inherited from class PhysicalPageOperation
generateUndoMethods inherited from class PageBasicOperation
findpage, getPage, getPageForRedoRecovery, getPageId, getPageVersion, group, needsRedo, releaseResource, resetPageNumberMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface Loggable
group, needsRedo, releaseResource
-
Field Details
-
doMeSlot
protected int doMeSlot -
recordId
protected int recordId -
nextColumn
protected transient int nextColumn -
preparedLog
-
-
Constructor Details
-
UpdateOperation
UpdateOperation(RawTransaction t, BasePage page, int slot, int recordId, Object[] row, FormatableBitSet validColumns, int realStartColumn, DynamicByteArrayOutputStream logBuffer, int realSpaceOnPage, RecordHandle headRowHandle) throws StandardException - Throws:
StandardException
-
UpdateOperation
public UpdateOperation()
-
-
Method Details
-
writeExternal
- Specified by:
writeExternalin interfaceExternalizable- Overrides:
writeExternalin classPageBasicOperation- Throws:
IOException
-
readExternal
Read this in- Specified by:
readExternalin interfaceExternalizable- Overrides:
readExternalin classPageBasicOperation- Throws:
IOException- error reading from log streamClassNotFoundException- log stream corrupted
-
getTypeFormatId
public int getTypeFormatId()Return my format identifier.- Returns:
- The identifier. (A UUID stuffed in an array of 16 bytes).
-
getNextStartColumn
public int getNextStartColumn()Return the last column of the row this operation logged -
doMe
public void doMe(Transaction xact, LogInstant instant, LimitObjectInput in) throws StandardException, IOException Store the new record directly over the old record, the implementation of storeRecord is responsible for removing any old data.- Parameters:
xact- the Transactioninstant- the log instant of this operationin- optional data- Throws:
StandardException- Thrown by methods I callIOException- Thrown by methods I call- See Also:
-
undoMe
public void undoMe(Transaction xact, BasePage undoPage, LogInstant CLRInstant, LimitObjectInput in) throws StandardException, IOException Store the old record directly over the new record, the implementation of storeRecord is responsible for removing any new data.- Specified by:
undoMein classPhysicalPageOperation- Parameters:
xact- the Transaction doing the rollbackundoPage- the page to rollback changes onCLRInstant- the log instant of this (PageUndo) operationin- optional data for the rollback operation- Throws:
StandardException- Thrown by methods I callIOException- Thrown by methods I call- See Also:
-
getPreparedLog
Description copied from class:PageBasicOperationthe 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:
getPreparedLogin interfaceLoggable- Overrides:
getPreparedLogin classPageBasicOperation
-
writeOptionalDataToBuffer
private void writeOptionalDataToBuffer(RawTransaction t, DynamicByteArrayOutputStream logBuffer, Object[] row, FormatableBitSet validColumns, int realStartColumn, int realSpaceOnPage, RecordHandle headRowHandle) throws StandardException, IOException Write out the changed colums of new record (from the row) followed by changed columns of the old record (from the page).- Throws:
StandardException- Thrown by methods I callIOException- Thrown by methods I call
-
restoreMe
public void restoreMe(Transaction xact, BasePage undoPage, LogInstant CLRInstant, LimitObjectInput in) throws StandardException, IOException restore the before image of the page- Specified by:
restoreMein classPageBasicOperation- Parameters:
xact- the Transaction doing the rollbackundoPage- the page to rollback changes onCLRInstant- the log instant of this (PageUndo) operationin- optional data for the rollback operation- Throws:
StandardException- Standard Derby Error PolicyIOException- problem reading the complete log record from the input stream
-
getRecordHandle
return RecordHandle of the update row.Return the RecordHandle that should be locked when updating the row in this UpdateOperation.
-
reclaimPrepareLocks
public void reclaimPrepareLocks(Transaction t, LockingPolicy locking_policy) throws StandardException reclaim locks associated with the changes in this log record.- Specified by:
reclaimPrepareLocksin interfaceRePreparable- Overrides:
reclaimPrepareLocksin classPageBasicOperation- Parameters:
locking_policy- The locking policy to use to claim the locks.- Throws:
StandardException- Standard exception policy.
-
toString
- Overrides:
toStringin classPageBasicOperation
-