Clemens Ladisch wrote:
4) The I have a query with both 'match ?' sub-clause and 'rowid=?'
sub-clause. It is not clear to me which variant will be used.
But according to definition of Full-text query it should use full-text
query at first. And then? Will it use index to rowid after full-text
query is performed?
SELECT docId FROM ftsTable WHERE ftsTable MATCH 'a*' AND rowId IN (20,21,
22, 23)
- anyway from the query plan it seems that no full-text query is
performed at all - or how to interpret it?:
SCAN TABLE ftsTable VIRTUAL TABLE INDEX 1:
EXECUTE LIST SUBQUERY 1
"INDEX 1" is the full-text search. The rowid values of the returned
rows are then compared (by SQLite, outside of FTS) against the list.
Ok, it would be what I expect. But according to my first two queries 1) and 2), it looks like a full-text index
is the *index 18*.
1) A*full-text query*
SELECT docId FROM ftsTableWHERE ftsTable MATCH 'a*'
- gets a following query plan:
SCAN TABLE ftsTable VIRTUAL TABLE*INDEX**18*:
2) A*query by rowid*
SELECT docId FROM ftsTable WHERE docid = 10
- gets a following query plan:
SCAN TABLE ftsTable VIRTUAL TABLE*INDEX 1*:
So maybe the query plan shows a wrong number? Or is the index number unrelated
to a full-text index?
I thought that INDEX 1 is an index to rowid, but maybe index numbers are
somehow fuzzy? :-).
Thanks,
Milan
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users