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

Reply via email to