Interface IndexImplementation


public interface IndexImplementation
Ein SpaltenIndex innerhalb eines AbstractIndex, hiermit kann über eine Spalte der kleinste oder größte Wert bestimmt werden, wenn der Index über diese Spalte sortiert abgespeichert ist.
  • Method Summary

    Modifier and Type
    Method
    Description
    long
    findEntryIndex(long searchValue, byte[] tmp)
    Findet den Element-Index des Eintrags zu einem Wert in diesem Index
    Die von diesem Objekt indexierte Spalte
    query(LongRange inputRange)
    Fragt die Indizes (Zeilennummern) eines Wertebereichs ab.
  • Method Details

    • query

      @Nullable LongRange query(LongRange inputRange) throws IOException
      Fragt die Indizes (Zeilennummern) eines Wertebereichs ab. Falls die Spalte, die dieser Index implementiert bspw. Datenzeitwerte enthält, wird query(new LongRange(1000, 2000)) den Zeilenbereich (bspw 12...45) zurückliefern, in denen die Werte in diesem Bereich stehen. In dem Fall könnte z. B. Zeile 12 den Wert 999 enthalten (wenn Zeile 13 den Wert 1002 enthält) und Zeile 45 den Wert 1985 (wenn Zeile 46 den Wert 2002 enthält).

      Das Verhalten entspricht hierbei Archivanfragen, d. h. der erste Datensatz vor Intervallanfang wird ebenfalls mit zurückgegeben, wenn auf dem Intervallanfang kein Datensatz liegt.

      Parameters:
      inputRange - Wertebereich
      Returns:
      Zeilenbereich oder null
      Throws:
      IOException - IO-Fehler beim Lesen des Index
    • findEntryIndex

      long findEntryIndex(long searchValue, byte[] tmp) throws IOException
      Findet den Element-Index des Eintrags zu einem Wert in diesem Index
      Parameters:
      searchValue - Zu suchender Wert
      tmp - Byte-Array zum ablegen von temporären Daten. (Mindestgröße: eine Index-Zeile)
      Returns:
      Der Index (Zeilennummer) an dem dieser Wert vorkommt.
      • Falls der Wert mehrmals vorkommt (bei nicht streng monoton ansteigenden Werten) wird eine beliebige passende Zeilennummer zurückgegeben.
      • Kommt der Wert nicht direkt vor, wird analog zu Arrays.binarySearch(int[], int) die Zahl (-(<i>Einfügeposition</i>) - 1) zurückgegeben, wobei Einfügeposition die ist, an der der Eintrag "fehlt" und eingefügt werden sollte, falls das beabsichtigt ist.
      Throws:
      IOException
    • getColumn

      Die von diesem Objekt indexierte Spalte
      Returns:
      Spalte