You asked on IRC about non-indexed selection criteria. For our
first release, we don't handle them at all. We return all rows and
the server does the filtering. The server is capable of passing
non-indexed conditions to the engines - NDB for one uses that - but
it really doesn't save very much for an in-process engine. At
some point, the work that Timour is doing may let the server pass
multiple indexed conditions to the server (e.g.
select order_amount from orders
where customer_id = 25 and order_date = '22 Oct 2008'
when both order_date and customer_id are indexed). When that
is possible, Falcon can use logically combine the bitmaps for
the two indexes and retrieve only rows where both conditions
But for now, all we do is lookups on a single index or return
the whole table.