I am creating an FTS4 external content table in SQLite like this:
CREATE TABLE t2(id INTEGER PRIMARY KEY, col_a, col_b, col_text);
CREATE VIRTUAL TABLE fts_table USING fts4(content="t2", col_text);
I'm using an external content table so that I don't need to store duplicate values of col_text
in fts_table
. I'm only indexing col_text
because col_a
and col_b
don't need to be indexed.
However, when I do a query of fts_table
like this
SELECT * FROM fts_table WHERE fts_table MATCH 'something';
I don't have access to col_a
and col_b
from the content table t2
. How do return all these columns (col_a
, col_b
, col_text
) from a single FTS query?
Update
I tried using the notindexed=column_name
option as in
CREATE VIRTUAL TABLE fts_table USING fts4(content="t2", col_a, col_b, col_text, notindexed=col_a, notindexed=col_b);
This should work for some people, but I am using it in Android and the notindexed
option isn't supported until SQLite 3.8, which Android doesn't support until Android version 5.x. And I need to support android 4.x. I am updating this question to include the Android tag.