Small. Fast. Reliable.
Choose any three.

## SQLite Release 3.5.8 On 2008-04-16

1. Expose SQLite's internal pseudo-random number generator (PRNG) via the sqlite3_randomness() interface
2. New interface sqlite3_context_db_handle() that returns the database connection handle that has invoked an application-defined SQL function.
3. New interface sqlite3_limit() allows size and length limits to be set on a per-connection basis and at run-time.
4. Improved crash-robustness: write the database page size into the rollback journal header.
5. Allow the VACUUM command to change the page size of a database file.
6. The xAccess() method of the VFS is allowed to return -1 to signal a memory allocation error.
7. Performance improvement: The OP_IdxDelete opcode uses unpacked records, obviating the need for one OP_MakeRecord opcode call for each index record deleted.
8. Performance improvement: Constant subexpressions are factored out of loops.
9. Performance improvement: Results of OP_Column are reused rather than issuing multiple OP_Column opcodes.
10. Fix a bug in the RTRIM collating sequence.
11. Fix a bug in the SQLITE_SECURE_DELETE option that was causing Firefox crashes. Make arrangements to always test SQLITE_SECURE_DELETE prior to each release.
12. Other miscellaneous performance enhancements.
13. Other miscellaneous minor bug fixes.

A complete list of SQLite releases in a single page and a chronology are both also available. A detailed history of every check-in is available at SQLite version control site.