Implementation * SQLite Virtual Table API allows the programmer to * create and iterate cursors * provide a list of indexes * allow sqlite to filter results or do it on the backend * With SQLite::VirtualTable, one writes a derived class providing : * CREATE - When the table is created or used, initialize a new object. * DECLARE_SQL - Called after CREATE to indicate the columns in the table. * OPEN - When a query is run, open a cursor. * BEST_INDEX - Given a set of constraints, choose the best index and estimate the cost. * FILTER - Given an index and bind parameters, filter the result set. * NEXT - Iterate one step. * COLUMN - Return the value for a column. * ROWID - Return a unique row id. * EOF - Indicates that there are no more rows. * CLOSE - Close a cursor. * DROP - Drop the virtual table. * DISCONNECT - Disconnect from the database.