OpenTenBase / OpenTenBase/TXSQL
Bug:CHECK INDEX assert failure on tables with FULLTEXT index
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
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Ö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