*** DRAFT ***
SQLite Release 3.3.14 On 2007-04-02
- Fix a bug (ticket #2273)
that could cause a segfault when the IN operator
is used one term of a two-column index and the right-hand side of
the IN operator contains a NULL.
- Added a new OS interface method for determining the sector size
of underlying media: sqlite3OsSectorSize().
- A new algorithm for statements of the form
INSERT INTO table1 SELECT * FROM table2
is faster and reduces fragmentation. VACUUM uses statements of
this form and thus runs faster and defragments better.
- Performance enhancements through reductions in disk I/O:
- Do not read the last page of an overflow chain when
deleting the row - just add that page to the freelist.
- Do not store pages being deleted in the
rollback journal.
- Do not read in the (meaningless) content of
pages extracted from the freelist.
- Do not flush the page cache (and thus avoiding
a cache refill) unless another process changes the underlying
database file.
- Truncate rather than delete the rollback journal when committing
a transaction in exclusive access mode, or when committing the TEMP
database.
- Added support for exclusive access mode using
"PRAGMA locking_mode=EXCLUSIVE"
- Use heap space instead of stack space for large buffers in the
pager - useful on embedded platforms with stack-space
limitations.
- Add a makefile target "sqlite3.c" that builds an amalgamation containing
the core SQLite library C code in a single file.
- Get the library working correctly when compiled
with GCC option "-fstrict-aliasing".
- Removed the vestigal SQLITE_PROTOCOL error.
- Improvements to test coverage, other minor bugs fixed,
memory leaks plugged,
code refactored and/or recommended in places for easier reading.
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.
*** DRAFT ***