org.apache.derby.impl.store.access.conglomerate
Class GenericConglomerateController

java.lang.Object
  extended by org.apache.derby.impl.store.access.conglomerate.GenericController
      extended by 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
GenericConglomerateController()
           
 
Method Summary
 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
 

Constructor Detail

GenericConglomerateController

public GenericConglomerateController()
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 interface ConglomerateController
Overrides:
close in class GenericController
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. RESOLVE (mikem) - move this call to ConglomerateManager so it is obvious that non-access clients should not call this.

Specified by:
closeForEndTransaction in interface ConglomerateController
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 interface ConglomerateController
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 interface ConglomerateController
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 interface ConglomerateController
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 interface ConglomerateController
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)

Built on Thu 2011-03-10 11:54:14+0000, from revision ???

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