* If a search token (on the right-hand side of the MATCH operator) in FTS4
begins with "^" then that token must be the first in its field of the
document. ** Potentially Incompatible Change **
* Added options SQLITE_DBSTATUS_CACHE_HIT and SQLITE_DBSTATUS_CACHE_MISS to the
sqlite3_db_status() interface.
* Removed support for SQLITE_ENABLE_STAT2, replacing it with the much more
capable SQLITE_ENABLE_STAT3 option.
* Enhancements to the sqlite3_analyzer utility program, including the --pageinfo
and --stats options and support for multiplexed databases.
* Enhance the sqlite3_data_count() interface so that it can be used to determine
if SQLITE_DONE has been seen on the prepared statement.
* Added the SQLITE_FCNTL_OVERWRITE file-control by which the SQLite core
indicates to the VFS that the current transaction will overwrite the entire
database file.
* Increase the default lookaside memory allocator allocation size from 100 to
128 bytes.
* Enhanced the query planner so that it can factor terms in and out of OR
expressions in the WHERE clause in an effort to find better indices.
* Added the SQLITE_DIRECT_OVERFLOW_READ compile-time option, causing overflow
pages to be read directly from the database file, bypassing the page cache.
* Remove limits on the magnitude of precision and width value in the format
specifiers of the sqlite3_mprintf() family of string rendering routines.
* Fix a bug that prevent ALTER TABLE ... RENAME from working on some virtual
tables in a database with a UTF16 encoding.
* Fix a bug in ASCII-to-float conversion that causes slow performance and
incorrect results when converting numbers with ridiculously large exponents.
* Fix a bug that causes incorrect results in aggregate queries that use
multiple aggregate functions whose arguments contain complicated expressions
that differ only in the case of string literals contained within those
expressions.
* Fix a bug that prevented the page_count and quick_check pragmas from working
correctly if their names were capitalized.
* Fix a bug that caused VACUUM to fail if the count_changes pragma was engaged.
* Fix a bug in virtual table implementation that causes a crash if an FTS4
table is dropped inside a transaction and a SAVEPOINT occurs afterwards.
* Orders of magnitude performance improvement for CREATE INDEX on very large
tables.
* Improved the windows VFS to better defend against interference from
anti-virus software.
* Improved query plan optimization when the DISTINCT keyword is present.
* Allow more system calls to be overridden in the unix VFS - to provide better
support for chromium sandboxes.
* Increase the default size of a lookahead cache line from 100 to 128 bytes.
* Enhancements to the test_quota.c module so that it can track preexisting
files.
* Bug fix: Virtual tables now handle IS NOT NULL constraints correctly.
* Bug fixes: Correctly handle nested correlated subqueries used with indices in
a WHERE clause.
* Fix a bug causing PRAGMA case_sensitive_like statements compiled using
sqlite3_prepare() to fail with an SQLITE_SCHEMA error.
Changes 3.7.7:
* Add support for URI filenames
* Add the sqlite3_vtab_config() interface in support of ON CONFLICT clauses
with virtual tables.
* Add the xSavepoint, xRelease and xRollbackTo methods in virtual tables in
support of SAVEPOINT for virtual tables.
* Update the built-in FTS3/FTS4 and RTREE virtual tables to support ON CONFLICT
clauses and REPLACE.
* Avoid unnecessary reparsing of the database schema.
* Added support for the FTS4 prefix option and the FTS4 order option.
* Allow WAL-mode databases to be opened read-only as long as there is an
existing read/write connection.
* Added support for short filenames.
* Fix a problem with WAL mode which could cause transactions to silently
rollback if the cache_size is set very small (less than 10) and SQLite comes
under memory pressure.
* Fix a bug in 3.7.6 that only appears if the SQLITE_FCNTL_SIZE_HINT file
control is used with a build of SQLite that makes use of the
HAVE_POSIX_FALLOCATE compile-time option and which has
SQLITE_ENABLE_LOCKING_MODE turned off.
* Added the sqlite3_wal_checkpoint_v2() interface and enhanced the
wal_checkpoint pragma to support blocking checkpoints.
* Improvements to the query planner so that it makes better estimates of plan
costs and hence does a better job of choosing the right plan, especially when
SQLITE_ENABLE_STAT2 is used.
* Fix a bug which prevented deferred foreign key constraints from being
enforced when sqlite3_finalize() was not called by one statement with a
failed foreign key constraint prior to another statement with foreign key
constraints running.
* Integer arithmetic operations that would have resulted in overflow are now
performed using floating-point instead.
* Increased the version number on the VFS object to 3 and added new methods
xSetSysCall, xGetSysCall, and xNextSysCall used for doing full-coverage
testing.
* Increase the maximum value of SQLITE_MAX_ATTACHED from 30 to 62 (though the
default value remains at 10).
* Enhancements to FTS4:
- Added the fts4aux table
- Added support for compressed FTS4 content
* Enhance the ANALYZE command to support the name of an index as its argument,
in order to analyze just that one index.
* Added the "unix-excl" built-in VFS on unix and unix-like platforms.
* Added the sqlite3_vsnprintf() interface.
* Added the SQLITE_DBSTATUS_LOOKASIDE_HIT, SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE,
and SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL options for the sqlite3_db_status()
interface.
* Added the SQLITE_OMIT_AUTORESET compile-time option.
* Added the SQLITE_DEFAULT_FOREIGN_KEYS compile-time option.
* Updates to sqlite3_stmt_readonly() so that its result is well-defined for all
prepared statements and so that it works with VACUUM.
* Added the "-heap" option to the command-line shell
* Fix a bug involving frequent changes in and out of WAL mode and VACUUM that
could (in theory) cause database corruption.
* Enhance the sqlite3_trace() mechanism so that nested SQL statements such as
might be generated by virtual tables are shown but are shown in comments and
without parameter expansion. This greatly improves tracing output when using
the FTS3/4 and/or RTREE virtual tables.
* Change the xFileControl() methods on all built-in VFSes to return
SQLITE_NOTFOUND instead of SQLITE_ERROR for an unrecognized operation code.
* The SQLite core invokes the SQLITE_FCNTL_SYNC_OMITTED file control to the VFS
in place of a call to xSync if the database has PRAGMA synchronous set to OFF.
* Added the sqlite3_blob_reopen() interface to allow an existing sqlite3_blob
object to be rebound to a new row.
* Use the new sqlite3_blob_reopen() interface to improve the performance of FTS.
* VFSes that do not support shared memory are allowed to access WAL databases
if PRAGMA locking_mode is set to EXCLUSIVE.
* Enhancements to EXPLAIN QUERY PLAN.
* Added the sqlite3_stmt_readonly() interface.
* Added PRAGMA checkpoint_fullfsync.
* Added the SQLITE_FCNTL_FILE_POINTER option to sqlite3_file_control().
* Added support for FTS4 and enhancements to the FTS matchinfo() function.
* Added the test_superlock.c module which provides example code for obtaining
an exclusive lock to a rollback or WAL database.
* Added the test_multiplex.c module which provides an example VFS that provides
multiplexing (sharding) of a DB, splitting it over multiple files of fixed
size.
* A very obscure bug associated with the or optimization was fixed.
* Added the sqlite3_create_function_v2() interface that includes a destructor
callback.
* Added support for custom r-tree queries using application-supplied callback
routines to define the boundary of the query region.
* The default page cache strives more diligently to avoid using memory beyond
what is allocated to it by SQLITE_CONFIG_PAGECACHE. Or if using page cache
is allocating from the heap, it strives to avoid going over the
sqlite3_soft_heap_limit64(), even if SQLITE_ENABLE_MEMORY_MANAGEMENT is not
set.
* Added the sqlite3_soft_heap_limit64() interface as a replacement for
sqlite3_soft_heap_limit().
* The ANALYZE command now gathers statistics on tables even if they have no
indices.
* Tweaks to the query planner to help it do a better job of finding the most
efficient query plan for each query.
* Enhanced the internal text-to-numeric conversion routines so that they work
with UTF8 or UTF16, thereby avoiding some UTF16-to-UTF8 text conversions.
* Fix a problem that was causing excess memory usage with large WAL
transactions in win32 systems.
* The interface between the VDBE and B-Tree layer is enhanced such that the
VDBE provides hints to the B-Tree layer letting the B-Tree layer know when it
is safe to use hashing instead of B-Trees for transient tables.
* Miscellaneous documentation enhancements.
* Fix an old and very obscure bug that can lead to corruption of the database
free-page list when incremental_vacuum is used.
Changes 3.7.1:
* Added new commands SQLITE_DBSTATUS_SCHEMA_USED and SQLITE_DBSTATUS_STMT_USED
to the sqlite3_db_status() interface, in order to report out the amount of
memory used to hold the schema and prepared statements of a connection.
* Increase the maximum size of a database pages from 32KiB to 64KiB.
* Use the LIKE optimization even if the right-hand side string contains no
wildcards.
* Added the SQLITE_FCNTL_CHUNK_SIZE verb to the sqlite3_file_control()
interface for both unix and windows, to cause database files to grow in
large chunks in order to reduce disk fragmentation.
* Fixed a bug in the query planner that caused performance regresssions
relative to 3.6.23.1 on some complex joins.
* Fixed a typo in the OS/2 backend.
* Refactored the pager module.
* The SQLITE_MAX_PAGE_SIZE compile-time option is now silently ignored.
The maximum page size is hard-coded at 65536 bytes.
* Fix a potential database corruption problem that can result if the same
database file is alternately written by version 3.7.0 and 3.6.23.1.
* Fix a possible performance regression caused by the introduction of automatic
indexing.
* Added support for write-ahead logging.
* Query planner enhancement - automatic transient indices are created when
doing so reduces the estimated query time.
* Query planner enhancement - the ORDER BY becomes a no-op if the query also
contains a GROUP BY clause that forces the correct output order.
* Add the SQLITE_DBSTATUS_CACHE_USED verb for sqlite3_db_status().
* The logical database size is now stored in the database header so that bytes
can be appended to the end of the database file without corrupting it and so
that SQLite will work correctly on systems that lack support for ftruncate().
* Added the secure_delete pragma
* Added the sqlite3_compileoption_used() and sqlite3_compileoption_get()
interfaces as well as the compile_options pragma and the
sqlite_compileoption_used() and sqlite_compileoption_get() SQL functions.
* Added the sqlite3_log() interface together with the SQLITE_CONFIG_LOG verb
to sqlite3_config(). The ".log" command is added to the Command Line Interface
* Improvements to FTS3
* Improvements and bug-fixes in support for SQLITE_OMIT_FLOATING_POINT
* The integrity_check pragma is enhanced to detect out-of-order rowids
* The ".genfkey" operator has been removed from the Command Line Interface
* Updates to the co-hosted Lemon LALR(1) parser generator. (These updates did not affect SQLite.)
* Various minor bug fixes and performance enhancements
* Fix bugs that can (rarely) lead to incorrect query results when the CAST
or OR operators are used in the WHERE clause of a query.
* Continuing enhancements and improvements to FTS3.
* Other miscellanous bug fixes.
changes:
-SQL output resulting from sqlite3_trace() is now modified to include
the values of bound parameters
-Performance optimizations targetting a specific use case from a single
high-profile user
-FTS3 extension has undergone a major rework and cleanup
-fixed the SQLITE_SECURE_DELETE compile-time option
-Improvements to "dot-command" handling in the Command Line Interface
-Other minor bug fixes and documentation enhancements
way to build sqlite3 according to upstream.
It should give a small performance increase due to static inlining,
but more importantly lets us avoid manual maintenance of sqlite3.h.
Bump revisions for sqlite3 and sqlite3-tcl.
* Optimizer enhancement: prepared statements are automatically re-compiled when
a binding on the RHS of a LIKE operator changes or when any range constraint
changes under SQLITE_ENABLE_STAT2.
* Various minor bug fixes and documentation enhancements.
* Fix a bug in group_concat().
* Fix a performance bug in the pager cache.
* Fix a bug in the sqlite3_backup implementation that can lead to a corrupt
backup database.
the file lemon.c uses the same identifiers (B_TRUE, B_FALSE) as the
<sys/types.h> header, and therefore fails to build.
Changes since 3.4.2:
2007 Nov 05 (3.5.2)
* Dropped support for the SQLITE_OMIT_MEMORY_ALLOCATION compile-time
option.
* Always open files using FILE_FLAG_RANDOM_ACCESS under windows.
* The 3rd parameter of the built-in SUBSTR() function is now
optional.
* Bug fix: do not invoke the authorizer when reparsing the schema
after a schema change.
* Added the experimental malloc-free memory allocator in mem3.c.
* Virtual machine stores 64-bit integer and floating point constants
in binary instead of text for a performance boost.
* Fix a race condition in test_async.c.
* Added the ".timer" command to the CLI
2007 Oct 04 (3.5.1)
* Nota Bene: We are not using terms "alpha" or "beta" on this release
because the code is stable and because if we use those terms,
nobody will upgrade. However, we still reserve the right to make
incompatible changes to the new VFS interface in future releases.
* Fix a bug in the handling of SQLITE_FULL errors that could lead to
database corruption. [11]Ticket #2686.
* The test_async.c drive now does full file locking and works
correctly when used simultaneously by multiple processes on the
same database.
* The CLI ignores whitespace (including comments) at the end of lines
* Make sure the query optimizer checks dependences on all terms of a
compound SELECT statement. [12]Ticket #2640.
* Add demonstration code showing how to build a VFS for a raw mass
storage without a filesystem.
* Added an output buffer size parameter to the xGetTempname() method
of the VFS layer.
* Sticky SQLITE_FULL or SQLITE_IOERR errors in the pager are reset
when a new transaction is started.
2007 Sep 04 (3.5.0) alpha
* Redesign the OS interface layer. See [13]34to35.html for details.
*** Potentially incompatible change ***
* The [14]sqlite3_release_memory(), [15]sqlite3_soft_heap_limit(),
and [16]sqlite3_enable_shared_cache() interfaces now work cross all
threads in the process, not just the single thread in which they
are invoked. *** Potentially incompatible change ***
* Added the [17]sqlite3_open_v2() interface.
* Reimplemented the memory allocation subsystem and made it
replacable at compile-time.
* Created a new mutex subsystem and made it replacable at
compile-time.
* The same database connection may now be used simultaneously by
separate threads.
changes:
adds support for CHECK constraints, DESC indices, separate
REAL and INTEGER column affinities, a new OS interface layer design, and
many other changes
pkgsrc note:
a selftest fails on NetBSD/i386: a loss of precision is not detected in
the sum() function. Reason is that the code assumes that a "long double"
keeps more significant bits than a "long long int" which is not true here.
This is not a regression to 3.2.x which did just wrap on int overflows.
2005 March 29 (3.2.1)
* Fix a memory allocation error in the new ADD COLUMN comment.
* Documentation updates
2005 March 21 (3.2.0)
* Added support for ALTER TABLE ADD COLUMN.
* Added support for the "T" separator in ISO-8601 date/time strings.
* Improved support for Cygwin.
* Numerous bug fixes and documentation updates.
2005 March 16 (3.1.6)
* Fix a bug that could cause database corruption when inserting
record into tables with around 125 columns.
* sqlite3_step() is now much more likely to invoke the busy
handler and less likely to return SQLITE_BUSY.
* Fix memory leaks that used to occur after a malloc() failure.
2005 March 11 (3.1.5)
* The ioctl on OS-X to control syncing to disk is F_FULLFSYNC,
not F_FULLSYNC. The previous release had it wrong.
2005 March 10 (3.1.4)
* Fix a bug in autovacuum that could cause database corruption
if a CREATE UNIQUE INDEX fails because of a constraint violation.
This problem only occurs if the new autovacuum feature introduced
in version 3.1 is turned on.
* The F_FULLSYNC ioctl (currently only supported on OS-X) is
disabled if the synchronous pragma is set to something other
than "full".
* Add additional forward compatibility to the future version 3.2
database file format.
* Fix a bug in WHERE clauses of the form (rowid<'2')
* New SQLITE_OMIT_... compile-time options added
* Updates to the man page
* Remove the use of strcasecmp() from the shell
* Windows DLL exports symbols Tclsqlite_Init and Sqlite_Init
addition of the new sqlite3-tcl package. The TCL bindings can be easily
built and installed independently, so it's better to have an standalone
package rather than a build-time option.
While here, fix PKGCONFIG_OVERRIDE and bump PKGREVISION to 2.
2005 February 19 (3.1.3)
* Fix a problem with VACUUM on databases from which tables containing AUTOINCREMENT
have been dropped.
* Add forward compatibility to the future version 3.2 database file format.
* Documentation updates
2005 February 15 (3.1.2)
* Fix a bug that can lead to database corruption if there are two open connections
to the same database and one connection does a VACUUM and the second makes some
change to the database.
* Allow "?" parameters in the LIMIT clause.
* Fix VACUUM so that it works with AUTOINCREMENT.
* Fix a race condition in AUTOVACUUM that can lead to corrupt databases
* Add a numeric version number to the sqlite3.h include file.
* Other minor bug fixes and performance enhancements.
2005 February 1 (3.1.1 BETA)
* Automatic caching of prepared statements in the TCL interface
* ATTACH and DETACH as well as some other operations cause existing prepared
statements to expire.
* Numerious minor bug fixes
2005 January 21 (3.1.0 ALPHA)
* Autovacuum support added
* CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP added
* Support for the EXISTS clause added.
* Support for correlated subqueries added.
* Added the ESCAPE clause on the LIKE operator.
* Support for ALTER TABLE ... RENAME TABLE ... added
* AUTOINCREMENT keyword supported on INTEGER PRIMARY KEY
* Many SQLITE_OMIT_ macros inserts to omit features at compile-time and reduce the
library footprint.
* The REINDEX command was added.
* The engine no longer consults the main table if it can get all the information it
needs from an index.
* Many nuisance bugs fixed.
with sqlite version 2 (everything in this package ends in `3'). DESCR:
SQLite is a C library that implements an SQL database engine. Programs
that link with the SQLite library can have SQL database access without
running a separate RDBMS process. The distribution comes with a standalone
command-line access program (sqlite) that can be used to administer an
SQLite database and which serves as an example of how to use the SQLite
library.
SQLite is not a client library used to connect to a big database server.
SQLite is the server. The SQLite library reads and writes directly to and
from the database files on disk.