I worked with SQLite FTS VIRTUAL TABLE query with matchinfo function and it worked perfectly. The query is like below:
SELECT
docid as _id,
KEY_NAME,
KEY_INDEX,
KEY_TEXT,
KEY_TRANS,
hex(matchinfo(FTS_VIRTUAL_TABLE)) AS KEY_OCCURRENCES
from FTS_VIRTUAL_TABLE
where KEY_TEXT MATCH '"\""+inputText+"\"*"+" ';
Now I have to implement matchinfo in same TABLE query with multiple SELECT statements. But it crashes the App. My code is below:
SELECT
docid as _id,
KEY_NAME,
KEY_INDEX,
KEY_TEXT,
KEY_TRANS,
from FTS_VIRTUAL_TABLE
where docid in (
SELECT
docid
hex(matchinfo(FTS_VIRTUAL_TABLE)) AS KEY_OCCURRENCES **//it does not work here also**
from FTS_VIRTUAL_TABLE
where KEY_TEXT MATCH '"\""+inputText+"\"*"+" '
union
SELECT
docid
hex(matchinfo(FTS_VIRTUAL_TABLE)) AS KEY_OCCURRENCES **//nor here**
from FTS_VIRTUAL_TABLE
where KEY_TRANS MATCH '"\""+inputText+"\"*"+" ');
The lines of codes commented in above code result in App Crash. Any help will be highly appreciated. Thanks!
Edit
The stack trace gives following error message
android.database.sqlite.SQLiteException: Only a single result allowed for a SELECT that is part of an Expression (code 1): , while compiling SELECT docid as _id, KEY_NAME, kEY_INDEX, KEY_TEXT, KEY_TRANS, from FTS_VIRTUAL_TABLE where docid in ( SELECT docid hex(matchinfo(FTS_VIRTUAL_TABLE)) AS KEY_OCCURRENCES from FTS_VIRTUAL_TABLE where KEY_TEXT MATCH '"\""+inputText+"\""+" ' union SELECT docid hex(matchinfo(FTS_VIRTUAL_TABLE)) AS KEY_OCCURRENCES from FTS_VIRTUAL_TABLE where KEY_TRANS MATCH '"\""+inputText+"\""+" ');