Small. Fast. Reliable.
Choose any three.
*** 268,274 ****
  in the order that the columns were declared.  The number
  of columns will match the table declaration that the
  xConnect or xCreate method made using the
! sqlite3_declare_vtab() call.  The implementation must set *pRowid to the id of the newly inserted row; this will become the value returned by the last_insert_rowid() function.
  
  Each call to xUpdate will fall into one of the following cases:
  
--- 268,276 ----
  in the order that the columns were declared.  The number
  of columns will match the table declaration that the
  xConnect or xCreate method made using the
! sqlite3_declare_vtab() call.
! 
! When doing an insert without a rowid (argc>1, argv[1]==NULL), the implementation must set *pRowid to the id of the newly inserted row; this will become the value returned by the last_insert_rowid() function.  Setting this value in all the other cases has no effect, and cannot be used to change the rowid of an existing row or if you don't like what was in argv[1].
  
  Each call to xUpdate will fall into one of the following cases: