Class GenericConglomerateController
- java.lang.Object
-
- org.apache.derby.impl.store.access.conglomerate.GenericController
-
- org.apache.derby.impl.store.access.conglomerate.GenericConglomerateController
-
- All Implemented Interfaces:
ConglomerateController
,ConglomPropertyQueryable
- Direct Known Subclasses:
HeapController
public abstract class GenericConglomerateController extends GenericController implements ConglomerateController
-
-
Field Summary
-
Fields inherited from class org.apache.derby.impl.store.access.conglomerate.GenericController
open_conglom
-
Fields inherited from interface org.apache.derby.iapi.store.access.ConglomerateController
LOCK_INS, LOCK_INS_PREVKEY, LOCK_READ, LOCK_UPD, LOCK_UPDATE_LOCKS, ROWISDUPLICATE
-
-
Constructor Summary
Constructors Constructor Description GenericConglomerateController()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Close the conglomerate controller.boolean
closeForEndTransaction(boolean closeHeldScan)
Close conglomerate controller as part of terminating a transaction.boolean
delete(RowLocation loc)
Delete a row from the conglomerate.boolean
fetch(RowLocation loc, DataValueDescriptor[] row, FormatableBitSet validColumns)
Fetch the (partial) row at the given location.boolean
fetch(RowLocation loc, DataValueDescriptor[] row, FormatableBitSet validColumns, boolean waitForLock)
Fetch the (partial) row at the given location.boolean
replace(RowLocation loc, DataValueDescriptor[] row, FormatableBitSet validColumns)
Replace the (partial) row at the given location.-
Methods inherited from class org.apache.derby.impl.store.access.conglomerate.GenericController
checkConsistency, debugConglomerate, getEstimatedRowCount, getInternalTablePropertySet, getOpenConglom, getRowPositionFromRowLocation, getSpaceInfo, getTableProperties, init, isKeyed, isTableLocked, newRowLocationTemplate, queueDeletePostCommitWork, setEstimatedRowCount
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.derby.iapi.store.access.ConglomerateController
checkConsistency, debugConglomerate, getSpaceInfo, insert, insertAndFetchLocation, isKeyed, lockRow, lockRow, newRowLocationTemplate, unlockRowAfterRead
-
Methods inherited from interface org.apache.derby.iapi.store.access.ConglomPropertyQueryable
getInternalTablePropertySet, getTableProperties
-
-
-
-
Method Detail
-
close
public void close() throws StandardException
Description copied from interface:ConglomerateController
Close the conglomerate controller.Close the conglomerate controller. Callers must not use the conglomerate controller after calling close. It is strongly recommended that callers clear out the reference after closing, e.g.,
ConglomerateController cc; cc.close; cc = null;
- Specified by:
close
in interfaceConglomerateController
- Overrides:
close
in classGenericController
- Throws:
StandardException
- Standard exception policy.- See Also:
ConglomerateController.close()
-
closeForEndTransaction
public boolean closeForEndTransaction(boolean closeHeldScan) throws StandardException
Close conglomerate controller as part of terminating a transaction.Use this call to close the conglomerate controller resources as part of committing or aborting a transaction. The normal close() routine may do some cleanup that is either unnecessary, or not correct due to the unknown condition of the controller following a transaction ending error. Use this call when closing all controllers as part of an abort of a transaction.
This call is meant to only be used internally by the Storage system, clients of the storage system should use the simple close() interface.
RESOLVE (mikem) - move this call to ConglomerateManager so it is obvious that non-access clients should not call this.
- Specified by:
closeForEndTransaction
in interfaceConglomerateController
- Parameters:
closeHeldScan
- If true, means to close controller even if it has been opened to be kept opened across commit. This is used to close these controllers on abort.- Returns:
- boolean indicating that the close has resulted in a real close of the controller. A held scan will return false if called by closeForEndTransaction(false), otherwise it will return true. A non-held scan will always return true.
- Throws:
StandardException
- Standard exception policy.
-
delete
public boolean delete(RowLocation loc) throws StandardException
Description copied from interface:ConglomerateController
Delete a row from the conglomerate.- Specified by:
delete
in interfaceConglomerateController
- Returns:
- Returns true if delete was successful, false if the record pointed at no longer represents a valid record.
- Throws:
StandardException
- Standard exception policy.- See Also:
ConglomerateController.delete(org.apache.derby.iapi.types.RowLocation)
-
fetch
public boolean fetch(RowLocation loc, DataValueDescriptor[] row, FormatableBitSet validColumns) throws StandardException
Description copied from interface:ConglomerateController
Fetch the (partial) row at the given location.- Specified by:
fetch
in interfaceConglomerateController
- Parameters:
loc
- The "RowLocation" which describes the exact row to fetch from the table.row
- The row to read the data into.validColumns
- A description of which columns to return from row on the page into "destRow." destRow and validColumns work together to describe the row to be returned by the fetch - see RowUtil for description of how these three parameters work together to describe a fetched "row".- Returns:
- Returns true if fetch was successful, false if the record pointed at no longer represents a valid record.
- Throws:
StandardException
- Standard exception policy.- See Also:
ConglomerateController.fetch(org.apache.derby.iapi.types.RowLocation, org.apache.derby.iapi.types.DataValueDescriptor[], org.apache.derby.iapi.services.io.FormatableBitSet)
-
fetch
public boolean fetch(RowLocation loc, DataValueDescriptor[] row, FormatableBitSet validColumns, boolean waitForLock) throws StandardException
Description copied from interface:ConglomerateController
Fetch the (partial) row at the given location.- Specified by:
fetch
in interfaceConglomerateController
- Parameters:
loc
- The "RowLocation" which describes the exact row to fetch from the table.row
- The row to read the data into.validColumns
- A description of which columns to return from row on the page into "destRow." destRow and validColumns work together to describe the row to be returned by the fetch - see RowUtil for description of how these three parameters work together to describe a fetched "row".waitForLock
- If false, then the call will throw a lock timeout exception immediately, if the lock can not be granted without waiting. If true call will act exactly as fetch() interface with no waitForLock parameter.- Returns:
- Returns true if fetch was successful, false if the record pointed at no longer represents a valid record.
- Throws:
StandardException
- Standard exception policy.- See Also:
ConglomerateController.fetch(org.apache.derby.iapi.types.RowLocation, org.apache.derby.iapi.types.DataValueDescriptor[], org.apache.derby.iapi.services.io.FormatableBitSet)
-
replace
public boolean replace(RowLocation loc, DataValueDescriptor[] row, FormatableBitSet validColumns) throws StandardException
Description copied from interface:ConglomerateController
Replace the (partial) row at the given location.- Specified by:
replace
in interfaceConglomerateController
- Returns:
- true if update was successful, returns false if the update fails because the record pointed at no longer represents a valid record.
- Throws:
StandardException
- Standard exception policy.- See Also:
ConglomerateController.replace(org.apache.derby.iapi.types.RowLocation, org.apache.derby.iapi.types.DataValueDescriptor[], org.apache.derby.iapi.services.io.FormatableBitSet)
-
-