Class BTreeRowPosition
java.lang.Object
org.apache.derby.impl.store.access.conglomerate.RowPosition
org.apache.derby.impl.store.access.btree.BTreeRowPosition
-
Field Summary
FieldsModifier and TypeFieldDescriptionFields of the classprotected LeafControlRow
private final BTreeScan
The scan that owns this position object.private DataValueDescriptor[]
Cached template for saving this position by key.private FetchDescriptor
Cached fetch descriptor that can be used to fetch the key columns that are not already fetched by the scan.(package private) long
The version number of the leaf page when this position was saved by key.Fields inherited from class org.apache.derby.impl.store.access.conglomerate.RowPosition
current_page, current_pageno, current_rh, current_rh_qualified, current_slot
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) FetchDescriptor
getFetchDescriptorForSaveKey
(int[] vcols, int fullLength) Get a fetch descriptor that can be used to fetch the missing columns in a partial key.(package private) DataValueDescriptor[]
Get a template into which the position key can be copied.void
init()
Public Methods of This class:void
Save this position by key and release the latch on the current leaf.final String
toString()
final void
unlatch()
Methods inherited from class org.apache.derby.impl.store.access.conglomerate.RowPosition
positionAtNextSlot, positionAtPrevSlot
-
Field Details
-
current_positionKey
Fields of the class -
current_leaf
-
next_leaf
-
current_lock_template
-
current_lock_row_loc
-
parent
The scan that owns this position object. -
versionWhenSaved
long versionWhenSavedThe version number of the leaf page when this position was saved by key. Only valid ifcurrent_positionKey
is non-null. This value is used to decide whether repositioning should be performed by using the key, or ifRowPosition.current_rh
could be used directly. -
positionKey_template
Cached template for saving this position by key. -
savedFetchDescriptor
Cached fetch descriptor that can be used to fetch the key columns that are not already fetched by the scan. The fetch descriptor is used when this position is about to be saved by its full key.
-
-
Constructor Details
-
BTreeRowPosition
Constructors for This class:
-
-
Method Details
-
init
public void init()Public Methods of This class:- Overrides:
init
in classRowPosition
-
unlatch
public final void unlatch()- Overrides:
unlatch
in classRowPosition
-
saveMeAndReleasePage
Save this position by key and release the latch on the current leaf.- Throws:
StandardException
- if an error occurs while saving the position- See Also:
-
getKeyTemplate
Get a template into which the position key can be copied. The value is cached, so two calls to this method on the same object will return the same object.- Returns:
- an array into which the position key can be copied
- Throws:
StandardException
- if an error occurs while allocating the template array
-
getFetchDescriptorForSaveKey
Get a fetch descriptor that can be used to fetch the missing columns in a partial key. The fetch descriptor is only created on the first call to this method. The returned descriptor will be cached, so subsequent calls will return the same descriptor and the arguments to this method should be the same between invokations.- Parameters:
vcols
- an array which tells which columns the partial key contains (valid columns have non-zero values in the array)fullLength
- the length of the full key to create a fetch descriptor for (may be greater thanvcols.length
)- Returns:
- a fetch descriptor
-
toString
- Overrides:
toString
in classRowPosition
-