Small. Fast. Reliable.
Choose any three.
*** 7,12 ****
--- 7,18 ----
  {link: wiki?p=VirtualTableMethods other virtual table methods}
  prior to perusing the following text.
  
+ _: *Note* The xBestIndex method is called when a statement is being prepared
+ (ie before sqlite3_step() is ever called).  This also means that if you
+ call sqlite3_reset() on a statement then xBestIndex will not be called again.
+ Consequently if you reuse statements or cache them, the index information
+ originally returned is used and not later updated.
+ 
  The xBestIndex method has a prototype like this:
  
    int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*);