Package db
Interface FieldKeyInteriorNode
- All Superinterfaces:
InteriorNode
FieldKeyInteriorNode defines a common interface for FieldKeyNode
implementations which are also an InteriorNode.-
Method Summary
Modifier and TypeMethodDescriptionintcompareKeyField(Field k, int keyIndex) Performs a fast in-place key comparison of the specified key value with a key stored within this node at the specified keyIndex.voiddelete()Delete this node and all child nodes.intint[]Return all buffer IDs for those buffers which are children of this buffer.intgetKeyField(int index) Get the key value at a specific index.intgetKeyIndex(Field key) Perform a binary search to locate the specified key and derive an index into the Buffer ID storage.db.FieldKeyRecordNodegetLeafNode(Field key) Get the leaf node which contains the specified key.db.FieldKeyRecordNodeGet the left-most leaf node within the tree.db.FieldKeyRecordNodeGet the right-most leaf node within the tree.booleanisConsistent(String tableName, TaskMonitor monitor) Check the consistency of this node and all of its children.voidkeyChanged(Field oldKey, Field newKey, db.FieldKeyNode childNode) Callback method for when a child node's leftmost key changes.voidsetKeyCount(int cnt) Set the number of keys contained within this node.
-
Method Details
-
keyChanged
Callback method for when a child node's leftmost key changes.- Parameters:
oldKey- previous leftmost key.newKey- new leftmost key.childNode- child node containing oldKey (null if not a VarKeyNode)- Throws:
IOException- if IO error occurs
-
getBufferId
int getBufferId()- Returns:
- the data buffer ID associated with this node.
-
getBuffer
DataBuffer getBuffer()- Returns:
- the data buffer associated with this node.
-
getKeyCount
int getKeyCount()- Returns:
- the number of keys contained within this node.
-
setKeyCount
void setKeyCount(int cnt) Set the number of keys contained within this node.- Parameters:
cnt- key count
-
getKeyField
Get the key value at a specific index.- Parameters:
index- key index- Returns:
- key value
- Throws:
IOException- thrown if an IO error occurs
-
getKeyIndex
Perform a binary search to locate the specified key and derive an index into the Buffer ID storage. This method is intended to find the insertion index or exact match for a child key. A negative value will be returned when an exact match is not found and may be transformed into an insertion index (insetIndex = -returnedIndex-1).- Parameters:
key- key to search for- Returns:
- int buffer ID index.
- Throws:
IOException- thrown if an IO error occurs
-
delete
Delete this node and all child nodes.- Throws:
IOException- thrown if IO error occurs
-
getBufferReferences
int[] getBufferReferences()Return all buffer IDs for those buffers which are children of this buffer.- Returns:
- array of buffer IDs
-
isConsistent
Check the consistency of this node and all of its children.- Parameters:
tableName- name of table containing this nodemonitor- task monitor- Returns:
- true if consistency check passed, else false
- Throws:
IOException- if IO error occurredCancelledException- if task cancelled
-
getParent
FieldKeyInteriorNode getParent()- Returns:
- the parent node or null if this is the root
-
getLeafNode
Get the leaf node which contains the specified key.- Parameters:
key- key value- Returns:
- leaf node
- Throws:
IOException- thrown if an IO error occurs
-
getLeftmostLeafNode
Get the left-most leaf node within the tree.- Returns:
- left-most leaf node.
- Throws:
IOException- thrown if IO error occurs
-
getRightmostLeafNode
Get the right-most leaf node within the tree.- Returns:
- right-most leaf node.
- Throws:
IOException- thrown if IO error occurs
-
compareKeyField
Performs a fast in-place key comparison of the specified key value with a key stored within this node at the specified keyIndex.- Parameters:
k- key value to be comparedkeyIndex- key index to another key within this node's buffer- Returns:
- comparison value, zero if equal, -1 if k has a value less than the store key, or +1 if k has a value greater than the stored key located at keyIndex.
-