L'indicizzazione automatica è stata introdotta in sqlite 3.7.17. Una versione di sqlite con questa funzionalità è stata inclusa solo nell'anteprima per sviluppatori di Android L. Questo è il motivo per cui ricevi il messaggio solo su Lollipop ma non prima. Anche se viene registrato come errore, in realtà è solo un messaggio.
Fondamentalmente, l'indicizzazione automatica entra in gioco quando esegui ricerche su colonne non indicizzate. sqlite presuppone che ci siano così tanti dati che la generazione di un indice temporaneo è più economica della ricerca grezza.
Prendi in considerazione l'aggiunta di indici permanenti espliciti per le colonne di ricerca con CREATE INDEX
. Ad esempio, dopo il tuo CREATE TABLE
:
CREATE INDEX indexname ON tablename(columnname);
dove puoi scegliere tablename(columnname)
dai messaggi autoindex prodotti da sqlite.
Se desideri ripristinare il vecchio comportamento, puoi disabilitare l'indicizzazione automatica con
PRAGMA automatic_index=off;