Nathan Kurz <[EMAIL PROTECTED]> wrote:
> 
> SELECT uid, match("complex", "function", vector) AS match FROM vectors 
>       ORDER BY match DESC LIMIT 20;

SELECT uid, mx FROM
  (SELECT uid, match(...) AS mx FROM vectors LIMIT -1)
ORDER BY mx DESC LIMIT 20;

The LIMIT -1 on the subquery is to fake out the optimizer and prevent
it from folding the subquery back into the main query, resulting in the
same statement you started with.  A "LIMIT -1" is effectively a no-op.
It does no limiting.  But subqueries that contain a limit will not be
folded into outer queries that also contain a limit.

> 
> And in case it bolsters my case, here's the EXPLAIN output I see:
> 
> sqlite> EXPLAIN SELECT uid, match("complex", "function", vector) AS match    
>    ...> FROM vectors ORDER BY match DESC LIMIT 20;

Hint:  The output of EXPLAIN is much easier to read if you do ".explain"
first to set up the output formatting.

--
D. Richard Hipp <[EMAIL PROTECTED]>

Reply via email to