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

java.lang.Object
  extended by org.apache.derby.impl.store.access.conglomerate.GenericController
      extended by org.apache.derby.impl.store.access.conglomerate.GenericCostController
All Implemented Interfaces:
RowCountable, StoreCostController
Direct Known Subclasses:
HeapCostController

public abstract class GenericCostController
extends GenericController
implements StoreCostController

A Generic class which implements the basic functionality needed for a cost controller.


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.StoreCostController
BASE_CACHED_ROW_FETCH_COST, BASE_GROUPSCAN_ROW_COST, BASE_HASHSCAN_ROW_FETCH_COST, BASE_NONGROUPSCAN_ROW_FETCH_COST, BASE_ROW_PER_BYTECOST, BASE_UNCACHED_ROW_FETCH_COST, STORECOST_CLUSTERED, STORECOST_SCAN_NORMAL, STORECOST_SCAN_SET
 
Constructor Summary
GenericCostController()
           
 
Method Summary
 double getFetchFromFullKeyCost(FormatableBitSet validColumns, int access_type)
          Return the cost of exact key lookup.
 
Methods inherited from class org.apache.derby.impl.store.access.conglomerate.GenericController
checkConsistency, close, 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.StoreCostController
close, getFetchFromRowLocationCost, getScanCost, newRowLocationTemplate
 
Methods inherited from interface org.apache.derby.iapi.store.access.RowCountable
getEstimatedRowCount, setEstimatedRowCount
 

Constructor Detail

GenericCostController

public GenericCostController()
Method Detail

getFetchFromFullKeyCost

public double getFetchFromFullKeyCost(FormatableBitSet validColumns,
                                      int access_type)
                               throws StandardException
Return the cost of exact key lookup.

Return the estimated cost of calling ScanController.fetch() on the current conglomerate, with start and stop positions set such that an exact match is expected.

This call returns the cost of a fetchNext() performed on a scan which has been positioned with a start position which specifies exact match on all keys in the row.

Example:

In the case of a btree this call can be used to determine the cost of doing an exact probe into btree, giving all key columns. This cost can be used if the client knows it will be doing an exact key probe but does not have the key's at optimize time to use to make a call to getScanCost()

Specified by:
getFetchFromFullKeyCost in interface StoreCostController
Parameters:
validColumns - A description of which columns to return from row on the page into "templateRow." templateRow, 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".
access_type - Describe the type of access the query will be performing to the ScanController. STORECOST_CLUSTERED - The location of one scan is likely clustered "close" to the previous scan. For instance if the query plan were to used repeated "reopenScan()'s" to probe for the next key in an index, then this flag should be be specified. If this flag is not set then each scan will be costed independant of any other predicted scan access.
Returns:
The cost of the fetch.
Throws:
StandardException - Standard exception policy.
See Also:
RowUtil

Built on Thu 2012-03-29 21:53:33+0000, from revision ???

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