Package db
Interface FieldKeyInteriorNode
- All Superinterfaces:
InteriorNode
FieldKeyInteriorNode
defines a common interface for FieldKeyNode
implementations which are also an InteriorNode
.-
Method Summary
Modifier and TypeMethodDescriptionint
compareKeyField
(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.void
delete()
Delete this node and all child nodes.int
int[]
Return all buffer IDs for those buffers which are children of this buffer.int
getKeyField
(int index) Get the key value at a specific index.int
getKeyIndex
(Field key) Perform a binary search to locate the specified key and derive an index into the Buffer ID storage.db.FieldKeyRecordNode
getLeafNode
(Field key) Get the leaf node which contains the specified key.db.FieldKeyRecordNode
Get the left-most leaf node within the tree.db.FieldKeyRecordNode
Get the right-most leaf node within the tree.boolean
isConsistent
(String tableName, TaskMonitor monitor) Check the consistency of this node and all of its children.void
keyChanged
(Field oldKey, Field newKey, db.FieldKeyNode childNode) Callback method for when a child node's leftmost key changes.void
setKeyCount
(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.
-