Small. Fast. Reliable.
Choose any three.

This information is obsolete. You are looking at the CVSTrac source management system display for SQLite that was replaced by Fossil on 2009-08-11. The information shown here has not been updated since that cut-over. These pages are retained for historical reference only.

Here is a list of things that the core SQLite developers want to work on in the near future. These items are in no particular order.

Verification

  1. Improved documentation to more precisely define exactly what SQLite is suppose to do.
  2. Additional test cases to bring condition/decision coverage up to 100%.
  3. Separate independently developed test harnesses to suppliment the principal TCL test harness.
    • New test harnesses have no external dependencies and thus can run on embedded platforms.
    • New test harnesses use the published SQLite API only - no use of undocumented hooks to view or modify internal state.
    • Focus on requirements-based rather than structural testing.
  4. Devise new ways of stress testing SQLite. The fuzz testing added in May of 2007 is an example of this.
  5. Tracability between requirements and test cases.
  6. Use assert-like macros in code to prove boundary cases have been tested.
  7. Hard upper bounds on heap and stack memory utilization.
  8. Bring FTS3 up to the coding and testing standards of the SQLite core

Performance

  1. Take advantage of the new register-based VM design to generate tighter VM code.
    • Common subexpression elimination.
    • Constant folding
  2. Develop a new sort implementation that does much less disk seeking. Use to improve indexing performance on large tables.
  3. Take advantage of SQLITE_IOCAP_SAFE_APPEND on filesystems that support it
  4. Optional support for cross-platform asynchronous I/O.
  5. Fewer calls to malloc/free on multi-threaded platforms.

New Features

  1. SAVEPOINT and nested transactions
  2. Enforce foreign key constraints.
    • Omit support for deferred constraints
    • Omit support for CASCADE
  3. R-Tree support
  4. Additional built-in functions
  5. Support for additional locking styles
  6. Make limits run-time configurable on a per-connection basis.
  7. Allow VACUUM to change the page size of a database.
  8. Simplify the CREATE INDEX syntax to omit the need to specify the attached database when the table name is unambiguous.

Documentation

  1. Better documentation for newbies.
  2. Precise and detailed documentation of the SQLite file format.
  3. Detailed documentation of the virtual table interface
  4. Detailed documentation of the FTS3 module