Very simple to replicate:
CREATE VIRTUAL TABLE fts_table USING fts2(text); INSERT OR REPLACE INTO fts_table (rowid, text) VALUES (1, 'text1'); INSERT OR REAPLCE INTO fts_table (rowid, text) VALUES (1, 'text2'); The first insert succeeds, the second fails. Is FTS not supposed to support REPLACE, or is this a bug? -PQ