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.