| java.lang.Object org.apache.derby.impl.store.access.btree.SearchParameters
SearchParameters | public class SearchParameters (Code) | | 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.
|
POSITION_LEFT_OF_PARTIAL_KEY_MATCH | final public static int POSITION_LEFT_OF_PARTIAL_KEY_MATCH(Code) | | 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_MATCH | final public static int POSITION_RIGHT_OF_PARTIAL_KEY_MATCH(Code) | | Position on last key in a sequence of partial key matches.
Used by scan which will then start scan on next key.
|
btree | public OpenBTree btree(Code) | | The b-tree this search is for. Effectively read-only for the
lifetime of this object.
|
current_fraction | public float current_fraction(Code) | | 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_fraction | public float left_fraction(Code) | | 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_op | int partial_key_match_op(Code) | | 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).
|
resultExact | public boolean resultExact(Code) | | Whether the row found exactly matched the searchKey. Updated
when the search completes.
|
resultSlot | public int resultSlot(Code) | | The resulting slot from the search. Updated when the search completes.
|
searchForOptimizer | public boolean searchForOptimizer(Code) | | Whether the search is for the optimizer, to determine range of scan.
|
searchKey | public DataValueDescriptor[] searchKey(Code) | | The key being searched for. Never intended to be modified
for the lifetime of the object.
|
template | public DataValueDescriptor[] template(Code) | | 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.
|
|
|