Top Description Fields Constructors Methods
org.apache.derby.impl.store.access.btree

public Class SearchParameters

extends Object
Class Inheritance
Imports
org.apache.derby.shared.common.sanity.SanityManager, org.apache.derby.shared.common.error.StandardException, org.apache.derby.iapi.store.access.RowUtil, org.apache.derby.iapi.types.DataValueDescriptor

Parameters that are passed down during a recursive b-tree search. This class is intended to be used as a struct, primarily to make it easier to pass a number of search parameters around, and also to make it easy to re-use objects and not re-allocate.

Field Summary

Modifier and TypeField and Description
public OpenBTree
btree

The b-tree this search is for.

public float
current_fraction

If this is an optimizer search, the fraction of rows that are "in" the the current search.

public float
left_fraction

If this is an optimizer search, the fraction of rows that are left of the current search.

pack-priv int
partial_key_match_op

Value to return in comparisons where partial key matches exactly the partial key of a row.

public static final int
POSITION_LEFT_OF_PARTIAL_KEY_MATCH

Position on key just left of a sequence of partial key matches.

public static final int
POSITION_RIGHT_OF_PARTIAL_KEY_MATCH

Position on last key in a sequence of partial key matches.

public boolean
resultExact

Whether the row found exactly matched the searchKey.

public int
resultSlot

The resulting slot from the search.

public boolean
searchForOptimizer

Whether the search is for the optimizer, to determine range of scan.

public DataValueDescriptor[]
searchKey

The key being searched for.

public DataValueDescriptor[]
template

An index row with the correct types for the index, into which rows are read during the search.

Constructor Summary

AccessConstructor and Description
public
SearchParameters(DataValueDescriptor[] searchKey, int partial_key_match_op, DataValueDescriptor[] template, OpenBTree btree, boolean searchForOptimizer)

Construct search parameters.

Method Summary

Modifier and TypeMethod and Description
public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait

Field Detail

btreeback to summary
public OpenBTree btree

The b-tree this search is for. Effectively read-only for the lifetime of this object.

current_fractionback to summary
public float current_fraction

If this is an optimizer search, the fraction of rows that are "in" the the current search. This number is used as we descend down the tree to track the percentage of rows that we think are in the current subtree defined by all leaf's that can be reached from the current branch.

left_fractionback to summary
public float left_fraction

If this is an optimizer search, the fraction of rows that are left of the current search. When the search completes this number multiplied by the number of leaf rows in the table is the number of rows left of the result slot in the search.

partial_key_match_opback to summary
pack-priv int partial_key_match_op

Value to return in comparisons where partial key matches exactly the partial key of a row. Use this parameter to control where in a duplicate partial key list to position the search. Here are some examples: Assume: dataset of {1,0}, {5,1}, {5,2}, {6,4}; and partial key of {5}. If the scan is GE , then the scan intially wants to position on {1,0} (one before first qualifying row) - In this case when a partial match is found we want to return 1 when we hit {5,1}; but if the searchOperator is GT, then we want to return -1 on {5,1}, {5,2}, and then return 1 on {6,4}. partial_key_match_op = POSITION_LEFT_OF_PARTIAL_KEY_MATCH: Scan is looking for GE the partial key, so position the scan to the left of any partial key that exactly matches the partial key. If the scan is GE , then the scan intially wants to position on {1,0} (one before first qualifying row) - In this case when a partial match is found we want to return 1 when we hit {5,1}. partial_key_match_op = POSITION_RIGHT_OF_PARTIAL_KEY_MATCH: Scan is looking for GT the partial key, so position the scan to the right of any partial key that exactly matches the partial key. If the scan is GT, then the scan intially wants to position on {5,2} (one before first qualifying row) - In this case when a partial match is found we want to return -1 when we hit on {5,1}, {5,2}, and then return 1 on {6,4}. partial_key_match_op = 0: Scan does not care where in a set of duplicate partial keys to position to (not used currently).

POSITION_LEFT_OF_PARTIAL_KEY_MATCHback to summary
public static final int POSITION_LEFT_OF_PARTIAL_KEY_MATCH

Position on key just left of a sequence of partial key matches. Used by scan which will then start scan on next key.

POSITION_RIGHT_OF_PARTIAL_KEY_MATCHback to summary
public static final int POSITION_RIGHT_OF_PARTIAL_KEY_MATCH

Position on last key in a sequence of partial key matches. Used by scan which will then start scan on next key.

resultExactback to summary
public boolean resultExact

Whether the row found exactly matched the searchKey. Updated when the search completes.

resultSlotback to summary
public int resultSlot

The resulting slot from the search. Updated when the search completes.

searchForOptimizerback to summary
public boolean searchForOptimizer

Whether the search is for the optimizer, to determine range of scan.

searchKeyback to summary
public DataValueDescriptor[] searchKey

The key being searched for. Never intended to be modified for the lifetime of the object.

templateback to summary
public DataValueDescriptor[] template

An index row with the correct types for the index, into which rows are read during the search. Rows are read into the template during a page search, but they will be overwritten; there is only one template per search.

Constructor Detail

SearchParametersback to summary
public SearchParameters(DataValueDescriptor[] searchKey, int partial_key_match_op, DataValueDescriptor[] template, OpenBTree btree, boolean searchForOptimizer) throws StandardException

Construct search parameters.

Exceptions
StandardException:
Standard exception policy.

Method Detail

toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object. Satisfying this method's contract implies a non-null result must be returned.

Returns:String

a string representation of the object