java.io.Externalizable
, java.io.Serializable
, Formatable
, TypedFormat
, Loggable
, RePreparable
, Undoable
public class CopyRowsOperation extends PhysicalPageOperation
Format ID | LOGOP_COPY_ROWS the formatId is written by FormatIdOutputStream when this object is written out by writeObject |
Purpose | |
copy some rows from one page to another | |
Upgrade | |
Disk Layout | PhysicalPageOperation the superclass num_rows(CompressedInt) number of rows to copy destSlot(CompressedInt) the first slot number at the destination page recordIds(CompressedInt[num_rows]) the recordIds at the destination page OptionalData the after image of the rows to be inserted into the destination page |
Modifier and Type | Field | Description |
---|---|---|
protected int |
destSlot |
|
protected int |
num_rows |
|
protected ByteArray |
preparedLog |
|
protected int[] |
recordIds |
|
protected int[] |
reservedSpace |
ABORT, BI_LOG, CHECKSUM, COMMIT, COMPENSATION, FILE_RESOURCE, FIRST, LAST, PREPARE, RAWSTORE, XA_NEEDLOCK
containerHdl, foundHere, page
Constructor | Description |
---|---|
CopyRowsOperation() |
|
CopyRowsOperation(RawTransaction t,
BasePage destPage,
BasePage srcPage,
int destSlot,
int num_rows,
int srcSlot,
int[] recordIds) |
Modifier and Type | Method | Description |
---|---|---|
void |
doMe(Transaction xact,
LogInstant instant,
LimitObjectInput in) |
Apply the change indicated by this operation and optional data.
|
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) |
to undo this operation, purge all records that were copied over.
|
void |
writeExternal(java.io.ObjectOutput out) |
|
private void |
writeOptionalDataToBuffer(RawTransaction t,
BasePage srcPage,
int srcSlot) |
Write the rows that are to be copied into this page
|
group, needsRedo, releaseResource
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
findpage, getPage, getPageForRedoRecovery, getPageId, getPageVersion, group, needsRedo, reclaimPrepareLocks, releaseResource, resetPageNumber
generateUndo
protected int num_rows
protected int destSlot
protected int[] recordIds
protected int[] reservedSpace
protected transient ByteArray preparedLog
CopyRowsOperation(RawTransaction t, BasePage destPage, BasePage srcPage, int destSlot, int num_rows, int srcSlot, int[] recordIds) throws StandardException
StandardException
public CopyRowsOperation()
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException
writeExternal
in interface java.io.Externalizable
writeExternal
in class PageBasicOperation
java.io.IOException
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException
readExternal
in interface java.io.Externalizable
readExternal
in class PageBasicOperation
java.io.IOException
- error reading from log streamjava.lang.ClassNotFoundException
- log stream corruptedpublic int getTypeFormatId()
public void doMe(Transaction xact, LogInstant instant, LimitObjectInput in) throws StandardException, java.io.IOException
Loggable
The available() method of in indicates how much data can be read, i.e. how much was originally written.
xact
- the Transactioninstant
- the log instant of this operationin
- optional datajava.io.IOException
- Can be thrown by any of the methods of ObjectInput.StandardException
- Standard Derby error policy.Loggable.doMe(org.apache.derby.iapi.store.raw.Transaction, org.apache.derby.iapi.store.raw.log.LogInstant, org.apache.derby.iapi.services.io.LimitObjectInput)
public void undoMe(Transaction xact, BasePage undoPage, LogInstant CLRInstant, LimitObjectInput in) throws StandardException, java.io.IOException
undoMe
in class PhysicalPageOperation
xact
- the Transaction doing the rollbackundoPage
- the page to rollback changes onCLRInstant
- the log instant of this (PageUndo) operationin
- optional data for the rollback operationjava.io.IOException
- Can be thrown by any of the methods of ObjectInput.StandardException
- Standard Derby error policyPhysicalPageOperation.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)
public void restoreMe(Transaction xact, BasePage undoPage, LogInstant CLRInstant, LimitObjectInput in) throws StandardException, java.io.IOException
restoreMe
in class PageBasicOperation
xact
- the Transaction doing the rollbackundoPage
- the page to rollback changes onCLRInstant
- the log instant of this (PageUndo) operationin
- optional data for the rollback operationjava.io.IOException
- problem reading the complete log record from the input streamStandardException
- Standard Derby Error Policypublic ByteArray getPreparedLog()
PageBasicOperation
getPreparedLog
in interface Loggable
getPreparedLog
in class PageBasicOperation
private void writeOptionalDataToBuffer(RawTransaction t, BasePage srcPage, int srcSlot) throws StandardException, java.io.IOException
java.io.IOException
- Can be thrown by any of the methods of ObjectOutput.StandardException
- Standard Derby policy.public java.lang.String toString()
toString
in class PageBasicOperation
Apache Derby V10.14 Internals - Copyright © 2004,2018 The Apache Software Foundation. All Rights Reserved.