* 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.
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.
* Versioning of the SQLite source code has transitioned from CVS to Fossil.
* Query planner enhancements.
* The SQLITE_ENABLE_STAT2 compile-time option causes the ANALYZE command to
collect a small histogram of each index, to help SQLite better select among
competing range query indices.
* Recursive triggers can be enabled using the PRAGMA recursive_triggers
statement.
* Delete triggers fire when rows are removed due to a REPLACE conflict
resolution. This feature is only enabled when recursive triggers are enabled.
* Added the SQLITE_OPEN_SHAREDCACHE and SQLITE_OPEN_PRIVATECACHE flags for
sqlite3_open_v2() used to override the global shared cache mode settings for
individual database connections.
* Added improved version identification features: C-Preprocessor macro
SQLITE_SOURCE_ID, C/C++ interface sqlite3_sourceid(), and SQL function
sqlite_source_id().
* Obscure bug fix on triggers
2008 Feb 6 (3.5.6)
* Fix a bug ( ticket #2913) that prevented virtual tables from working
in a LEFT JOIN. The problem was introduced into shortly before the
3.5.5 release.
* Bring the OS/2 porting layer up-to-date.
* Add the new sqlite3_result_error_code() API and use it in the
implementation of ATTACH so that proper error codes are returned when
an ATTACH fails.
2008 Jan 31 (3.5.5)
* Convert the underlying virtual machine to be a register-based machine
rather than a stack-based machine. The only user-visible change is in
the output of EXPLAIN.
* Add the build-in RTRIM collating sequence.
2007 Dec 14 (3.5.4)
* Fix a critical bug in UPDATE or DELETE that occurs when an OR REPLACE
clause or a trigger causes rows in the same table to be deleted as
side effects. (See ticket #2832.) The most likely result of this bug
is a segmentation fault, though database corruption is a possibility.
* Bring the processing of ORDER BY into compliance with the SQL standard
for case where a result alias and a table column name are in conflict.
Correct behavior is to prefer the result alias. Older versions of
SQLite incorrectly picked the table column. (See ticket #2822.)
* The VACUUM command preserves the setting of the legacy_file_format
pragma. ( Ticket #2804.)
* Productize and officially support the group_concat() SQL function.
* Better optimization of some IN operator expressions.
* Add the ability to change the auto_vacuum status of a database by
setting the auto_vaccum pragma and VACUUMing the database.
* Prefix search in FTS3 is much more efficient.
* Relax the SQL statement length restriction in the CLI so that the
".dump" output of databases with very large BLOBs and strings can be
played back to recreate the database.
* Other small bug fixes and optimizations.
2007 Nov 27 (3.5.3)
* Move website and documentation files out of the source tree into a
separate CM system.
* Fix a long-standing bug in INSERT INTO ... SELECT ... statements where
the SELECT is compound.
* Fix a long-standing bug in RAISE(IGNORE) as used in BEFORE triggers.
* Fixed the operator precedence for the ~ operator.
* On win32, do not return an error when attempting to delete a file that
does not exist.
* Allow collating sequence names to be quoted.
* Modify the TCL interface to use sqlite3_prepare_v2().
* Fix multiple bugs that can occur following a malloc() failure.
* sqlite3_step() returns SQLITE_MISUSE instead of crashing when called
with a NULL parameter.
* FTS3 now uses the SQLite memory allocator exclusively. The FTS3
amalgamation can now be appended to the SQLite amalgamation to
generate a super-amalgamation containing both.
* The DISTINCT keyword now will sometimes use an INDEX if an appropriate
index is available and the optimizer thinks its use might be
advantageous.
changes:
-fixed bugs which can lead to database corruption under obscure and
difficult to reproduce circumstances
-new sqlite3_prepare_v2() API
-bug fixes in the command-line shell
-enhancements to the query optimizer
pkgsrc change: fix a selftest which couldn't work as intended due to
misuse of O_APPEND
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
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 September 24 (3.2.7)
* GROUP BY now considers NULLs to be equal again, as it should
* Now compiles on Solaris and OpenBSD and other Unix variants that lack the
fdatasync() function
* Now compiles on MSVC++6 again
* Fix uninitialized variables causing malfunctions for various obscure queries
* Correctly compute a LEFT OUTER JOINs that is constrained on the left table only
2005 September 17 (3.2.6)
* Fix a bug that can cause database corruption if a VACUUM (or autovacuum) fails
and is rolled back on a database that is larger than 1GiB
* LIKE optiization now works for columns with COLLATE NOCASE
* ORDER BY and GROUP BY now use bounded memory
* Added support for COUNT(DISTINCT expr)
* Change the way SUM() handles NULL values in order to comply with the SQL standard
* Use fdatasync() instead of fsync() where possible in order to speed up commits
slightly
* Use of the CROSS keyword in a join turns off the table reordering optimization
* Added the experimental and undocumented EXPLAIN QUERY PLAN capability
* Use the unicode API in windows
2005 August 27 (3.2.5)
* Fix a bug effecting DELETE and UPDATE statements that changed more than 40960
rows.
* Change the makefile so that it no longer requires GNUmake extensions
* Fix the --enable-threadsafe option on the configure script
* Fix a code generator bug that occurs when the left-hand side of an IN operator is
constant and the right-hand side is a SELECT statement
* The PRAGMA synchronous=off statement now disables syncing of the master journal
file in addition to the normal rollback journals
2005 August 24 (3.2.4)
* Fix a bug introduced in the previous release that can cause a segfault while
generating code for complex WHERE clauses.
* Allow floating point literals to begin or end with a decimal point.
2005 August 21 (3.2.3)
* Added support for the CAST operator
* Tcl interface allows BLOB values to be transferred to user-defined functions
* Added the "transaction" method to the Tcl interface
* Allow the DEFAULT value of a column to call functions that have constant operands
* Added the ANALYZE command for gathering statistics on indices and using those
statistics when picking an index in the optimizer
* Remove the limit (formerly 100) on the number of terms in the WHERE clause
* The right-hand side of the IN operator can now be a list of expressions instead
of just a list of constants
* Rework the optimizer so that it is able to make better use of indices
* The order of tables in a join is adjusted automatically to make better use of
indices
* The IN operator is now a candidate for optimization even if the left-hand side is
not the left-most term of the index. Multiple IN operators can be used with the
same index.
* WHERE clause expressions using BETWEEN and OR are now candidates for optimization
* Added the "case_sensitive_like" pragma and the SQLITE_CASE_SENSITIVE_LIKE
compile-time option to set its default value to "on".
* Use indices to help with GLOB expressions and LIKE expressions too when the
case_sensitive_like pragma is enabled
* Added support for grave-accent quoting for compatibility with MySQL
* Improved test coverage
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.
This package provides the TCL bindings for the SQLite C library.