OpenTenBase / OpenTenBase/TXSQL

Bug:CHECK INDEX assert failure on tables with FULLTEXT index

Offen Anfängerfreundlich
#57 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
C++
Sterne
337
Forks
234
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Problem

Running CHECK INDEX on an InnoDB table with a FULLTEXT index triggers an assert failure.

Root Cause

In ha_innobase::check_index(), the loop only skips indexes with DICT_FTS type flag, but does not skip the hidden FTS_DOC_ID_INDEX — a regular B-tree index created internally by InnoDB for FTS document ID lookups. When check_index tries to get physical info for this index, it asserts.

Reproduce

CREATE TABLE fts_test (
id bigint NOT NULL,
tran_time varchar(20) NOT NULL,
body text,
PRIMARY KEY (id, tran_time),
FULLTEXT KEY (tran_time, body)
) ENGINE=InnoDB;

CHECK INDEX FROM fts_test; -- assert failure

Fix

Skip FTS_DOC_ID_INDEX in the loop and emit a warning, same as done for DICT_FTS indexes.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginnen Sie am Einstiegspunkt ha_innobase::check_index() und vergleichen Sie die Behandlung von DICT_FTS mit dem verborgenen FTS_DOC_ID_INDEX. Führen Sie die bereitgestellten CREATE TABLE- und CHECK INDEX-Befehle aus und bestätigen Sie anschließend, dass der Befehl nicht mehr mit einer Assertion abbricht und eine Warnung für den übersprungenen Index ausgibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp, mysql
Bereich
databases
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Ruhig
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
75/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.