OpenTenBase / OpenTenBase/TXSQL
Bug:CHECK INDEX assert failure on tables with FULLTEXT index
Nessuno ha ancora preso questa issue.
- Lingua principale
- C++
- Stelle
- 337
- Fork
- 234
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
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.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Parti dall’entry point ha_innobase::check_index() e confronta la gestione di DICT_FTS con quella di FTS_DOC_ID_INDEX nascosto. Riproduci i comandi CREATE TABLE e CHECK INDEX forniti, quindi verifica che il comando non generi più un’assertion ed emetta un avviso per l’indice ignorato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cpp, mysql
- Ambito
- databases
- Tipo di issue
- Bug
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Tranquilla
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 75/100