Package db

Interface FieldKeyInteriorNode

All Superinterfaces:
InteriorNode

public interface FieldKeyInteriorNode extends InteriorNode
FieldKeyInteriorNode defines a common interface for FieldKeyNode implementations which are also an InteriorNode.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    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 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
    Perform a binary search to locate the specified key and derive an index into the Buffer ID storage.
    db.FieldKeyRecordNode
    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

      void keyChanged(Field oldKey, Field newKey, db.FieldKeyNode childNode) throws IOException
      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

      Field getKeyField(int index) throws IOException
      Get the key value at a specific index.
      Parameters:
      index - key index
      Returns:
      key value
      Throws:
      IOException - thrown if an IO error occurs
    • getKeyIndex

      int getKeyIndex(Field key) throws IOException
      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

      void delete() throws IOException
      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

      boolean isConsistent(String tableName, TaskMonitor monitor) throws IOException, CancelledException
      Check the consistency of this node and all of its children.
      Parameters:
      tableName - name of table containing this node
      monitor - task monitor
      Returns:
      true if consistency check passed, else false
      Throws:
      IOException - if IO error occurred
      CancelledException - if task cancelled
    • getParent

      Returns:
      the parent node or null if this is the root
    • getLeafNode

      db.FieldKeyRecordNode getLeafNode(Field key) throws IOException
      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

      db.FieldKeyRecordNode getLeftmostLeafNode() throws IOException
      Get the left-most leaf node within the tree.
      Returns:
      left-most leaf node.
      Throws:
      IOException - thrown if IO error occurs
    • getRightmostLeafNode

      db.FieldKeyRecordNode getRightmostLeafNode() throws IOException
      Get the right-most leaf node within the tree.
      Returns:
      right-most leaf node.
      Throws:
      IOException - thrown if IO error occurs
    • compareKeyField

      int 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.
      Parameters:
      k - key value to be compared
      keyIndex - 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.