Nicolas Williams <[EMAIL PROTECTED]> wrote:
> On Mon, Jan 28, 2008 at 10:07:01AM +0100, Ralf Junker wrote:
> > Hello Bharath Booshan L,
> > 
> > >>select * from t where filepath regexp '/MyMovie(\.[^\.]+)*$';
> > >
> > >Will this query use index, if we had one, on filepath?
> > 
> > No. It will do a full table scan.
> 
> But it could, no?
> 
> I suppose that to make this generic so that users can replace the
> regexp, like, and glob functions would require some new interfaces.
> SQLite would have to be able to extract a constant prefix from the
> pattern in order to be able to use an idex in this case.
> 

Or, you could say:

   SELECT * FROM t
    WHERE filepath REGEXP '/MyMovie(\.[^\.]+)*$'
      AND filepath GLOB '/MyMovie.*'

The second GLOB term will do the indexing.  Then the
REGEXP is applied to the all the terms that the GLOB
matches to do a second layer of filtering.
--
D. Richard Hipp <[EMAIL PROTECTED]>


-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to