[yunqa.de] Re: DiSqlite FTS: how to query using MATCH and rowid?

  • From: Edwin Yip <edwin.yip@xxxxxxxxxxxxxxxxxx>
  • To: yunqa@xxxxxxxxxxxxx
  • Date: Wed, 3 Mar 2010 18:35:28 +0800

Hi Ralf,

I have further info regarding this issue - I found that with v1.6.1 changing
the 'and' operator to 'or' will cause the same error even adding the plus
sign, is this issue presenting in the latest version?

select * from myfts where (myfts MATCH 'one') *or* (+rowid=1);

Thank you.


On Thu, Feb 25, 2010 at 10:17 PM, Delphi Inspiration <delphi@xxxxxxxx>wrote:

> At 14:11 25.02.2010, Edwin Yip wrote:
>
> >I am using an old version of DISQLITE (V1.6.1).
>
> The latest DISQLite3 3.2.0 includes quite a number of FTS3 improvements and
> fixes. It no longer shows the problem you reported.
>
> >But I tried the example you provided with a new database created by
> SQLiteSpy 1.8.11 (which is the latest version according to your website) and
> executed the statements in it I got the same error.
>
> Confirmed. Please try the following query instead. It works fine with
> SQLiteSpy 1.8.11 and hopefully with DISQLite3 1.6.1 as well (note the added
> "+" sign in front of "rowid" which stops an overly aggressive query
> optimization):
>
>  select * from myfts where (myfts MATCH 'one') and (+rowid=1);
>                                                      ^
>                                 Add a "+" sign here ^
>
> Btw: I have just uploaded SQLiteSpy 1.8.12, featuring the current SQLite3
> 3.6.22.
>
> Ralf
>
> _______________________________________________
> Delphi Inspiration mailing list
> yunqa@xxxxxxxxxxxxx
> //www.freelists.org/list/yunqa
>
>
>
>


-- 
Best Regards,
Edwin Yip

Mind Mapping is as Effortless as Typing
http://www.InnovationGear.com

Other related posts: