Die Funktion
        index_read()
        wird verwendet, um eine Zeile anhand eines Schlüssels
        abzufragen:
      
int ha_foo::index_read(byte * buf, const byte * key, uint key_len, enum ha_rkey_function find_flag)
        Der Parameter *buf ist ein Byte-Array, in dem
        die Speicher-Engine die Zeile speichert, die zu dem
        Indexschlüssel *key gehört. Der Parameter
        key_len gibt bei Präfixvergleichen die
        Länge des Präfixes an und find_flag ist ein
        Enumerator, der das Suchverhalten bestimmt.
      
        Der zu verwendende Index wird vorher im Aufruf von
        index_init()
        festgelegt und dann in der Handler-Variablen
        active_index gespeichert.
      
        Folgende Werte sind für find_flag zulässig:
      
HA_READ_KEY_EXACT HA_READ_KEY_OR_NEXT HA_READ_PREFIX_LAST HA_READ_PREFIX_LAST_OR_PREV HA_READ_BEFORE_KEY HA_READ_AFTER_KEY HA_READ_KEY_OR_NEXT HA_READ_KEY_OR_PREV
        Speicher-Engines müssen den Parameter *key
        in ihr spezifisches Format konvertieren. Danach verwenden sie
        ihn, um anhand von find_flag die passende
        Zeile zu finden und im internen Zeilenformat von MySQL in
        *buf zu speichern. Weitere Informationen
        über das interne Zeilenformat finden Sie unter
        Abschnitt 15.9.6, „Implementierung der Funktion rnd_next()“.
      
Die Speicher-Engine muss nicht nur die passende Zeile zurückgeben, sondern auch einen Cursor setzen, um sequenzielle Index-Reads zu unterstützen.
        Ist der Parameter *key null, liest die
        Speicher-Engine den ersten Schlüssel im Index.
      
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

