1831 lines
115 KiB
HTML
1831 lines
115 KiB
HTML
<!DOCTYPE html>
|
|
<html><head>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|
<link href="sqlite.css" rel="stylesheet">
|
|
<title>SQLite Older News</title>
|
|
<!-- path= -->
|
|
</head>
|
|
<body>
|
|
<div class=nosearch>
|
|
<a href="index.html">
|
|
<img class="logo" src="images/sqlite370_banner.gif" alt="SQLite" border="0">
|
|
</a>
|
|
<div><!-- IE hack to prevent disappearing logo --></div>
|
|
<div class="tagline desktoponly">
|
|
Small. Fast. Reliable.<br>Choose any three.
|
|
</div>
|
|
<div class="menu mainmenu">
|
|
<ul>
|
|
<li><a href="index.html">Home</a>
|
|
<li class='mobileonly'><a href="javascript:void(0)" onclick='toggle_div("submenu")'>Menu</a>
|
|
<li class='wideonly'><a href='about.html'>About</a>
|
|
<li class='desktoponly'><a href="docs.html">Documentation</a>
|
|
<li class='desktoponly'><a href="download.html">Download</a>
|
|
<li class='wideonly'><a href='copyright.html'>License</a>
|
|
<li class='desktoponly'><a href="support.html">Support</a>
|
|
<li class='desktoponly'><a href="prosupport.html">Purchase</a>
|
|
<li class='search' id='search_menubutton'>
|
|
<a href="javascript:void(0)" onclick='toggle_search()'>Search</a>
|
|
</ul>
|
|
</div>
|
|
<div class="menu submenu" id="submenu">
|
|
<ul>
|
|
<li><a href='about.html'>About</a>
|
|
<li><a href='docs.html'>Documentation</a>
|
|
<li><a href='download.html'>Download</a>
|
|
<li><a href='support.html'>Support</a>
|
|
<li><a href='prosupport.html'>Purchase</a>
|
|
</ul>
|
|
</div>
|
|
<div class="searchmenu" id="searchmenu">
|
|
<form method="GET" action="search">
|
|
<select name="s" id="searchtype">
|
|
<option value="d">Search Documentation</option>
|
|
<option value="c">Search Changelog</option>
|
|
</select>
|
|
<input type="text" name="q" id="searchbox" value="">
|
|
<input type="submit" value="Go">
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
function toggle_div(nm) {
|
|
var w = document.getElementById(nm);
|
|
if( w.style.display=="block" ){
|
|
w.style.display = "none";
|
|
}else{
|
|
w.style.display = "block";
|
|
}
|
|
}
|
|
function toggle_search() {
|
|
var w = document.getElementById("searchmenu");
|
|
if( w.style.display=="block" ){
|
|
w.style.display = "none";
|
|
} else {
|
|
w.style.display = "block";
|
|
setTimeout(function(){
|
|
document.getElementById("searchbox").focus()
|
|
}, 30);
|
|
}
|
|
}
|
|
function div_off(nm){document.getElementById(nm).style.display="none";}
|
|
window.onbeforeunload = function(e){div_off("submenu");}
|
|
/* Disable the Search feature if we are not operating from CGI, since */
|
|
/* Search is accomplished using CGI and will not work without it. */
|
|
if( !location.origin || !location.origin.match || !location.origin.match(/http/) ){
|
|
document.getElementById("search_menubutton").style.display = "none";
|
|
}
|
|
/* Used by the Hide/Show button beside syntax diagrams, to toggle the */
|
|
function hideorshow(btn,obj){
|
|
var x = document.getElementById(obj);
|
|
var b = document.getElementById(btn);
|
|
if( x.style.display!='none' ){
|
|
x.style.display = 'none';
|
|
b.innerHTML='show';
|
|
}else{
|
|
x.style.display = '';
|
|
b.innerHTML='hide';
|
|
}
|
|
return false;
|
|
}
|
|
</script>
|
|
</div>
|
|
<?xml version="1.0" encoding="Windows-1252"?>
|
|
|
|
|
|
<a name="2015_11_02"></a><h3>2015-11-02 - Release 3.9.2</h3><blockquote>
|
|
<p>SQLite <a href="releaselog/3_9_2.html">version 3.9.2</a> is a patch release fixing two obscure bugs.
|
|
(Details: <a href="https://www.sqlite.org/src/tktview?name=8a2adec166">(1)</a>,
|
|
<a href="https://www.sqlite.org/src/tktview?name=ac661962a2">(2)</a>).
|
|
Upgrade only if you are having problems.
|
|
</blockquote><hr width="50%"><a name="2015_10_16"></a><h3>2015-10-16 - Release 3.9.1</h3><blockquote>
|
|
<p>SQLite <a href="releaselog/3_9_1.html">version 3.9.1</a> is a
|
|
<a href="https://www.sqlite.org/src/vpatch?from=version-3.9.0&to=version-3.9.1">small patch</a>
|
|
to <a href="releaselog/3_9_0.html">version 3.9.0</a> that includes
|
|
a few simple build script and #ifdef tweaks to make the code easier to
|
|
compile on a wider variety of platform. There are no functional changes,
|
|
except for a single
|
|
<a href="https://www.sqlite.org/src/info/57eec374ae1d0a1d4a">minor bug-fix</a> in
|
|
<a href="json1.html">the json1 extension</a> to stop it from recognizing form-feed
|
|
(ASCII 0x0c) as a whitespace character, in conformance with
|
|
<a href="http://www.rfc-editor.org/rfc/rfc7159.txt">RFC7159</a>.
|
|
</blockquote><hr width="50%"><a name="2015_10_14"></a><h3>2015-10-14 - Release 3.9.0</h3><blockquote>
|
|
<p>SQLite version 3.9.0 is a regularly schedule maintenance release.
|
|
Key changes include:
|
|
<ul>
|
|
<li>Begin using <a href="http://semver.org/">semantic versioning</a>.
|
|
<li><a href="json1.html">JSON SQL functions</a>
|
|
<li>The <a href="fts5.html">FTS5</a> full-text search engine
|
|
<li>Support for <a href="expridx.html">indexes on expressions</a>
|
|
<li>Support for <a href="vtab.html#tabfunc2">table-valued functions</a>
|
|
</ul>
|
|
See the <a href="releaselog/3_9_0.html">change log</a> for a long and more complete list
|
|
of changes.
|
|
</blockquote><hr width="50%"><a name="2015_07_29"></a><h3>2015-07-29 - Release 3.8.11.1</h3><blockquote>
|
|
<p>SQLite version 3.8.11.1 is a patch release that fixes two arcane
|
|
issues that were reported shortly after 3.8.11 was released. Upgrade
|
|
from 3.8.11 only in the unlikely event that one of these obscure
|
|
issues affect your code.
|
|
</blockquote><hr width="50%"><a name="2015_07_27"></a><h3>2015-07-27 - Release 3.8.11</h3><blockquote>
|
|
<p>SQLite version 3.8.11 is a regularly scheduled maintenance release.
|
|
See the <a href="releaselog/3_8_11.html">change log</a> for details.
|
|
</blockquote><hr width="50%"><a name="2015_05_20"></a><h3>2015-05-20 - Release 3.8.10.2</h3><blockquote>
|
|
<p>Yikes! Index corruption after a sequence of valid SQL statements!
|
|
<p>It has been many years since anything like
|
|
<a href="https://www.sqlite.org/src/info/34cd55d6">this bug</a> has snuck into
|
|
an official SQLite release. But for the pasts seven months
|
|
(<a href="releaselog/3_8_7.html">version 3.8.7</a> through <a href="releaselog/3_8_10_1.html">version 3.8.10.1</a>)
|
|
if you do an INSERT into a carefully
|
|
crafted schema in which there are two nested triggers that convert
|
|
an index key value from TEXT to INTEGER and then back
|
|
to TEXT again, the INTEGER value might get inserted as the index
|
|
key instead of the correct TEXT, resulting in index corruption.
|
|
This patch release adds a single line of code to fix the problem.
|
|
<p>If you do actually encounter this problem, running <a href="lang_reindex.html">REINDEX</a> on the
|
|
damaged indexes will clear it.
|
|
</blockquote><hr width="50%"><a name="2015_05_09"></a><h3>2015-05-09 - Release 3.8.10.1</h3><blockquote>
|
|
<p>The 3.8.10 release did not add the new <a href="compile.html#enable_dbstat_vtab">SQLITE_ENABLE_DBSTAT_VTAB</a>
|
|
compile-time option to the <a href="c3ref/compileoption_get.html">sqlite3_compileoption_used()</a> interface.
|
|
This patch release fixes that omission. And while we are at it,
|
|
the associated <a href="dbstat.html">dbstat virtual table</a> was enhanced slightly and a
|
|
harmless compiler warning was fixed.</p>
|
|
|
|
<p> <p>There is no reason to upgrade from version 3.8.10 unless you are
|
|
using the new <a href="compile.html#enable_dbstat_vtab">SQLITE_ENABLE_DBSTAT_VTAB</a> compile-time option.
|
|
</blockquote><hr width="50%"><a name="2015_05_07"></a><h3>2015-05-07 - Release 3.8.10</h3><blockquote>
|
|
<p>SQLite version 3.8.10 is a regularly scheduled maintenance release.
|
|
This release features performance improvements, fixes to several
|
|
arcane bugs found by the AFL fuzzer, the new "sqldiff.exe" command-line
|
|
utility, improvements to the documentation, and other enhancements.
|
|
See the <a href='releaselog/3_8_10.html'>release notes</a> for
|
|
additional information.
|
|
</blockquote><hr width="50%"><a name="2015_04_08"></a><h3>2015-04-08 - Release 3.8.9</h3><blockquote>
|
|
<p>SQLite version 3.8.9 is a regularly scheduled maintenance release.
|
|
New features in this release include the
|
|
<a href="pragma.html#pragma_index_xinfo">PRAGMA index_xinfo</a> command, the <a href="c3ref/status.html">sqlite3_status64()</a> interface,
|
|
and the ".dbinfo" command of the <a href="cli.html">command-line shell</a>.
|
|
See the <a href='releaselog/3_8_9.html'>release notes</a> for
|
|
additional information.
|
|
</blockquote><hr width="50%"><a name="2015_02_25"></a><h3>2015-02-25 - Release 3.8.8.3</h3><blockquote>
|
|
<p>The 3.8.8.3 patch release fixes an obscure problem in the SQLite code
|
|
generator that can cause incorrect results when the qualifying expression
|
|
of a <a href="partialindex.html">partial index</a> is used inside the ON clause of a LEFT JOIN.
|
|
This problem has been in the code since support for partial indexes
|
|
was first added in version 3.8.0. However, it is difficult to imagine
|
|
a valid reason to every put the qualifying constraint inside the ON
|
|
clause of a LEFT JOIN, and so this issue has never come up before.</p>
|
|
|
|
<p><p>Any applications that is vulnerable to this bug would have encountered
|
|
problems already. Hence, upgrading from the previous release is optional.
|
|
</blockquote><hr width="50%"><a name="2015_01_30"></a><h3>2015-01-30 - Release 3.8.8.2</h3><blockquote>
|
|
<p>The 3.8.8.2 patch release fixes a single minor problem: It ensures
|
|
that the <a href="c3ref/wal_checkpoint.html">sqlite3_wal_checkpoint(TRUNCATE)</a> operation will always truncate
|
|
the <a href="wal.html">write-ahead log</a> even if log had already been reset and contained
|
|
no new content. It is unclear if this is a bug fix or a new feature.</p>
|
|
|
|
<p><p>Something like this would normally go into the next regularly scheduled
|
|
release, but a prominent SQLite user needed the change in a hurry so
|
|
we were happy to rush it out via this patch.</p>
|
|
|
|
<p><p>There is no reason to upgrade unless you actually need the enhanced
|
|
behavior of <a href="c3ref/wal_checkpoint.html">sqlite3_wal_checkpoint(TRUNCATE)</a>.
|
|
</blockquote><hr width="50%"><a name="2015_01_20"></a><h3>2015-01-20 - Release 3.8.8.1</h3><blockquote>
|
|
<p>Within hours of releasing version 3.8.8, a bug was reported against
|
|
the 10-month-old 3.8.4 release. As that bug exists in all subsequent
|
|
releases, the decision was made to issue a small patch to the
|
|
3.8.8 before it came into widespread use.</p>
|
|
|
|
<p><p>See ticket
|
|
<a href="https://www.sqlite.org/src/info/f97c4637102a3ae72b7911">f97c4637102a3ae72b7911</a>
|
|
for a description of the bug.</p>
|
|
|
|
<p><p>The changes between versions 3.8.8 and 3.8.8.1 are minimal.
|
|
</blockquote><hr width="50%"><a name="2015_01_16"></a><h3>2015-01-16 - Release 3.8.8</h3><blockquote>
|
|
<p>SQLite <a href="releaselog/3_8_8.html">version 3.8.8</a> is a regularly schedule maintenance release of
|
|
SQLite.</p>
|
|
|
|
<p><p>There are no dramatic new features or performance enhancements in this
|
|
release, merely incremental improvements. Most of the performance gain
|
|
in this release comes from refactoring the B-Tree rebalancing logic to
|
|
avoid unnecessary memcpy() operations. New features include the
|
|
<a href="pragma.html#pragma_data_version">PRAGMA data_version</a> statement and the ability to accept a
|
|
<a href="lang_select.html#values">VALUES clause</a> with no arbitrary limit on the number of rows.
|
|
Several obscure bugs have been fixed, including some multithreading
|
|
races and a work-around for a compiler bug on some Macs.</p>
|
|
|
|
<p><p>See the <a href="releaselog/3_8_8.html">change log</a> for a longer list of
|
|
enhancements and bug fixes.
|
|
</blockquote><hr width="50%"><a name="2014_12_09"></a><h3>2014-12-09 - Release 3.8.7.4</h3><blockquote>
|
|
<p>SQLite <a href="releaselog/3_8_7_4.html">version 3.8.7.4</a> an unscheduled bug-fix release. Changes from
|
|
the previous release and from <a href="releaselog/3_8_7.html">version 3.8.7</a> are minimal.</p>
|
|
|
|
<p><p>This release fixes adds in a mutex that is required by the changes of
|
|
the 3.8.7.3 patch but was accidentally omitted. The mutex was not required
|
|
by any of the internal SQLite tests, but Firefox crashes without it.
|
|
Test cases have been added to ensure that mutex is never again missed.
|
|
</blockquote><hr width="50%"><a name="2014_12_06"></a><h3>2014-12-06 - Release 3.8.7.3</h3><blockquote>
|
|
<p>SQLite <a href="releaselog/3_8_7_3.html">version 3.8.7.3</a> an unscheduled bug-fix release. Changes from
|
|
the previous release and from <a href="releaselog/3_8_7.html">version 3.8.7</a> are minimal.</p>
|
|
|
|
<p><p>This release fixes two obscure bugs that can result in incorrect
|
|
query results and/or application crashes, but not (as far as we can
|
|
tell) security vulnerabilities. Both bugs have been latent in the
|
|
code across multiple prior releases and have never before been encountered,
|
|
so they are unlikely to cause problems. Nevertheless
|
|
it seems prudent to publish fixes for them both. See the
|
|
change log for details.
|
|
</blockquote><hr width="50%"><a name="2014_11_19"></a><h3>2014-11-19 - Release 3.8.7.2</h3><blockquote>
|
|
<p>SQLite <a href="releaselog/3_8_7_2.html">version 3.8.7.2</a> is a patch and bug-fix release. Changes from
|
|
the previous release are minimal.</p>
|
|
|
|
<p><p>The primary reason for this release is to enhance the <a href="lang_transaction.html">ROLLBACK</a> command
|
|
so that it allows running queries on the same database connection to
|
|
continue running as long as the ROLLBACK does not change the schema.
|
|
In all previous versions of SQLite, a ROLLBACK would cause pending
|
|
queries to stop immediately and return <a href="rescode.html#abort">SQLITE_ABORT</a> or
|
|
<a href="rescode.html#abort_rollback">SQLITE_ABORT_ROLLBACK</a>. Pending queries still abort if the ROLLBACK
|
|
changes the database schema, but as of this patch release, the queries
|
|
are allowed to continue running if the schema is unmodified.</p>
|
|
|
|
<p><p>In addition to the ROLLBACK enhancement, this patch release also
|
|
includes fixes for three obscure bugs. See the
|
|
<a href="releaselog/3_8_7_2.html">change log</a> for details.
|
|
</blockquote><hr width="50%"><a name="2014_10_30"></a><h3>2014-10-30 - Release 3.8.7.1</h3><blockquote>
|
|
<p>SQLite <a href="releaselog/3_8_7_1.html">version 3.8.7.1</a> is a bug-fix release.</p>
|
|
|
|
<p><p>The primary reason for this bug-fix release is to address a problem with
|
|
updating the value of fields at the end of a table that were added
|
|
using <a href="lang_altertable.html">ALTER TABLE ADD COLUMN</a>. This problem
|
|
<a href="https://www.sqlite.org/src/info/43107840f1c02">1</a> first appeared in the
|
|
3.8.7 release.</p>
|
|
|
|
<p><p>Another minor annoyance in the 3.8.7 release was the fact that the
|
|
Android build tried to use the strchrnul() function from the standard
|
|
C library but that function is not available on Android. Android builds
|
|
had to add -DHAVE_STRCHRNUL=0 to work around the problem. This patch
|
|
fixes that so that Android builds should now work without any changes.</p>
|
|
|
|
<p><p>The operation of <a href="pragma.html#pragma_journal_mode">PRAGMA journal_mode=TRUNCATE</a> has been enhanced so that
|
|
it invokes fsync() after truncating the journal file when
|
|
<a href="pragma.html#pragma_synchronous">PRAGMA synchronous=FULL</a>. This helps to preserve transaction durability
|
|
in the case of a power loss occurring shortly after commit.</p>
|
|
|
|
<p><p>Finally, a couple of long-standing and obscure problems associated with run
|
|
UPDATE and DELETE on VIEWs were fixed.</p>
|
|
|
|
<p><p>The <a href="https://www.sqlite.org/src/vdiff?from=e4ab094f8afce0817f4074e823fabe59fc29ebb4&to=83afe23e553e802c0947c80d0ffdd120423e7c52&sbs=1">changes from 3.8.7</a> are minimal.
|
|
</blockquote><hr width="50%"><a name="2014_10_17"></a><h3>2014-10-17 - Release 3.8.7</h3><blockquote>
|
|
<p>SQLite <a href="releaselog/3_8_7.html">version 3.8.7</a> is a regularly scheduled maintenance release.
|
|
Upgrading from all prior versions is recommended.</p>
|
|
|
|
<p><p>Most of the changes from the previous release have been micro-optimizations
|
|
designed to help SQLite run a little faster. Each individual optimization
|
|
has an unmeasurably small performance impact. But the improvements add up.
|
|
Measured on a well-defined workload (which the SQLite developers use
|
|
as a proxy for a typical application workload) using cachegrind on Linux
|
|
and compiled with gcc 4.8.1 and -Os on x64 linux, the current release
|
|
does over 20% more work for the same number of CPU cycles compared to the
|
|
previous release. Cachegrind is not a real CPU, and the workload
|
|
used for measurement is only a proxy. So your performance may vary.
|
|
We expect to see about half the measured and reported improvement in
|
|
real-world applications. 10% is less than 20% but it is still pretty
|
|
good, we think.</p>
|
|
|
|
<p><p>This release includes a new set of C-language interfaces that have
|
|
unsigned 64-bit instead of signed 32-bit length parameters. The new
|
|
APIs do not provide any new capabilities. But they do make it easier
|
|
to write applications that are more resistant to integer overflow
|
|
vulnerabilities.</p>
|
|
|
|
<p><p>This release also includes a new sorter that is able to use multiple
|
|
threads to help with large sort operations. (Sort operations are
|
|
sometimes required to implement ORDER BY and/or GROUP BY clauses and
|
|
are almost always required for CREATE INDEX.) The multi-threads sorter
|
|
is turned off by default and must be enabled using the
|
|
<a href="pragma.html#pragma_threads">PRAGMA threads</a> SQL command. Note that the multi-threaded sorter
|
|
provides faster real-time performance for large sorts, but it also
|
|
uses more CPU cycles and more energy.
|
|
</blockquote><hr width="50%"><a name="2014_08_15"></a><h3>2014-08-15 - Release 3.8.6</h3><blockquote>
|
|
<p>SQLite <a href="releaselog/3_8_6.html">version 3.8.6</a> is a regularly scheduled maintenance release.
|
|
Upgrading from all previous versions is recommended.</p>
|
|
|
|
<p><p>This release contains the usual assortment of obscure bug fixes.
|
|
One bug, however, deserves special attention.
|
|
A problem appeared in the <a href="lang_createindex.html">CREATE INDEX</a> command beginning with
|
|
<a href="releaselog/3_8_2.html">version 3.8.2</a> (2013-12-06) that allowed, under some circumstances,
|
|
a UNIQUE index to be created on a column that was not unique. Once
|
|
the index was created, no new non-unique entries could be inserted, but
|
|
preexisting non-unique entries would remain. See ticket
|
|
<a href="http://www.sqlite.org/src/info/9a6daf340df99ba93c">9a6daf340df99ba93c</a>
|
|
for further information. In addition to fixing this bug, the
|
|
<a href="pragma.html#pragma_integrity_check">PRAGMA integrity_check</a> command has been enhanced to detect
|
|
non-uniqueness in UNIQUE indices, so that if this bug did introduce
|
|
any problems in databases, those problems can be easily detected.</p>
|
|
|
|
<p><p>Other noteworthy changes include the addition of support for
|
|
<a href="lang_expr.html#hexint">hexadecimal integers</a> (ex: 0x1234), and performance enhancements
|
|
to the <a href="lang_expr.html#in_op">IN operator</a> which, according to
|
|
<a href="http://www.mail-archive.com/sqlite-users%40sqlite.org/msg85350.html">mailing list reports</a>,
|
|
help some queries run up to five times faster.</p>
|
|
|
|
<p><p>Version 3.8.6 uses 25% fewer CPU cycles than version 3.8.0 from
|
|
approximately one year ago, according to <a href="http://valgrind.org/">valgrind</a>
|
|
and the
|
|
<a href="http://www.sqlite.org/src/artifact/d29c8048beb7e">test/speedtest1.c</a>
|
|
test program.
|
|
On the other hand,
|
|
the compiled binary for version 3.8.6 is about 5% larger than 3.8.0.
|
|
The size increase is
|
|
due in part to the addition of new features such as <a href="withoutrowid.html">WITHOUT ROWID</a>
|
|
tables and <a href="lang_with.html">common table expressions</a>.
|
|
</blockquote><hr width="50%"><a name="2014_06_04"></a><h3>2014-06-04 - Release 3.8.5</h3><blockquote>
|
|
<p>SQLite <a href="releaselog/3_8_5.html">version 3.8.5</a> is a regularly scheduled maintenance release.
|
|
Upgrading from the previous version is recommended.</p>
|
|
|
|
<p><p>Version 3.8.5 fixes more than a dozen obscure bugs. None of these
|
|
bugs should be a problem for existing applications. Nor do any of
|
|
the bugs represent a security vulnerability. Nevertheless, upgrading
|
|
is recommended to prevent future problems.</p>
|
|
|
|
<p><p>In addition to bug fixes, the 3.8.5 release adds improvements to the
|
|
query planner, especially regarding sorting using indices and handling
|
|
OR terms
|
|
in the WHERE clause for WITHOUT ROWID tables. The ".system" and
|
|
".once" dot-commands were added to the command-line interface. And
|
|
there were enhancements to the FTS4 and RTREE virtual tables. See
|
|
the change log for details.
|
|
</blockquote><hr width="50%"><a name="2014_04_03"></a><h3>2014-04-03 - Release 3.8.4.3</h3><blockquote>
|
|
<p>The optimizations added in <a href="releaselog/3_8_4.html">version 3.8.4</a> caused some queries that involve
|
|
subqueries in the FROM clause, DISTINCT, and ORDER BY clauses, to give an incorrect
|
|
result. See
|
|
<a href="http://www.sqlite.org/src/info/98825a79ce145686392d8074032ae54863aa21a3">ticket 98825a79ce145</a>
|
|
for details.
|
|
This release adds a
|
|
<a href="http://www.sqlite.org/src/fdiff?sbs=1&v1=7d539cedb1c&v2=ebad891b7494d&smhdr">one-character change</a>
|
|
to a single line of code to fix the problem.
|
|
</blockquote><hr width="50%"><a name="2014_03_26"></a><h3>2014-03-26 - Release 3.8.4.2</h3><blockquote>
|
|
<p>The code changes that resulted in the performance improvements
|
|
in <a href="releaselog/3_8_4.html">version 3.8.4</a> missed a single buffer overflow test, which could
|
|
result in a read past the end of a buffer while searching a database
|
|
that is corrupted in a particular way. <a href="releaselog/3_8_4_2.html">Version 3.8.4.2</a> fixes that
|
|
problem using a
|
|
<a href="http://www.sqlite.org/src/fdiff?v1=e45e3f9daf38c5be&v2=714df4e1c82f629d&sbs=1">one-line patch</a>.</p>
|
|
|
|
<p><p>We are not aware of any problems in <a href="releaselog/3_8_4.html">version 3.8.4</a>
|
|
when working with well-formed database files. The problem fixed by this
|
|
release only comes up when reading corrupt database files.
|
|
</blockquote><hr width="50%"><a name="2014_03_11"></a><h3>2014-03-11 - Release 3.8.4.1</h3><blockquote>
|
|
<p>SQLite <a href="releaselog/3_8_4_1.html">version 3.8.4.1</a> is a patch against <a href="releaselog/3_8_4.html">version 3.8.4</a> that fixes
|
|
two minor issues:
|
|
<ol>
|
|
<li> Work around a C-preprocessor macro conflict that causes compilation
|
|
problems for some configurations of Visual Studio.
|
|
<li> Adjust the cost computation for the <a href="optoverview.html#skipscan">skip-scan optimization</a> for
|
|
improved performance.
|
|
</ol>
|
|
Both of these issues came to light within minutes of tagging the previous
|
|
release. Neither issue is serious but they can be annoying. Hence, the
|
|
decision was made to do a quick patch release to address both issues.
|
|
</blockquote><hr width="50%"><a name="2014_03_10"></a><h3>2014-03-10 - Release 3.8.4</h3><blockquote>
|
|
<p>SQLite <a href="releaselog/3_8_4.html">version 3.8.4</a> is a maintenance release featuring performance
|
|
enhancements and fixes for a number of obscure bugs.
|
|
There are no significant new features in SQLite version 3.8.4.
|
|
However, the number of CPU cycles (measured by valgrind) needed to
|
|
do many common operations has be reduced by about 12% relative to the
|
|
previous release, and by about 25% relative to <a href="releaselog/3_7_16.html">version 3.7.16</a>
|
|
from approximately one year ago.</p>
|
|
|
|
<p><p>Version 3.8.4 of SQLite fixes several corner-case bugs that were
|
|
found since the previous release. These bugs were unlikely to appear
|
|
in practice, and none represent a security vulnerability.
|
|
Nevertheless, developers are encouraged to upgrade from all prior releases.
|
|
</blockquote><hr width="50%"><a name="2014_02_11"></a><h3>2014-02-11 - Release 3.8.3.1</h3><blockquote>
|
|
<p>SQLite <a href="releaselog/3_8_3_1.html">version 3.8.3.1</a> fixes a bug present in versions 3.8.1,
|
|
3.8.2 and 3.8.3 that can cause queries to omit valid output rows.
|
|
Upgrading from those versions is recommended.</p>
|
|
|
|
<p><p>The problem only comes up if SQLite is compiled with either the
|
|
<a href="compile.html#enable_stat3">SQLITE_ENABLE_STAT3</a> or <a href="compile.html#enable_stat4">SQLITE_ENABLE_STAT4</a> compile-time options.
|
|
In that case, if a query has a WHERE clause that contains expressions
|
|
like this:
|
|
<blockquote>
|
|
WHERE (expr1 OR expr2 OR ... OR exprN) AND column IS NOT NULL
|
|
</blockquote>
|
|
Where all of expr1 through exprN are suitable for use by indexes,
|
|
then during query planning SQLite might mistakenly converted
|
|
the "column IS NOT NULL" term into "column>NULL". But the latter
|
|
term is never true, and so the query would return no rows.</p>
|
|
|
|
<p><p>The trouble ticket for this bug is
|
|
[<a href="http://www.sqlite.org/src/info/4c86b126f2">4c86b126f2</a>].
|
|
It is recommended that all users upgrade to avoid this problem.
|
|
</blockquote><hr width="50%"><a name="2014_02_03"></a><h3>2014-02-03 - Release 3.8.3</h3><blockquote>
|
|
<p>SQLite <a href="releaselog/3_8_3.html">version 3.8.3</a> is a regularly scheduled maintenance release.
|
|
Upgrading from the previous release is optional.</p>
|
|
|
|
<p> <p>The most visible change in version 3.8.3 is the addition of
|
|
support for <a href="lang_with.html">common table expressions</a>. It is now possible to write a
|
|
single <a href="lang_select.html">SELECT</a> statement that will query a tree or graph, using either
|
|
a depth-first or a breadth-first search. A single SQLite query will
|
|
even <a href="lang_with.html#sudoku">solve Sudoku puzzles</a> or <a href="lang_with.html#mandelbrot">compute the Mandelbrot set</a>. As part
|
|
of this change, SQLite now accepts a <a href="lang_select.html#values">VALUES clause</a> anyplace that
|
|
a <a href="lang_select.html">SELECT</a> statement is valid.</p>
|
|
|
|
<p> <p>This release also includes many small performance enhancements which
|
|
should give a small speed boost to legacy applications. And there are
|
|
other minor enhancements such as the addition of the <a href="lang_corefunc.html#printf">printf()</a> SQL
|
|
function. See the <a href="releaselog/3_8_3.html">change log</a> for details.
|
|
</blockquote><hr width="50%"><a name="2013_12_06"></a><h3>2013-12-06 - Release 3.8.2</h3><blockquote>
|
|
<p>SQLite <a href="releaselog/3_8_2.html">version 3.8.2</a> is a regularly scheduled maintenance release.
|
|
Upgrading from the previous release is optional.</p>
|
|
|
|
<p> <p>Version 3.8.2 adds support for <a href="withoutrowid.html">WITHOUT ROWID</a> tables. This is a
|
|
significant extension to SQLite. Database files that contain WITHOUT ROWID
|
|
tables are not readable or writable by prior versions of SQLite, however
|
|
databases that do not use WITHOUT ROWID tables are fully backwards
|
|
and forwards compatible.</p>
|
|
|
|
<p> <p>The 3.8.2 release contains a potentially incompatible change. In
|
|
all prior versions of SQLite, a <a href="lang_expr.html#castexpr">cast</a> from a very large positive
|
|
floating point number into an integer resulted in the most negative integer.
|
|
In other words, CAST(+99.9e99 to INT) would yield -9223372036854775808.
|
|
This behavior came about because it is what x86/x64 hardware does
|
|
for the equivalent cast in the C language. But the behavior is
|
|
bizarre. And so it has been changed effective with this release so that
|
|
a cast from a floating point number into an integer returns the integer
|
|
between the floating point value and zero that is closest to the floating
|
|
point value. Hence, CAST(+99.9e99 to INT) now returns +9223372036854775807.
|
|
Since routines like <a href="c3ref/column_blob.html">sqlite3_column_int64()</a> do an implicit cast if the
|
|
value being accessed is really a floating point number, they are also
|
|
affected by this change.</p>
|
|
|
|
<p> <p>Besides the two changes mentioned above, the 3.8.2 release also
|
|
includes a number of performance enhancements. The
|
|
<a href="optoverview.html#skipscan">skip-scan optimization</a> is now available for databases that have been
|
|
processed by <a href="lang_analyze.html">ANALYZE</a>. Constant SQL functions are now factored out of
|
|
inner loops, which can result in a significant speedup for queries that
|
|
contain WHERE clause terms like "date>datetime('now','-2 days')". And
|
|
various high-runner internal routines have been refactored for reduced
|
|
CPU load.
|
|
</blockquote><hr width="50%"><a name="2013_10_17"></a><h3>2013-10-17 - Release 3.8.1</h3><blockquote>
|
|
<p>SQLite <a href="releaselog/3_8_1.html">version 3.8.1</a> is a regularly scheduled maintenance release.
|
|
Upgrading from the previous release is optional, though you should upgrade
|
|
if you are using <a href="partialindex.html">partial indices</a> as there was a
|
|
<a href="http://www.sqlite.org/src/info/a5c8ed66ca">bug</a> related to partial
|
|
indices in the previous release that could result in an incorrect answer
|
|
for count(*) queries.</p>
|
|
|
|
<p> <p>The <a href="queryplanner-ng.html">next generation query planner</a> that was premiered in the previous
|
|
release continues to work well.
|
|
The new query planner has been tweaked slightly
|
|
in the current release to help it make better decisions in some
|
|
cases, but is largely unchanged. Two new SQL functions, <a href="lang_corefunc.html#likelihood">likelihood()</a> and
|
|
<a href="lang_corefunc.html#unlikely">unlikely()</a>, have been added to allow developers to give hints to the
|
|
query planner without forcing the query planner into a particular decision.</p>
|
|
|
|
<p> <p>Version 3.8.1 is the first SQLite release to take into account the
|
|
estimated size of table and index rows when choosing a query plan.
|
|
Row size estimates are based on the declared datatypes of columns.
|
|
For example, a column of type VARCHAR(1000) is assumed
|
|
to use much more space than a column of type INT. The datatype-based
|
|
row size estimate can be
|
|
overridden by appending a term of the form "sz=NNN" (where NNN is the
|
|
average row size in bytes) to the end of the <a href="fileformat2.html#stat1tab">sqlite_stat1.stat</a>
|
|
record for a table or index. Currently, row sizes are only used to help the
|
|
query planner choose between a table or one of its indices when doing a
|
|
table scan or a count(*) operation, though future releases are likely
|
|
to use the estimated row size in other contexts as well. The new
|
|
<a href="pragma.html#pragma_stats">PRAGMA stats</a> statement can be used to view row size estimates.</p>
|
|
|
|
<p> <p>Version 3.8.1 adds the <a href="compile.html#enable_stat4">SQLITE_ENABLE_STAT4</a> compile-time option.
|
|
STAT4 is very similar to STAT3 in that it uses samples from indices to
|
|
try to guess how many rows of the index will be satisfy by WHERE clause
|
|
constraints. The difference is that STAT4 samples all columns of the
|
|
index whereas the older STAT3 only sampled the left-most column. Users
|
|
of STAT3 are encouraged to upgrade to STAT4. Application developers should
|
|
use STAT3 and STAT4 with caution since both options, by design, violate
|
|
the <a href="queryplanner-ng.html#qpstab">query planner stability guarantee</a>, making it more difficult to ensure
|
|
uniform performance is widely-deployed and mass-produced embedded
|
|
applications.
|
|
</blockquote><hr width="50%"><a name="2013_09_03"></a><h3>2013-09-03 - Release 3.8.0.2</h3><blockquote>
|
|
<p>SQLite <a href="releaselog/3_8_0_2.html">version 3.8.0.2</a> contains a one-line fix to a bug in the
|
|
new optimization that tries to omit unused LEFT JOINs from a query.
|
|
</blockquote><hr width="50%"><a name="2013_08_29"></a><h3>2013-08-29 - Release 3.8.0.1</h3><blockquote>
|
|
<p>SQLite <a href="releaselog/3_8_0_1.html">version 3.8.0.1</a> fixes some obscure bugs that were uncovered by
|
|
users in the 3.8.0 release. Changes from 3.8.0 are minimal.
|
|
</blockquote><hr width="50%"><a name="2013_08_26"></a><h3>2013-08-26 - Release 3.8.0</h3><blockquote>
|
|
<b>Do not fear the zero!</b></p>
|
|
|
|
<p> <p>SQLite <a href="releaselog/3_8_0.html">version 3.8.0</a> might easily have been called "3.7.18" instead.
|
|
However, this release features the cutover of the
|
|
<a href="queryplanner-ng.html">next generation query planner</a> or <a href="queryplanner-ng.html">NGQP</a>, and there is a small chance of
|
|
<a href="queryplanner-ng.html#hazards">breaking legacy programs</a> that
|
|
rely on undefined behavior in previous SQLite releases, and so the
|
|
minor version number was incremented for that reason.
|
|
But the risks are low and there is a <a href="queryplanner-ng.html#howtofix">query planner checklist</a> is
|
|
available to application developers to aid in avoiding problems.</p>
|
|
|
|
<p> <p>SQLite <a href="releaselog/3_8_0.html">version 3.8.0</a> is actually one of the most heavily tested
|
|
SQLite releases ever. Thousands and thousands of beta copies have
|
|
be downloaded, and presumably tested, and there have been no problem
|
|
reports.</p>
|
|
|
|
<p> <p>In addition to the <a href="queryplanner-ng.html">next generation query planner</a>, the 3.8.0 release
|
|
adds support for <a href="partialindex.html">partial indices</a>, as well as several other new features.
|
|
See the <a href="releaselog/3_8_0.html">change log</a> for further detail.
|
|
</blockquote><hr width="50%"><a name="2013_05_20"></a><h3>2013-05-20 - Release 3.7.17</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_17.html">version 3.7.17</a> is a regularly schedule maintenance release.
|
|
Visit the <a href="releaselog/3_7_17.html">change log</a> for a full explanation of the
|
|
changes in this release.</p>
|
|
|
|
<p> There are many bug fixes in version 3.7.17. But this does not indicate
|
|
that 3.7.16 was a problematic release. All of the bugs in 3.7.17 are
|
|
obscure and are unlikely to impact any particular application. And most
|
|
of the bugs that are fixed in 3.7.17 predate 3.7.16 and have been in
|
|
the code for years without ever before being noticed.
|
|
Nevertheless, due to the large number of fixes,
|
|
all users are encouraged to upgrade when possible.
|
|
</blockquote><hr width="50%"><a name="2013_04_12"></a><h3>2013-04-12 - Release 3.7.16.2</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_16_2.html">version 3.7.16.2</a> fixes a long-standing flaw in the Windows
|
|
OS interface that
|
|
can result in database corruption under a rare race condition.
|
|
See <a href="http://www.sqlite.org/src/info/7ff3120e4f">http://www.sqlite.org/src/info/7ff3120e4f</a> for a full description
|
|
of the problem.</p>
|
|
|
|
<p> As far as we know, this bug has never been seen in the wild. The
|
|
problem was discovered by the SQLite developers while writing stress tests
|
|
for a separate component of SQLite. Those stress tests have not yet
|
|
found any problems with the component they were intended to verify, but
|
|
they did find the bug which is the subject of this patch release.</p>
|
|
|
|
<p> Other than updates to version numbers, the only difference between this
|
|
release and 3.7.16.1 is a two-character change in a single identifier,
|
|
which is contained in the windows-specific OS interface logic. There
|
|
are no changes in this release (other than version numbers) for platforms
|
|
other than Windows.
|
|
</blockquote><hr width="50%"><a name="2013_03_29"></a><h3>2013-03-29 - Release 3.7.16.1</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_16_1.html">version 3.7.16.1</a> is a bug fix release that fixes a few problems
|
|
that were present in the previous releases.</p>
|
|
|
|
<p> The primary motivation for version 3.7.16.1 is to fix a bug in the
|
|
query optimizer that was introduced as part of <a href="releaselog/3_7_15.html">version 3.7.15</a>. The
|
|
query optimizer was being a little overzealous in optimizing out some
|
|
ORDER BY clauses, which resulted in sorting being omitted on occasions
|
|
where sorting is required to get the correct answer. See
|
|
ticket <a href="http://www.sqlite.org/src/info/a179fe7465">a179fe7465</a> for
|
|
details.</p>
|
|
|
|
<p> In addition to the ORDER BY fix, several other patches to fix obscure
|
|
(and mostly harmless) bugs and to fix spelling errors in source code
|
|
comments are also included in this release.
|
|
</blockquote><hr width="50%"><a name="2013_03_18"></a><h3>2013-03-18 - Release 3.7.16</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_16.html">version 3.7.16</a> is a regularly scheduled release of SQLite.
|
|
This release contains several language enhancements and improvements
|
|
to the query optimizer. A list of the major enhancements and optimizations
|
|
can be see on the <a href="releaselog/3_7_16.html">change log</a>.</p>
|
|
|
|
<p> There was one important bug fix
|
|
(see <a href="http://www.sqlite.org/src/info/fc7bd6358f">Ticket fc7bd6358f</a>)
|
|
that addresses an incorrect query result that could have occurred in
|
|
a three-way join where the join constraints compared INTEGER columns
|
|
to TEXT columns. This issue had been in the code for time out of mind
|
|
and had never before been reported, so we surmise that it is very obscure.
|
|
Nevertheless, all users are advised to upgrade to avoid any future problems
|
|
associated with this issue.
|
|
</blockquote><hr width="50%"><a name="2013_01_09"></a><h3>2013-01-09 - Release 3.7.15.2</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_15_2.html">version 3.7.15.2</a> is a patch release that fixes a single bug
|
|
that was introduced in version <a href="releaselog/3_7_15.html">version 3.7.15</a>. The fix is a 4-character
|
|
edit to a single line of code. Other than this 4-character change and
|
|
the update of the version number, nothing has changed from
|
|
<a href="releaselog/3_7_15_1.html">version 3.7.15.1</a>.
|
|
</blockquote><hr width="50%"><a name="2012_12_19"></a><h3>2012-12-19 - Release 3.7.15.1</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_15_1.html">version 3.7.15.1</a> is a patch release that fixes a single bug
|
|
that was introduced in version <a href="releaselog/3_7_15.html">version 3.7.15</a>. The fix involved changing
|
|
two lines of code and adding a single assert(). This release also includes
|
|
some new test cases to prevent a regression of the bug, and the version
|
|
number is increased, of course. But otherwise, nothing has changed from
|
|
<a href="releaselog/3_7_15.html">version 3.7.15</a>.
|
|
</blockquote><hr width="50%"><a name="2012_12_12"></a><h3>2012-12-12 - Release 3.7.15</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_15.html">version 3.7.15</a> is a regularly schedule release of SQLite. This
|
|
release contains several improvements to the query planner and optimizer
|
|
and one important bug fix. This is the first release to officially
|
|
support Windows 8 Phone.</p>
|
|
|
|
<p> The important bug fix is a problem that can lead to segfaults when using
|
|
<a href="sharedcache.html">shared cache mode</a> on a schema that contains a <a href="lang_expr.html#collateop">COLLATE operator</a> within
|
|
a <a href="lang_createtable.html#ckconst">CHECK constraint</a> or within a <a href="lang_createview.html">view</a>. Collating functions are associated
|
|
with individual database connections. But a pointer to the collating function
|
|
was also being cached within expressions. If an expression was part of the
|
|
schema and contained a cached collating function, it would point to the
|
|
collating function in the database connection that originally parsed the
|
|
schema. If that database connection closed while other database
|
|
connections using the same shared cache continued to operate, they other
|
|
database connections would try to use the deallocated collating function
|
|
in the database connection that closed. The fix in version 3.7.15 was to
|
|
not cache collating function pointers in the expression structure but
|
|
instead look them up each time a new statement is prepared.</p>
|
|
|
|
<p> This release also contains some important enhancements to the query planner
|
|
which should (we hope) make some queries run faster. The enhancements
|
|
include:</p>
|
|
|
|
<p> <ol><li><p>When doing a full-table scan, try to use an index instead of
|
|
the original table, under the theory that indices contain less information
|
|
and are thus smaller and hence require less disk I/O to scan.</p></p>
|
|
|
|
<p> <li><p>Enhance the <a href="lang_expr.html#in_op">IN operator</a> to allow it to make use of
|
|
indices that have <a href="datatype3.html#affinity">numeric affinity</a>.</p></p>
|
|
|
|
<p> <li><p>Do a better job of recognizing when an ORDER BY clause can be
|
|
implemented using indices - especially in cases where the ORDER BY clause
|
|
contains terms from two or more tables in a join.</p>
|
|
</ol>
|
|
</blockquote><hr width="50%"><a name="2012_10_04"></a><h3>2012-10-04 - Release 3.7.14.1</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_14_1.html">version 3.7.14.1</a> is a patch release. Changes from the baseline
|
|
version 3.7.14 are minimal and are restricted to fixing three bugs.</p>
|
|
|
|
<p> One of the fixed bugs is a long-standing issue with the TCL interface.
|
|
Another is an external compiler bug that SQLite merely works around and
|
|
that only comes up if you are using the VisualStudio-2012 compiler to
|
|
generate WinRT applications on ARM with optimizations enabled. The
|
|
third problem is an SQLite core bug, introduced in version 3.7.14, that
|
|
can cause a segfault if a query contains a LEFT JOIN that contains an OR
|
|
in the ON clause.
|
|
</blockquote><hr width="50%"><a name="2012_09_03"></a><h3>2012-09-03 - Release 3.7.14</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_14.html">version 3.7.14</a> is a regularly scheduled maintenance release
|
|
of SQLite. The previous release continues to work well. Upgrading
|
|
is optional.</p>
|
|
|
|
<p> Version 3.7.14 drops native support for OS/2. We are not aware of any
|
|
active projects that were using SQLite on OS/2 and since the SQLite
|
|
developers had no way of testing on OS/2 it seemed like it was time
|
|
to simply remove the OS/2 code from the SQLite tree. If there are
|
|
OS/2 projects out there that still need SQLite support, they can
|
|
continue to maintain their own private <a href="vfs.html">VFS</a> which can be linked to
|
|
SQLite at start-time using the <a href="c3ref/vfs_find.html">sqlite3_vfs_register()</a> interface.</p>
|
|
|
|
<p> The <a href="c3ref/close.html">sqlite3_close_v2()</a> interface has been added. The sqlite3_close_v2()
|
|
interface differs from sqlite3_close() in that it is designed to work
|
|
better for host language that use a garbage collector. With the older
|
|
sqlite3_close() interface, the associated <a href="c3ref/stmt.html">prepared statements</a> and
|
|
<a href="c3ref/backup.html">sqlite3_backup</a> objects must be destroyed before the database connection.
|
|
With the newer sqlite3_close_v2() interface, the objects can be destroyed
|
|
in any order.</p>
|
|
|
|
<p> This release also includes performance improvements to the sort algorithm
|
|
that is used to implement ORDER BY and CREATE INDEX. And the query planner
|
|
has been enhanced to better use covering indices on queries that use OR
|
|
terms in the WHERE clause.
|
|
</blockquote><hr width="50%"><a name="2012_06_11"></a><h3>2012-06-11 - Release 3.7.13</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_13.html">version 3.7.13</a> adds support for WinRT and metro style
|
|
applications for Microsoft Windows 8. The 3.7.13 release is
|
|
coming sooner than is usual after the previous release in order to get
|
|
this new capability into the hands of developers. To use SQLite in
|
|
a metro style application, compile with the -DSQLITE_OS_WINRT flag.
|
|
Because of the increased application security and safety requirements
|
|
of WinRT, all database
|
|
filenames should be full pathnames. Note that SQLite is not capable
|
|
of accessing databases outside the installation directory and application
|
|
data directory. This restriction is another security and safety feature
|
|
of WinRT. Apart from these restrictions, SQLite should work exactly
|
|
the same on WinRT as it does on every other system.</p>
|
|
|
|
<p> Also in this release: when a database is opened using <a href="uri.html">URI filenames</a>
|
|
and the <a href="uri.html#coreqp">mode=memory</a> query parameter
|
|
then the database is an in-memory database, just as if it had
|
|
been named ":memory:". But, if shared cache mode is enabled, then
|
|
all other database connections that specify the same URI filename
|
|
will connect to the same in-memory database. This allows two or more
|
|
database connections (in the same process) to share the same in-memory
|
|
database.</p>
|
|
|
|
<p> This release also includes some corner-case performance optimizations
|
|
that are obscure yet significant to an important subset of SQLite users.
|
|
Getting these performance optimizations into circulation quickly is
|
|
yet another reason for making this release so soon following the previous.</p>
|
|
|
|
<p> The next release of SQLite is scheduled to occur after the usual
|
|
2 or 3 month interval.
|
|
</blockquote><hr width="50%"><a name="2012_05_22"></a><h3>2012-05-22 - Patch Release 3.7.12.1</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_12_1.html">version 3.7.12.1</a> is a patch release for <a href="releaselog/3_7_12.html">version 3.7.12</a> that
|
|
fixes a <a href="http://www.sqlite.org/src/info/c2ad16f997ee9c">bug</a> that was
|
|
introduced in version 3.7.12 and that can
|
|
cause a segfault for certain obscure nested aggregate queries.
|
|
There are very few changes in 3.7.12.1, and upgrading is only needed for
|
|
applications that do nested aggregate queries.
|
|
</blockquote><hr width="50%"><a name="2012_05_14"></a><h3>2012-05-14 - Version 3.7.12</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_12.html">version 3.7.12</a> is a regularly scheduled maintenance release.
|
|
This release contains several new optimizations and bug fixes and upgrading
|
|
is recommended. See the <a href="releaselog/3_7_12.html">change summary</a> for details.
|
|
</blockquote><hr width="50%"><a name="2012_03_20"></a><h3>2012-03-20 - Version 3.7.11</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_11.html">version 3.7.11</a> is a regularly scheduled maintenance release
|
|
which was rushed out early due to a
|
|
<a href="http://www.sqlite.org/src/info/b7c8682cc1">bug in the query optimizer</a>
|
|
introduced in the previous release. The bug is obscure - it changes
|
|
a LEFT JOIN into an INNER JOIN in some cases when there is a 3-way join
|
|
and OR terms in the WHERE clause. But it was considered serious enough to
|
|
rush out a fix. Apart from this one problem, SQLite <a href="releaselog/3_7_10.html">version 3.7.10</a> has
|
|
not given any trouble. Upgrading to <a href="releaselog/3_7_11.html">version 3.7.11</a> from versions
|
|
3.7.6.3, 3.7.7, 3.7.7.1, 3.7.8, or 3.7.9 is
|
|
optional. Upgrading from other releases, including the previous release
|
|
3.7.10, is recommended.</p>
|
|
|
|
<p> Other enhancements found in this release are enumerated in the
|
|
<a href="releaselog/3_7_11.html">change log</a>.
|
|
</blockquote><hr width="50%"><a name="2012_01_16"></a><h3>2012-01-16 - Version 3.7.10</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_10.html">version 3.7.10</a> is a regularly scheduled maintenance release.
|
|
Upgrading from version 3.7.6.3, 3.7.7, 3.7.7.1, 3.7.8, or 3.7.9 is
|
|
optional. Upgrading from other releases is recommended.</p>
|
|
|
|
<p> The <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigpcache">SQLITE_CONFIG_PCACHE</a> mechanism has been replaced with
|
|
<a href="c3ref/c_config_covering_index_scan.html#sqliteconfigpcache2">SQLITE_CONFIG_PCACHE2</a>. If you do not know what this mechanism
|
|
is (it is an extreme corner-case and is seldom used) then this
|
|
change will not effect you in the least.</p>
|
|
|
|
<p> The default <a href="fileformat2.html#schemaformat">schema format number</a> for new database files has changed
|
|
from 1 to 4. SQLite has been able to generate and read database files
|
|
using schema format 4 for six years. But up unto now, the default
|
|
schema format has been 1 so that older versions of SQLite could read
|
|
and write databases generated by newer versions of SQLite. But those
|
|
older versions of SQLite have become so scarce now that it seems
|
|
reasonable to make the new format the default.</p>
|
|
|
|
<p> SQLite is changing some of the assumptions it makes above the behavior
|
|
of disk drives and flash memory devices during a sudden power loss.
|
|
This change is completely transparent to applications.
|
|
Read about the <a href="psow.html">powersafe overwrite</a> property for additional information.</p>
|
|
|
|
<p> Lots of new interfaces have been added in this release:
|
|
<ul>
|
|
<li> <a href="c3ref/db_release_memory.html">sqlite3_db_release_memory()</a>
|
|
<li> <a href="pragma.html#pragma_shrink_memory">PRAGMA shrink_memory</a>
|
|
<li> <a href="c3ref/db_filename.html">sqlite3_db_filename()</a>
|
|
<li> <a href="c3ref/stmt_busy.html">sqlite3_stmt_busy()</a>
|
|
<li> <a href="c3ref/uri_boolean.html">sqlite3_uri_boolean()</a>
|
|
<li> <a href="c3ref/uri_boolean.html">sqlite3_uri_int64()</a>
|
|
</ul></p>
|
|
|
|
<p> The <a href="pragma.html#pragma_cache_size">PRAGMA cache_size</a> statement has been enhanced. Formerly, you would
|
|
use this statement to tell SQLite how many pages of the database files it
|
|
should hold in its cache at once. The total memory requirement would
|
|
depend on the database page size. Now, if you give <a href="pragma.html#pragma_cache_size">PRAGMA cache_size</a>
|
|
a negative value -N, it will allocate roughly N
|
|
<a href="http://en.wikipedia.org/wiki/Kibibyte">kibibytes</a> of memory to cache,
|
|
divided up according to page size. This enhancement allows programs to
|
|
more easily control their memory usage.</p>
|
|
|
|
<p> There have been several obscure bug fixes. One noteworthy bug,
|
|
ticket <a href="http://www.sqlite.org/src/info/ff5be73dee">ff5be73dee</a>,
|
|
could in theory result in a corrupt database file if a power loss
|
|
occurred at just the wrong moment on an unusually cantankerous disk
|
|
drive. But that is mostly a theoretical concern and is very unlikely
|
|
to happen in practice. The bug was found during laboratory testing
|
|
and has never been observed to occur in the wild.
|
|
</blockquote><hr width="50%"><a name="2011_11_01"></a><h3>2011-11-01 - Version 3.7.9</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_9.html">version 3.7.9</a> is a regularly scheduled maintenance release.
|
|
Upgrading from version 3.7.6.3, 3.7.7, 3.7.7.1, and 3.7.8 is optional.
|
|
Upgrading from other versions is recommended.</p>
|
|
|
|
<p> The <a href="compile.html#enable_stat2">SQLITE_ENABLE_STAT2</a> compile-time option is now a no-op. The enhanced
|
|
query-planner functionality formerly available using SQLITE_ENABLE_STAT2
|
|
is now available through <a href="compile.html#enable_stat3">SQLITE_ENABLE_STAT3</a>. The enhanced query planning
|
|
is still disabled by default. However, future releases of SQLite might
|
|
convert STAT3 from an enable-option to a disable-option so that it is
|
|
available by default and is only omitted upon request.</p>
|
|
|
|
<p> The <a href="fts3.html#fts4">FTS4</a> full-text search engine has been enhanced such that tokens in
|
|
the search string that begin with "^" must be the first token in their
|
|
respective columns in order to match. Formerly, "^" characters in the
|
|
search string were simply ignored. Hence, if a legacy application was
|
|
including "^" characters in FTS4 search strings, thinking that they would
|
|
always be ignored, then those legacy applications might break with this
|
|
update. The fix is simply remove the "^" characters from the search
|
|
string.</p>
|
|
|
|
<p> See the <a href="releaselog/3_7_9.html">change summary</a> for additional changes associated
|
|
with this release.
|
|
</blockquote><hr width="50%"><a name="2011__eptember_19"></a><h3>2011-September-19 - Version 3.7.8</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_8.html">version 3.7.8</a> is a quarterly maintenance release. Upgrading from
|
|
versions 3.7.6.3, 3.7.7, or 3.7.7.1 is optional. Upgrading from other
|
|
versions is recommended.</p>
|
|
|
|
<p> This release features a new "external merge sort" algorithm used to
|
|
implement ORDER BY and GROUP BY and also to presort the content of an
|
|
index for CREATE INDEX. The new algorithm does approximately the same
|
|
number of comparisons and I/Os as before, but the I/Os are much more
|
|
sequential and so runtimes are greatly reduced when the size of the
|
|
set being sorted is larger than the filesystem cache. The performance
|
|
improvement can be dramatic - orders of magnitude faster
|
|
for large CREATE INDEX commands. On the other hand,
|
|
the code is slightly slower (1% or 2%)
|
|
for a small CREATE INDEX. Since CREATE INDEX is not an
|
|
operation that commonly occurs on a speed-critical path, we feel that
|
|
this tradeoff is a good one. The slight slowdown for small CREATE INDEX
|
|
statements might be recovered in a future release. ORDER BY and GROUP BY
|
|
operations should now be faster for all cases, large and small.</p>
|
|
|
|
<p> The query planner has been enhanced to do a better job of handling
|
|
the DISTINCT keyword on SELECT statements.</p>
|
|
|
|
<p> There has been a lot of work on the default <a href="vfs.html">VFSes</a>. The unix VFS has
|
|
been enhanced to include more overrideable system calls - a feature requested
|
|
by Chromium to make it easier to build SQLite into a sandbox. The
|
|
windows VFS has been enhanced to be more resistant to interference from
|
|
anti-virus software.</p>
|
|
|
|
<p> Every version of SQLite is better tested than the previous, and 3.7.8
|
|
is no exception to this rule. Version 3.7.8 has been used internally by
|
|
the SQLite team for mission critical functions and has performed flawlessly.
|
|
And, of course, it passes our rigorous <a href="testing.html">testing</a> procedures with no
|
|
problems detected. Version 3.7.8 is recommended for all new development.
|
|
</blockquote><hr width="50%"><a name="2011_06_28"></a><h3>2011-06-28 - Version 3.7.7.1</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_7_1.html">version 3.7.7.1</a> adds a one-line bug fix to 3.7.7 to fix
|
|
<a href="http://www.sqlite.org/src/info/25ee812710">a problem</a>
|
|
causing <a href="pragma.html#pragma_case_sensitive_like">PRAGMA case_sensitive_like</a> statements compiled using the legacy
|
|
<a href="c3ref/prepare.html">sqlite3_prepare()</a> interface to fail with an <a href="rescode.html#schema">SQLITE_SCHEMA</a> error. Because
|
|
<a href="c3ref/exec.html">sqlite3_exec()</a> uses sqlite3_prepare() internally, the problem also affects
|
|
sqlite3_exec().</p>
|
|
|
|
<p> Upgrading from 3.7.7 is only required for applications that use "PRAGMA
|
|
case_sensitive_like" and the sqlite3_prepare() (or sqlite3_exec()) interface.
|
|
</blockquote><hr width="50%"><a name="2011_06_24"></a><h3>2011-06-24 - Version 3.7.7</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_7.html">version 3.7.7</a> is a regularly scheduled bi-monthly maintenance
|
|
release. Upgrading from version 3.7.6.3 is optional. Upgrading from all
|
|
prior releases is recommended.</p>
|
|
|
|
<p> This release adds support for naming database files using <a href="uri.html">URI filenames</a>.
|
|
URI filenames are disabled by default (for backwards compatibility) but
|
|
applications are encouraged to enable them since incompatibilities are
|
|
likely to be exceedingly rare and the feature is useful. See the
|
|
<a href="uri.html">URI filename documentation</a> for details.</p>
|
|
|
|
<p> Most of the other enhancements in this release involve
|
|
<a href="vtab.html">virtual tables</a>. The virtual table interface has been enhanced to
|
|
support <a href="lang_savepoint.html">SAVEPOINT</a> and <a href="lang_conflict.html">ON CONFLICT</a> clause processing, and the built-in
|
|
<a href="rtree.html">RTREE</a> and <a href="fts3.html">FTS3/FTS4</a> have been augmented to take advantage of
|
|
the new capability. This means, for example, that it is now possible
|
|
to use the <a href="lang_replace.html">REPLACE</a> command on <a href="fts3.html">FTS3/FTS4</a> and <a href="rtree.html">RTREE</a> tables.</p>
|
|
|
|
<p> The <a href="fts3.html#fts4">FTS4</a> full-text index extension has been enhanced to support
|
|
the <a href="fts3.html#fts4prefix">FTS4 prefix option</a> and the <a href="fts3.html#fts4order">FTS4 order option</a>. These two enhancements
|
|
are provided in support of search-as-you-type interfaces where search
|
|
results begin to appear after the first keystroke in the "search" box
|
|
and are refined with each subsequent keystroke. The way this is done is
|
|
to do a separate full-text search after each key stroke, and add the
|
|
"*" wildcard at the end of the word currently being typed. So, for
|
|
example, if the text typed so far is "fast da" and the next character
|
|
typed is "t", then the application does a full-text search of the
|
|
pattern "fast dat*" and displays the results. Such capability has
|
|
always existed. What is new is that the <a href="fts3.html#fts4prefix">FTS4 prefix option</a> allows
|
|
the search to be very fast (a matter of milliseconds) even for difficult
|
|
cases such as "t*" or "th*".</p>
|
|
|
|
<p> There has been a fair amount of work done on the FTS4 module for this
|
|
release. But the core SQLite code has changed little and the previous
|
|
release has not given any problems, so we expect this to be a very
|
|
stable release.
|
|
</blockquote><hr width="50%"><a name="2011_05_19"></a><h3>2011-05-19 - Version 3.7.6.3</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_6_3.html">version 3.7.6.3</a> is a patch release that fixes a
|
|
<a href="http://www.sqlite.org/src/info/2d1a5c67df">single bug</a>
|
|
associated with <a href="wal.html">WAL mode</a>. The bug has been in SQLite ever since WAL
|
|
was added, but the problem is very obscure and so nobody has noticed
|
|
before now. Nevertheless, all users are encouraged to upgrade to
|
|
version 3.7.6.3 or later.</p>
|
|
|
|
<p> The bug is this:
|
|
If the <a href="pragma.html#pragma_cache_size">cache_size</a> is set very small (less than 10) and SQLite comes
|
|
under memory pressure and if a multi-statement transaction is started
|
|
in which the last statement prior to COMMIT is a SELECT statement and if
|
|
a <a href="wal.html#ckpt">checkpoint</a> occurs right after the transaction commit, then
|
|
it might happen that the transaction will be silently rolled back instead
|
|
of being committed.</p>
|
|
|
|
<p> The default setting for <a href="pragma.html#pragma_cache_size">cache_size</a> is 2000. So in most situations, this
|
|
bug will never appear. But sometimes programmers set <a href="pragma.html#pragma_cache_size">cache_size</a> to
|
|
very small values on gadgets and other low-memory devices in order to
|
|
save memory space. Such applications are vulnerable.
|
|
Note that this bug does <u>not</u> cause database corruption. It is
|
|
as if <a href="lang_transaction.html">ROLLBACK</a> were being run instead of <a href="lang_transaction.html">COMMIT</a> in some cases.</p>
|
|
|
|
<p> <b>Bug Details</b></p>
|
|
|
|
<p> Transactions commit in WAL mode by adding a record onto the end of
|
|
the WAL (the write-ahead log) that contains a "commit" flag. So to
|
|
commit a transaction, SQLite takes all the pages that have changed
|
|
during that transaction, appends them to the WAL, and sets the commit
|
|
flag on the last page. Now, if SQLite comes under memory pressure, it
|
|
might try to free up memory space by writing changed pages to the WAL
|
|
prior to the commit. We call this "spilling" the cache to WAL. There
|
|
is nothing wrong with spilling cache to WAL. But if the
|
|
memory pressure is severe, it might be that by the time <a href="lang_transaction.html">COMMIT</a> is run,
|
|
all changed pages for the transaction have already been spilled to WAL
|
|
and there are no pages left to be written to WAL.
|
|
And with no unwritten pages, there was nothing to put the commit flag
|
|
on. And without a commit flag, the transaction would end up being
|
|
rolled back.</p>
|
|
|
|
<p> The fix to this problem was that if all changed pages has already
|
|
been written to the WAL when the commit was started, then page 1 of
|
|
the database will be written to the WAL again, so that there will always
|
|
be a page available on which to set the commit flag.
|
|
</blockquote><hr width="50%"><a name="2011_04_17"></a><h3>2011-04-17 - Version 3.7.6.2</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_6_2.html">version 3.7.6.2</a> adds a one-line bug fix to 3.7.6.1 that enables
|
|
pthreads to work correctly on NetBSD. The problem was a faulty function
|
|
signature for the open system call. The problem does not appear to have
|
|
any adverse impact on any system other than NetBSD.</p>
|
|
|
|
<p> Upgrading from version 3.7.6.1 is only needed on NetBSD.
|
|
</blockquote><hr width="50%"><a name="2011_04_13"></a><h3>2011-04-13 - Version 3.7.6.1</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_6_1.html">version 3.7.6.1</a> fixes a single bug in 3.7.6 that can cause a
|
|
segfault if <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlsizehint">SQLITE_FCNTL_SIZE_HINT</a> is used on a unix build that has
|
|
SQLITE_ENABLE_LOCKING_MODE set to 0 and is compiled with
|
|
HAVE_POSIX_FALLOCATE.</p>
|
|
|
|
<p> Upgrading from 3.7.6 is only needed for users effected by the
|
|
configuration-specific bug described above. There are no other changes
|
|
to the code.
|
|
</blockquote><hr width="50%"><a name="2011_04_12"></a><h3>2011-04-12 - Version 3.7.6</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_6.html">version 3.7.6</a> is a regularly scheduled bi-monthly maintenance
|
|
release of SQLite. Upgrading from version 3.7.5 is optional. Upgrading
|
|
releases prior to 3.7.5 is recommended.
|
|
</blockquote><hr width="50%"><a name="2011_02_01"></a><h3>2011-02-01 - Version 3.7.5</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_5.html">version 3.7.5</a> is a regularly scheduled bi-monthly maintenance
|
|
release of SQLite. Due to the discovery and fix of
|
|
<a href="http://www.sqlite.org/src/tktview?name=5d863f876e">an obscure bug</a>
|
|
that could cause database corruption, upgrading from all prior
|
|
releases of SQLite is recommended. This bug was found during code
|
|
review and has not been observed in the wild.</p>
|
|
|
|
<p> This release adds new <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuslookasidehit">opcodes</a> for the
|
|
<a href="c3ref/db_status.html">sqlite3_db_status()</a> interface that allow more precise measurement of
|
|
how the <a href="malloc.html#lookaside">lookaside memory allocator</a> is performing, which can be useful
|
|
for tuning in applications with very tight memory constraints.</p>
|
|
|
|
<p> The <a href="c3ref/mprintf.html">sqlite3_vsnprintf()</a> interface was added. This routine is simply
|
|
a varargs version of the long-standing <a href="c3ref/mprintf.html">sqlite3_snprintf()</a> interface.</p>
|
|
|
|
<p> The output from <a href="c3ref/profile.html">sqlite3_trace()</a> interface has been enhanced to work
|
|
better (and faster) in systems that use recursive extensions such as
|
|
<a href="fts3.html">FTS3</a> or <a href="rtree.html">RTREE</a>.</p>
|
|
|
|
<p> Testing with Valgrind shows that this release of SQLite is about 1%
|
|
or 2% faster than the previous release for most operations.</p>
|
|
|
|
<p> A fork of the popular ADO.NET adaptor for SQLite known as System.Data.SQLite
|
|
is now available on <a href="http://System.Data.SQLite.org/">http://System.Data.SQLite.org/</a>. The originator
|
|
of System.Data.SQLite, Robert Simpson, is aware of this fork, has
|
|
expressed his approval, and has commit privileges on the new Fossil
|
|
repository. The SQLite development team intends to maintain
|
|
System.Data.SQLite moving forward.
|
|
</blockquote><hr width="50%"><a name="2010_12_08"></a><h3>2010-12-08 - Version 3.7.4</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_4.html">version 3.7.4</a> is a regularly scheduled bi-monthly maintenance
|
|
release of SQLite. Upgrading from <a href="releaselog/3_7_2.html">version 3.7.2</a> and <a href="releaselog/3_7_3.html">version 3.7.3</a>
|
|
is optional. Upgrading from all other SQLite releases is recommended.</p>
|
|
|
|
<p> This release features <a href="fts3.html">full-text search</a> enhancements. The older
|
|
<a href="fts3.html">FTS3</a> virtual table is still fully supported, and should also run
|
|
faster. In addition, the new <a href="fts3.html#fts4">FTS4</a> virtual table is added. FTS4
|
|
follows the same syntax as FTS3 but holds additional metadata which
|
|
facilitates some performance improvements and more advanced
|
|
<a href="fts3.html#matchinfo">matchinfo()</a> output. Look for further full-text search enhancements
|
|
in subsequent releases.</p>
|
|
|
|
<p> Also in this release, the <a href="eqp.html">EXPLAIN QUERY PLAN</a> output has been enhanced
|
|
and new documentation is provided so that application developers can
|
|
more easily understand how SQLite is performing their queries.</p>
|
|
|
|
<p> Thanks to an account from the folks at <a href="http://www.devio.us/">http://www.devio.us/</a>, OpenBSD
|
|
has been added to the list of platforms upon which we
|
|
<a href="testing.html">test SQLite</a> prior to every release. That list of platforms
|
|
now includes:</p>
|
|
|
|
<p> <ul>
|
|
<li> Linux x86 & x86_64
|
|
<li> MacOS 10.5 & 10.6
|
|
<li> MacOS 10.2 PowerPC
|
|
<li> WinXP and Win7
|
|
<li> Android 2.2
|
|
<li> OpenBSD 4.7
|
|
</ul></p>
|
|
|
|
<p> The previous release of SQLite (<a href="releaselog/3_7_3.html">version 3.7.3</a>) has proven to be very
|
|
robust. The only serious issue discovered was
|
|
<a href="http://www.sqlite.org/src/info/80ba201079">ticket 80ba201079</a> that
|
|
describes an incorrect query result that can occur under very
|
|
unusual circumstances. The ticket description contains details of the
|
|
problem. Suffice it to say here that the problem is very obscure and
|
|
is unlikely to effect most applications and so upgrading is optional.
|
|
The problem is fixed, of course, in this release.
|
|
</blockquote><hr width="50%"><a name="2010__ctober_08"></a><h3>2010-October-08 - Version 3.7.3</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_3.html">version 3.7.3</a> is a regularly scheduled bi-monthly maintenance
|
|
release of SQLite. Upgrading from <a href="releaselog/3_7_2.html">version 3.7.2</a> is optional.
|
|
Upgrading from all other releases is recommended.</p>
|
|
|
|
<p> This release adds two new interfaces (really just variations on existing
|
|
interfaces). The <a href="c3ref/create_function.html">sqlite3_create_function_v2()</a> interface adds a
|
|
destructor for the application-data pointer. The new
|
|
<a href="c3ref/hard_heap_limit64.html">sqlite3_soft_heap_limit64()</a> interface allows the soft heap limit to
|
|
be set to a value greater than 2<sup>31</sup>. </p>
|
|
|
|
<p> The <a href="rtree.html">RTREE</a> extension has been enhanced with the ability to have an
|
|
<a href="rtree.html#customquery">application-defined query region</a>. This might
|
|
be used, for example, to locate all objects within
|
|
the field of view of a camera.</p>
|
|
|
|
<p> The 3.7.3 release also includes some performance enhancements, including
|
|
query planner improvements, documentation updates,
|
|
and fixes to some very obscure bugs.
|
|
</blockquote><hr width="50%"><a name="2010__ugust_24"></a><h3>2010-August-24 - Version 3.7.2</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_2.html">version 3.7.2</a> fixes a long-standing bug that can cause the
|
|
database <a href="fileformat2.html#freelist">free-page list</a> to go corrupt if <a href="pragma.html#pragma_incremental_vacuum">incremental_vacuum</a> is used
|
|
multiple times to
|
|
partially reduce the size of a database file that contains many hundreds
|
|
of unused database pages. The original bug reports together with links
|
|
to the patch that fixes it can be seen
|
|
<a href="http://www.sqlite.org/src/info/5e10420e8d">here</a>.</p>
|
|
|
|
<p> This bug has been in the code for at least a year and possibly longer.
|
|
The bug has nothing to do with the versions 3.7.1 or 3.7.0 or any other
|
|
recent release. The fact that the bug was discovered (and fixed)
|
|
within hours of the 3.7.1 release is purely a coincidence.</p>
|
|
|
|
<p> The bug is impossible to hit without using <a href="pragma.html#pragma_incremental_vacuum">incremental_vacuum</a> and is
|
|
very difficult to hit even with incremental_vacuum. And the kind of
|
|
corruption that the bug causes can usually be fixed
|
|
simply by running <a href="lang_vacuum.html">VACUUM</a>. Nevertheless, because the bug can result
|
|
in database corruption, it is recommended that all SQLite users upgrade
|
|
to version 3.7.2 or later.
|
|
</blockquote><hr width="50%"><a name="2010__ugust_23"></a><h3>2010-August-23 - Version 3.7.1</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_1.html">version 3.7.1</a> is a stabilization release for the 3.7.x series.
|
|
Other than the filesize-in-header bug that was fixed in <a href="releaselog/3_7_0_1.html">version 3.7.0.1</a>,
|
|
no major problems have been seen in 3.7.0. Some minor corner-case
|
|
performance regressions have been fixed. A typo in the OS/2 interface
|
|
has been repaired.</p>
|
|
|
|
<p> A biggest part of the 3.7.1 release is a cleanup and refactoring of
|
|
the pager module within SQLite. This refactoring should have no
|
|
application-visible effects. The purpose was to reorganize the code
|
|
in ways that make it easier to prove correctness.</p>
|
|
|
|
<p> The 3.7.1 release adds new experimental methods for obtained more
|
|
detailed memory usage information and for controlling database file
|
|
fragmentation. And the query planner now does a better job of
|
|
optimizing the <a href="lang_expr.html#like">LIKE</a> and <a href="lang_expr.html#glob">GLOB</a> operators.</p>
|
|
|
|
<p> This release increases the maximum size of database pages from 32KiB to
|
|
64KiB. A database with 64KiB pages will not be readable or writable by
|
|
older versions of SQLite. Note that further increases in page size
|
|
are not feasible since the <a href="fileformat2.html">file format</a> uses 16-bit offsets to structures
|
|
within each page.
|
|
</blockquote><hr width="50%"><a name="2010__ugust_04"></a><h3>2010-August-04 - Version 3.7.0.1</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_0_1.html">version 3.7.0.1</a> is a patch release to fix a bug in the new
|
|
filesize-in-header feature of the <a href="fileformat2.html">SQLite file format</a>
|
|
that could cause database corruption if the same database file is
|
|
written alternately with version 3.7.0 and version 3.6.23.1 or earlier.
|
|
A performance regression was also fixed in this release.
|
|
</blockquote><hr width="50%"><a name="2010_07_22"></a><h3>2010-07-22 - Version 3.7.0</h3><blockquote>
|
|
SQLite <a href="releaselog/3_7_0.html">version 3.7.0</a> is a major release of SQLite that features
|
|
a new transaction control mechanism using a <a href="wal.html">write-ahead log</a> or <a href="wal.html">WAL</a>.
|
|
The traditional rollback-journal is still used as the default so there
|
|
should be no visible change for legacy programs. But newer programs
|
|
can take advantage of improved performance and concurrency by enabling
|
|
the WAL journaling mode.</p>
|
|
|
|
<p> SQLite version 3.7.0 also contains some query planner enhancements and
|
|
a few obscure bug fixes, but the only really big change is the addition
|
|
of WAL mode.
|
|
</blockquote><hr width="50%"><a name="2010_03_30"></a><h3>2010-03-30 - Version 3.6.23.1</h3><blockquote>
|
|
SQLite <a href="releaselog/3_6_23_1.html">version 3.6.23.1</a> is a patch release to fix a bug in the
|
|
offsets() function of <a href="fts3.html">FTS3</a> at the request of the Mozilla.
|
|
</blockquote><hr width="50%"><a name="2010_03_09"></a><h3>2010-03-09 - Version 3.6.23</h3><blockquote>
|
|
SQLite <a href="releaselog/3_6_23.html">version 3.6.23</a> is a regular bimonthly release of SQLite.
|
|
Upgrading from the prior release is purely optional.</p>
|
|
|
|
<p> This release contains new pragmas: the <a href="pragma.html#pragma_secure_delete">secure_delete pragma</a>, and
|
|
the <a href="pragma.html#pragma_compile_options">compile_options pragma</a>.
|
|
There are a new SQL functions: <a href="lang_corefunc.html#sqlite_compileoption_used">sqlite_compileoption_used()</a>
|
|
and <a href="lang_corefunc.html#sqlite_compileoption_get">sqlite_compileoption_get()</a>.
|
|
New C/C++ interfaces: <a href="c3ref/compileoption_get.html">sqlite3_compileoption_used()</a>,
|
|
<a href="c3ref/compileoption_get.html">sqlite3_compileoption_get()</a>, <a href="c3ref/c_config_covering_index_scan.html#sqliteconfiglog">SQLITE_CONFIG_LOG</a>, and
|
|
<a href="c3ref/log.html">sqlite3_log()</a>.</p>
|
|
|
|
<p> This release also includes several minor bug fixes and performance
|
|
improvements. Support for <a href="compile.html#omit_floating_point">SQLITE_OMIT_FLOATING_POINT</a> is enhanced.
|
|
There are on-going improvements to <a href="fts3.html">FTS3</a>.</p>
|
|
|
|
<p> The ".genfkey" command in the <a href="cli.html">Command Line Interface</a> has been
|
|
removed. SQLite has supported standard SQL <a href="foreignkeys.html">foreign key constraints</a>
|
|
since <a href="releaselog/3_6_19.html">version 3.6.19</a> and so the ".genfkey" command was seen as
|
|
an anachronism.
|
|
</blockquote><hr width="50%"><a name="2010_01_06"></a><h3>2010-01-06 - Version 3.6.22</h3><blockquote>
|
|
SQLite <a href="releaselog/3_6_22.html">version 3.6.22</a> is a bug-fix release. Two bugs have been fixed
|
|
that might cause incorrect query results.
|
|
<ul>
|
|
<li>Ticket <a href="http://www.sqlite.org/src/info/31338dca7e">31338dca7e</a>
|
|
describes a
|
|
problem with queries that have a WHERE clause of the form (x AND y) OR z
|
|
where x and z come from one table of a join and y comes from a different
|
|
table.
|
|
<li> Ticket <a href="http://www.sqlite.org/src/info/eb5548a849">eb5548a849</a>
|
|
describes
|
|
a problem where the use of the CAST operator in the WHERE clause can lead
|
|
to incorrect results if the column being cast to a new datatype is also
|
|
used in the same WHERE clause without being cast.
|
|
</ul>
|
|
Both bugs are obscure,
|
|
but because they could arise in an application after deployment, it is
|
|
recommended that all applications upgrade SQLite to version 3.6.22.</p>
|
|
|
|
<p> This release also includes other minor bug fixes and performance
|
|
enhancements, especially in the <a href="fts3.html">FTS3</a> extension.
|
|
</blockquote><hr width="50%"><a name="2009_12_07"></a><h3>2009-12-07 - Version 3.6.21</h3><blockquote>
|
|
SQLite <a href="releaselog/3_6_21.html">version 3.6.21</a> focuses on performance optimization. For
|
|
a certain set of traces, this version uses 12% fewer CPU instructions
|
|
than the previous release (as measured by Valgrind). In addition, the
|
|
<a href="fts3.html">FTS3</a> extension has been through an extensive cleanup and rework and
|
|
the <a href="c3ref/profile.html">sqlite3_trace()</a> interface has been modified to insert
|
|
<a href="lang_expr.html#varparam">bound parameter</a> values into its output.
|
|
</blockquote><hr width="50%"><a name="2009_11_04"></a><h3>2009-11-04 - Version 3.6.20</h3><blockquote>
|
|
SQLite <a href="releaselog/3_6_20.html">version 3.6.20</a> is a general maintenance release. The
|
|
query planner has been enhanced to work better with bound parameters
|
|
in LIKE and GLOB operators and in range constraints and various minor
|
|
bugs have been fixed. Upgrading from 3.6.19 is optional.
|
|
</blockquote><hr width="50%"><a name="2009_10_14"></a><h3>2009-10-14 - Version 3.6.19</h3><blockquote>
|
|
SQLite <a href="releaselog/3_6_19.html">version 3.6.19</a> adds native support for
|
|
<a href="foreignkeys.html">foreign key constraints</a>, including deferred constraints and
|
|
cascading deletes. Enforcement of foreign keys is disabled by
|
|
default for backwards compatibility and must be turned on using
|
|
the <a href="pragma.html#pragma_foreign_keys">foreign_keys pragma</a>.</p>
|
|
|
|
<p> Version 3.6.19 also adds support for the
|
|
<a href="lang_expr.html#isisnot">IS and IS NOT operators</a>. Formerly, SQLite (as most
|
|
other SQL database engines) supported IS NULL and IS NOT NULL. The
|
|
IS and IS NOT operators are generalizations that allow the right-hand
|
|
side to be an arbitrary expression. IS and IS NOT work the same as
|
|
== (equals) and != (not equals) except that with IS and IS NOT the
|
|
NULL values compare equal to one another.
|
|
</blockquote><hr width="50%"><a name="2009_09_11"></a><h3>2009-09-11 - Version 3.6.18</h3><blockquote>
|
|
Beginning with this release, the SQLite source code is tracked and
|
|
managed using the <a href="http://www.fossil-scm.org/">Fossil</a>
|
|
distributed configuration management system. SQLite was previously
|
|
versioned using CVS. The entire CVS history has been imported into
|
|
Fossil. The older CVS repository remains on the website but is
|
|
read-only.</p>
|
|
|
|
<p> There are two major enhancements in SQLite version 3.6.18. The first
|
|
is a series or refinements to the query planner that help SQLite to
|
|
choose better plans for joins where in the past it was selecting suboptimal
|
|
query plans. The <a href="compile.html#enable_stat2">SQLITE_ENABLE_STAT2</a> compile-time option has been
|
|
added to cause SQLite to collect histogram data on indices when the
|
|
<a href="lang_analyze.html">ANALYZE</a> command is run. The use of histograms improve the query
|
|
planning performance even more.</p>
|
|
|
|
<p> The second major enhancement is that SQLite now support recursive
|
|
triggers. The older non-recursive behavior of triggers is still the
|
|
default behavior. Recursive triggers are activated using the
|
|
<a href="pragma.html#pragma_recursive_triggers">recursive_triggers pragma</a>. In addition to allowing triggers to
|
|
call themselves (either directly or indirectly) the new capability
|
|
also fires DELETE triggers on rows that are removed from a table
|
|
as a result of <a href="lang_conflict.html">REPLACE</a> conflict resolution processing.</p>
|
|
|
|
<p> Non-recursive triggers are still the default behavior since this
|
|
is least likely to cause problems for existing applications. However,
|
|
we anticipate that triggers will become
|
|
recursive by default beginning with release 3.7.0. At that point,
|
|
applications that want to continue using the older non-recursive
|
|
trigger behavior will need to use the <a href="pragma.html#pragma_recursive_triggers">recursive_triggers pragma</a>
|
|
to disable recursive triggers.</p>
|
|
|
|
<p> This version of SQLite also contains bug fixes, though none of the
|
|
bugs are serious and all are obscure, so upgrading is optional.</p>
|
|
|
|
<p> The SQLite core continues to have <a href="testing.html#coverage">100% branch test coverage</a>
|
|
and so despite the many changes in this release, the developers
|
|
believe that this version of SQLite is stable and ready for production
|
|
use.
|
|
</blockquote><hr width="50%"><a name="2009_08_10"></a><h3>2009-08-10 - Version 3.6.17</h3><blockquote>
|
|
This is a monthly maintenance release with a focus of bug fixes,
|
|
performance improvements, and increased test coverage. This is the
|
|
first release of SQLite since <a href="testing.html#coverage">100% branch test coverage</a>
|
|
was achieved on the SQLite core. </p>
|
|
|
|
<p> In addition, a new interface <a href="c3ref/stricmp.html">sqlite3_strnicmp()</a> is provided for the
|
|
convenience of extension writers.</p>
|
|
|
|
<p> None of the bugs fixed in this release are serious. All bugs are
|
|
obscure. Upgrading is optional.
|
|
</blockquote><hr width="50%"><a name="2009_07_25"></a><h3>2009-07-25 - 100% Branch Test Coverage</h3><blockquote>
|
|
A subset of the <a href="th3.html">TH3</a> test suite was measured by gcov to provide
|
|
<a href="testing.html#coverage">100% branch test coverage</a> over the SQLite core
|
|
(exclusive of the VFS backend and of extensions such as FTS3 and RTREE)
|
|
when compiled for SuSE 10.1 Linux on x86. The SQLite developers pledge
|
|
to maintain branch test coverage at 100% in all future releases.
|
|
Ongoing work will strive for 100% branch test coverage on the
|
|
operating-system backends and extensions as well.
|
|
</blockquote><hr width="50%"><a name="2009_06_27"></a><h3>2009-06-27 - Version 3.6.16</h3><blockquote>
|
|
SQLite <a href="releaselog/3_6_16.html">version 3.6.16</a> is another general maintenance release containing
|
|
performance and robustness enhancements. A single notable bug was fixed
|
|
(ticket #3929). This bug cause cause INSERT or UPDATE statements to fail
|
|
on indexed tables that have AFTER triggers that modify the same table and
|
|
index.
|
|
</blockquote><hr width="50%"><a name="2009_06_15"></a><h3>2009-06-15 - Version 3.6.15</h3><blockquote>
|
|
SQLite <a href="releaselog/3_6_15.html">version 3.6.15</a> is a general maintenance release containing
|
|
performance and robustness enhancements and fixes for various obscure
|
|
bugs.
|
|
</blockquote><hr width="50%"><a name="2009_05_25"></a><h3>2009-05-25 - Version 3.6.14.2</h3><blockquote>
|
|
SQLite <a href="releaselog/3_6_14_2.html">version 3.6.14.2</a> fixes an obscure bug in the code generator
|
|
(ticket #3879)
|
|
section of SQLite which can potentially cause incorrect query results.
|
|
The changes from the prior release consist of only this one bug fix,
|
|
check-in [6676]
|
|
and a change to the version number text.</p>
|
|
|
|
<p> The bug was introduced in version 3.6.14. It is recommended that
|
|
users of version 3.6.14 and 3.6.14.1 upgrade to this release. Applications
|
|
are unlikely to hit this bug, but since it is difficult to predict which
|
|
applications might hit it and which might not, we recommend that all
|
|
users of 3.6.14 and 3.5.14.1 upgrade to this release.
|
|
</blockquote><hr width="50%"><a name="2009_05_19"></a><h3>2009-05-19 - Version 3.6.14.1</h3><blockquote>
|
|
SQLite <a href="releaselog/3_6_14_1.html">version 3.6.14.1</a> is a patch release to <a href="releaselog/3_6_14.html">version 3.6.14</a> with
|
|
minimal changes that fixes three bugs. Upgrading is only necessary
|
|
for users who are impacted by one or more of those bugs.
|
|
</blockquote><hr width="50%"><a name="2009_05_07"></a><h3>2009-05-07 - Version 3.6.14</h3><blockquote>
|
|
SQLite <a href="releaselog/3_6_14.html">version 3.6.14</a> provides new performance enhancements in
|
|
the btree and pager layers and in the query optimizer. Certain
|
|
workloads can be as much as twice as fast as the previous release,
|
|
though 10% faster is a more typical result.</p>
|
|
|
|
<p> Queries against <a href="vtab.html">virtual tables</a> that contain OR and IN operators
|
|
in the WHERE clause are now able to use indexing.</p>
|
|
|
|
<p> A new optional <a href="asyncvfs.html">asynchronous I/O backend</a> is available for
|
|
unix and windows. The asynchronous backend gives the illusion of faster
|
|
response time by pushing slow write operations into a background thread.
|
|
The tradeoff for faster response time is that more memory is required
|
|
(to hold the content of the pending writes) and if a power failure or
|
|
program crash occurs, some transactions that appeared to have committed
|
|
might end up being rolled back upon restart.</p>
|
|
|
|
<p> This release also contains many minor bug fixes, documentation enhancements,
|
|
new test cases, and cleanups and simplifications to the source code.</p>
|
|
|
|
<p> There is no compelling reason to upgrade from versions 3.6.12 or
|
|
3.6.13 if those prior versions are working. Though many users may
|
|
benefit from the improved performance.
|
|
</blockquote><hr width="50%"><a name="2008_12_16"></a><h3>2008-12-16 - Version 3.6.7</h3><blockquote>
|
|
SQLite <a href="releaselog/3_6_7.html">version 3.6.7</a> contains a major cleanup of the Unix driver,
|
|
and support for the new Proxy Locking mechanism on Mac OS X. Though
|
|
the Unix driver is reorganized, its functionality is the same and so
|
|
applications should not notice a difference.
|
|
</blockquote><hr width="50%"><a name="2008_11_26"></a><h3>2008-11-26 - Version 3.6.6.2</h3><blockquote>
|
|
This release fixes a bug that was introduced into SQLite <a href="releaselog/3_6_6.html">version 3.6.6</a>
|
|
and which seems like it might be able to cause database corruption. This
|
|
bug was detected during stress testing. It has not been seen in the wild.
|
|
An analysis of the problem suggests that the bug might be able to cause
|
|
database corruption, however focused efforts to find a real-world test
|
|
cases that actually causes database corruption have so far been unsuccessful.
|
|
Hence, the likelihood of this bug causing problems is low. Nevertheless,
|
|
we have decided to do an emergency branch release out of an abundance of
|
|
caution.</p>
|
|
|
|
<p> The <a href="releaselog/3_6_6_2.html">version 3.6.6.2</a> release also fixes an obscure memory leak that
|
|
can occur following a disk I/O error.
|
|
</blockquote><hr width="50%"><a name="2008_11_22"></a><h3>2008-11-22 - Version 3.6.6.1</h3><blockquote>
|
|
This release fixes a bug that was introduced into SQLite <a href="releaselog/3_6_4.html">version 3.6.4</a>
|
|
and that can cause database corruption in obscure cases. This bug has
|
|
never been seen in the wild; it was first detected by internal stress
|
|
tests and required substantial analysis before it could be shown to
|
|
potentially lead to corruption. So we feel that SQLite versions 3.6.4,
|
|
3.6.5, and 3.6.6 are safe to use for development work. But upgrading
|
|
to this patch release or later is recommended prior to deploying
|
|
products that incorporate SQLite.</p>
|
|
|
|
<p> We have taken the unusual step of issuing a patch release in order to
|
|
get the fix for this bug into circulation quickly. SQLite version 3.6.7
|
|
will continue on its normal path of development with an anticipated
|
|
release in mid December.
|
|
</blockquote><hr width="50%"><a name="2008_11_19"></a><h3>2008-11-19 - Version 3.6.6</h3><blockquote>
|
|
SQLite <a href="releaselog/3_6_5.html">version 3.6.5</a> is released. This is a quick turn-around release
|
|
that fixes a bug in virtual tables and FTS3 that snuck into
|
|
<a href="releaselog/3_6_5.html">version 3.6.5</a>. This release also adds the new
|
|
application-defined page cache mechanism.
|
|
</blockquote><hr width="50%"><a name="2008_11_12"></a><h3>2008-11-12 - Version 3.6.5</h3><blockquote>
|
|
SQLite <a href="releaselog/3_6_5.html">version 3.6.5</a> is released. There are various minor feature
|
|
enhancements and numerous obscure bug fixes.
|
|
The <a href="releaselog/3_6_5.html">change log</a> contains the details. Upgrading is
|
|
optional.
|
|
</blockquote><hr width="50%"><a name="2008_11_01"></a><h3>2008-11-01 - Bloomberg Joins SQLite Consortium</h3><blockquote>
|
|
The SQLite developers are honored to announce that
|
|
<a href="http://www.bloomberg.com/">Bloomberg</a> has joined the
|
|
<a href="consortium.html">SQLite Consortium</a>.
|
|
</blockquote><hr width="50%"><a name="2008_10_15"></a><h3>2008-10-15 - Version 3.6.4</h3><blockquote>
|
|
SQLite version 3.6.4 adds new features designed to help applications
|
|
detect when indices are not being used on query. There are also some
|
|
important performance improvements. Upgrading is optional.
|
|
</blockquote><hr width="50%"><a name="2008_09_22"></a><h3>2008-09-22 - Version 3.6.3</h3><blockquote>
|
|
SQLite version 3.6.3 fixes a bug in SELECT DISTINCT that was introduced
|
|
by the previous version. No new features are added. Upgrading is
|
|
recommended for all applications that make use of DISTINCT.
|
|
</blockquote><hr width="50%"><a name="2008_08_30"></a><h3>2008-08-30 - Version 3.6.2</h3><blockquote>
|
|
SQLite version 3.6.2 contains rewrites of the page-cache subsystem and
|
|
the procedures for matching identifiers to table columns in SQL statements.
|
|
These changes are designed to better modularize the code and make it more
|
|
maintainable and reliable moving forward. Nearly 5000 non-comment lines
|
|
of core code (about 11.3%) have changed
|
|
from the previous release. Nevertheless, there should be no
|
|
application-visible changes, other than bug fixes.
|
|
</blockquote><hr width="50%"><a name="2008_08_06"></a><h3>2008-08-06 - Version 3.6.1</h3><blockquote>
|
|
SQLite version 3.6.1 is a stabilization and performance enhancement
|
|
release.
|
|
</blockquote><hr width="50%"><a name="2008_07_16"></a><h3>2008-07-16 - Version 3.6.0 beta</h3><blockquote>
|
|
Version 3.6.0 makes changes to the <a href="c3ref/vfs.html">VFS</a> object in order
|
|
to make SQLite more easily portable to a wider variety of platforms.
|
|
There are potential incompatibilities with some legacy applications.
|
|
See the <a href="35to36.html">35to36.html</a> document for details.</p>
|
|
|
|
<p> Many new interfaces are introduced in version 3.6.0. The code is
|
|
very well tested and is appropriate for use in stable systems. We
|
|
have attached the "beta" designation only so that we can make tweaks to
|
|
the new interfaces in the next release without having to declare an
|
|
incompatibility.
|
|
</blockquote><hr width="50%"><a name="2008_05_12"></a><h3>2008-05-12 - Version 3.5.9</h3><blockquote>
|
|
Version 3.5.9 adds a new experimental <a href="pragma.html#syntax">PRAGMA</a>: <a href="pragma.html#pragma_journal_mode">journal_mode</a>.
|
|
Setting the journal mode to PERSIST can provide performance improvement
|
|
on systems where deleting a file is expensive. The PERSIST journal
|
|
mode is still considered experimental and should be used with caution
|
|
pending further testing.</p>
|
|
|
|
<p> Version 3.5.9 is intended to be the last stable release prior to
|
|
version 3.6.0. Version 3.6.0 will make incompatible changes to the
|
|
<a href="c3ref/vfs.html">sqlite3_vfs</a> VFS layer in order to address deficiencies in the original
|
|
design. These incompatibilities will only effect programmers who
|
|
write their own custom VFS layers (typically embedded device builders).
|
|
The planned VFS changes will be much smaller
|
|
than the changes that occurred on the
|
|
<a href="34to35.html">3.4.2 to 3.5.0 transaction</a> that occurred last
|
|
September.</p>
|
|
|
|
<p> This release of SQLite is considered stable and ready for production use.
|
|
</blockquote><hr width="50%"><a name="2008_04_16"></a><h3>2008-04-16 - Version 3.5.8</h3><blockquote>
|
|
Version 3.5.8 includes some important new performance optimizations
|
|
in the virtual machine code generator, including constant subexpression
|
|
factoring and common subexpression elimination. This release also
|
|
creates new public interfaces:
|
|
<a href="c3ref/randomness.html">sqlite3_randomness()</a> provides access to SQLite's internal
|
|
pseudo-random number generator, <a href="c3ref/limit.html">sqlite3_limit()</a> allows size
|
|
limits to be set at run-time on a per-connection basis, and
|
|
<a href="c3ref/context_db_handle.html">sqlite3_context_db_handle()</a> is a convenience routine that allows
|
|
an application-defined SQL function implementation to retrieve
|
|
its <a href="c3ref/sqlite3.html">database connection</a> handle.</p>
|
|
|
|
<p> This release of SQLite is considered stable and ready for production use.
|
|
</blockquote><hr width="50%"><a name="2008_03_17"></a><h3>2008-03-17 - Version 3.5.7</h3><blockquote>
|
|
Version 3.5.7 fixes several minor and obscure bugs, especially
|
|
in the autoconf-generated makefile. Upgrading is optional.
|
|
This release of SQLite is considered stable and ready for production use.
|
|
</blockquote><hr width="50%"><a name="2008_02_06"></a><h3>2008-02-06 - Version 3.5.6</h3><blockquote>
|
|
Version 3.5.6 fixes a minor regression in 3.5.5 - a regression that
|
|
had nothing to do with the massive change of the virtual machine
|
|
to a register-based design.
|
|
No problems have been reported with the new virtual machine. This
|
|
release of SQLite is considered stable and ready for production use.
|
|
</blockquote><hr width="50%"><a name="2008_01_31"></a><h3>2008-01-31 - Version 3.5.5</h3><blockquote>
|
|
Version 3.5.5 changes over 8% of the core source code of SQLite in order
|
|
to convert the internal virtual machine from a stack-based design into
|
|
a register-based design. This change will allow future optimizations
|
|
and will avoid an entire class of stack overflow bugs that have caused
|
|
problems in the past. Even though this change is large, extensive testing
|
|
has found zero errors in the new virtual machine and so we believe this
|
|
to be a very stable release.
|
|
</blockquote><hr width="50%"><a name="2007_12_14"></a><h3>2007-12-14 - Version 3.5.4</h3><blockquote>
|
|
Version 3.5.4 fixes a long-standing but obscure bug in UPDATE and
|
|
DELETE which might cause database corruption. (See ticket #2832.)
|
|
Upgrading is recommended for all users.</p>
|
|
|
|
<p> This release also brings the processing of ORDER BY statements into
|
|
compliance with standard SQL. This could, in theory, cause problems
|
|
for existing applications that depend on the older, buggy behavior.
|
|
See ticket #2822 for additional information.
|
|
</blockquote><hr width="50%"><a name="2007_12_12"></a><h3>2007-12-12 - SQLite Consortium Announced</h3><blockquote>
|
|
The <a href="consortium.html">SQLite Consortium</a> was launched
|
|
today with <a href="http://www.mozilla.org/">Mozilla</a> and
|
|
<a href="http://www.symbian.com/">Symbian</a> as charter members.
|
|
As noted in the <a href="pressrelease-20071212.html">press release</a>,
|
|
the Consortium's goal is to promote the continuing vitality and
|
|
independence of SQLite.
|
|
</blockquote><hr width="50%"><a name="2007_11_27"></a><h3>2007-11-27 - Version 3.5.3</h3><blockquote>
|
|
This is an incremental release that fixes several minor problems.
|
|
Upgrading is optional. If Version 3.5.2 or 3.5.1 is working fine
|
|
for you, then there is no pressing need to change to 3.5.3.</p>
|
|
|
|
<p> The prebuilt binaries and the amalgamation found on the
|
|
<a href="download.html">download</a> page include the FTS3 fulltext
|
|
search extension module. We are doing this on an experimental
|
|
basis and are not promising to provide prebuilt binaries with
|
|
FTS3 in the future.
|
|
</blockquote><hr width="50%"><a name="2007_11_05"></a><h3>2007-11-05 - Version 3.5.2</h3><blockquote>
|
|
This is an incremental release that fixes several minor problems,
|
|
adds some obscure features, and provides some performance tweaks.
|
|
Upgrading is optional.</p>
|
|
|
|
<p> The experimental compile-time option
|
|
<a href="compile.html#omitfeatures">SQLITE_OMIT_MEMORY_ALLOCATION</a> is no longer supported. On the other
|
|
hand, it is now possible to compile SQLite so that it uses a static
|
|
array for all its dynamic memory allocation needs and never calls
|
|
malloc. Expect to see additional radical changes to the memory
|
|
allocation subsystem in future releases.
|
|
</blockquote><hr width="50%"><a name="2007_10_04"></a><h3>2007-10-04 - Version 3.5.1</h3><blockquote>
|
|
Fix a long-standing bug that might cause database corruption if a
|
|
disk-full error occurs in the middle of a transaction and that
|
|
transaction is not rolled back.
|
|
Ticket #2686.</p>
|
|
|
|
<p> The new VFS layer is stable. However, we still reserve the right to
|
|
make tweaks to the interface definition of the VFS if necessary.
|
|
</blockquote><hr width="50%"><a name="2007_09_04"></a><h3>2007-09-04 - Version 3.5.0 alpha</h3><blockquote>
|
|
The OS interface layer and the memory allocation subsystems in
|
|
SQLite have been reimplemented. The published API is largely unchanged
|
|
but the (unpublished) OS interface has been modified extensively.
|
|
Applications that implement their own OS interface will require
|
|
modification. See
|
|
<a href="34to35.html">34to35.html</a> for details.<p></p>
|
|
|
|
<p> This is a large change. Approximately 10% of the source code was
|
|
modified. We are calling this first release "alpha" in order to give
|
|
the user community time to test and evaluate the changes before we
|
|
freeze the new design.
|
|
</blockquote><hr width="50%"><a name="2007_08_13"></a><h3>2007-08-13 - Version 3.4.2</h3><blockquote>
|
|
While stress-testing the
|
|
<a href="c3ref/soft_heap_limit.html">soft_heap_limit</a>
|
|
feature, a bug that could lead to
|
|
database corruption was discovered and fixed.
|
|
Though the consequences of this bug are severe, the chances of hitting
|
|
it in a typical application are remote. Upgrading is recommended
|
|
only if you use the
|
|
<a href="c3ref/soft_heap_limit.html">sqlite3_soft_heap_limit</a>
|
|
interface.
|
|
</blockquote><hr width="50%"><a name="2007_07_20"></a><h3>2007-07-20 - Version 3.4.1</h3><blockquote>
|
|
This release fixes a bug in <a href="lang_vacuum.html">VACUUM</a> that
|
|
can lead to database corruption. The bug was introduced in version
|
|
<a href="changes.html#version_3_3_14">3.3.14</a>.
|
|
Upgrading is recommended for all users. Also included are a slew of
|
|
other more routine
|
|
<a href="changes.html#version_3_4_1">enhancements and bug fixes</a>.
|
|
</blockquote><hr width="50%"><a name="2007_06_18"></a><h3>2007-06-18 - Version 3.4.0</h3><blockquote>
|
|
This release fixes two separate bugs either of which
|
|
can lead to database corruption. Upgrading
|
|
is strongly recommended. If you must continue using an older version
|
|
of SQLite, please at least read about how to avoid these bugs
|
|
at CorruptionFollowingBusyError and ticket #2418
|
|
<p>
|
|
This release also adds explicit <a href="limits.html">limits</a> on the
|
|
sizes and quantities of things SQLite will handle. The new limits might
|
|
causes compatibility problems for existing applications that
|
|
use excessively large strings, BLOBs, tables, or SQL statements.
|
|
The new limits can be increased at compile-time to work around any problems
|
|
that arise. Nevertheless, the version number of this release is
|
|
3.4.0 instead of 3.3.18 in order to call attention to the possible
|
|
incompatibility.
|
|
</p>
|
|
There are also new features, including
|
|
<a href="c3ref/blob_open.html">incremental BLOB I/O</a> and
|
|
<a href="pragma.html#pragma_incremental_vacuum">incremental vacuum</a>.
|
|
See the <a href="changes.html#version_3_4_0">change log</a>
|
|
for additional information.
|
|
</blockquote><hr width="50%"><a name="2007_04_25"></a><h3>2007-04-25 - Version 3.3.17</h3><blockquote>
|
|
This version fixes a bug in the forwards-compatibility logic of SQLite
|
|
that was causing a database to become unreadable when it should have
|
|
been read-only. Upgrade from 3.3.16 only if you plan to deploy into
|
|
a product that might need to be upgraded in the future. For day to day
|
|
use, it probably does not matter.
|
|
</blockquote><hr width="50%"><a name="2007_04_18"></a><h3>2007-04-18 - Version 3.3.16</h3><blockquote>
|
|
Performance improvements added in 3.3.14 but mistakenly turned off
|
|
in 3.3.15 have been reinstated. A bug has been fixed that prevented
|
|
VACUUM from running if a NULL value was in a UNIQUE column.
|
|
</blockquote><hr width="50%"><a name="2007_04_09"></a><h3>2007-04-09 - Version 3.3.15</h3><blockquote>
|
|
An annoying bug introduced in 3.3.14 has been fixed. There are
|
|
also many enhancements to the test suite.
|
|
</blockquote><hr width="50%"><a name="2007_04_02"></a><h3>2007-04-02 - Version 3.3.14</h3><blockquote>
|
|
This version focuses on performance improvements. If you recompile
|
|
the amalgamation using GCC option -O3 (the precompiled binaries
|
|
use -O2) you may see performance
|
|
improvements of 35% or more over version 3.3.13 depending on your
|
|
workload. This version also
|
|
adds support for <a href="pragma.html#pragma_locking_mode">
|
|
exclusive access mode</a>.
|
|
</blockquote><hr width="50%"><a name="2007_02_13"></a><h3>2007-02-13 - Version 3.3.13</h3><blockquote>
|
|
This version fixes a subtle bug in the ORDER BY optimizer that can
|
|
occur when using joins. There are also a few minor enhancements.
|
|
Upgrading is recommended.
|
|
</blockquote><hr width="50%"><a name="2007_01_27"></a><h3>2007-01-27 - Version 3.3.12</h3><blockquote>
|
|
The first published build of the previous version used the wrong
|
|
set of source files. Consequently, many people downloaded a build
|
|
that was labeled as "3.3.11" but was really 3.3.10. Version 3.3.12
|
|
is released to clear up the ambiguity. A couple more bugs have
|
|
also been fixed and <a href="pragma.html#pragma_integrity_check">
|
|
PRAGMA integrity_check</a> has been enhanced.
|
|
</blockquote><hr width="50%"><a name="2007_01_22"></a><h3>2007-01-22 - Version 3.3.11</h3><blockquote>
|
|
Version 3.3.11 fixes for a few more problems in version 3.3.9 that
|
|
version 3.3.10 failed to catch. Upgrading is recommended.
|
|
</blockquote><hr width="50%"><a name="2007_01_09"></a><h3>2007-01-09 - Version 3.3.10</h3><blockquote>
|
|
Version 3.3.10 fixes several bugs that were introduced by the previous
|
|
release. Upgrading is recommended.
|
|
</blockquote><hr width="50%"><a name="2007_01_04"></a><h3>2007-01-04 - Version 3.3.9</h3><blockquote>
|
|
Version 3.3.9 fixes bugs that can lead to database corruption under
|
|
obscure and difficult to reproduce circumstances. See
|
|
DatabaseCorruption in the
|
|
wiki for details.
|
|
This release also adds the new
|
|
<a href="c3ref/prepare.html">sqlite3_prepare_v2()</a>
|
|
API and includes important bug fixes in the command-line
|
|
shell and enhancements to the query optimizer. Upgrading is
|
|
recommended.
|
|
</blockquote><hr width="50%"><a name="2006_10_09"></a><h3>2006-10-09 - Version 3.3.8</h3><blockquote>
|
|
Version 3.3.8 adds support for full-text search using the
|
|
FTS1 module. There are also minor bug fixes. Upgrade only if
|
|
you want to try out the new full-text search capabilities or if
|
|
you are having problems with 3.3.7.
|
|
</blockquote><hr width="50%"><a name="2006_08_12"></a><h3>2006-08-12 - Version 3.3.7</h3><blockquote>
|
|
Version 3.3.7 includes support for loadable extensions and virtual
|
|
tables. But both features are still considered "beta" and their
|
|
APIs are subject to change in a future release. This release is
|
|
mostly to make available the minor bug fixes that have accumulated
|
|
since 3.3.6. Upgrading is not necessary. Do so only if you encounter
|
|
one of the obscure bugs that have been fixed or if you want to try
|
|
out the new features.
|
|
</blockquote><hr width="50%"><a name="2006_06_19"></a><h3>2006-06-19 - New Book About SQLite</h3><blockquote>
|
|
<i><a href="http://www.apress.com/book/bookDisplay.html?bID=10130">The Definitive Guide to SQLite</a></i>,
|
|
a new book by
|
|
<a href="http://www.mikesclutter.com">Mike Owens</a>
|
|
is now available from <a href="http://www.apress.com">Apress</a>.
|
|
The books covers the latest SQLite internals as well as
|
|
the native C interface and bindings for PHP, Python,
|
|
Perl, Ruby, Tcl, and Java. Recommended.
|
|
</blockquote><hr width="50%"><a name="2006_06_6"></a><h3>2006-06-6 - Version 3.3.6</h3><blockquote>
|
|
Changes include improved tolerance for Windows virus scanners
|
|
and faster :memory: databases. There are also fixes for several
|
|
obscure bugs. Upgrade if you are having problems.
|
|
</blockquote><hr width="50%"><a name="2006_04_5"></a><h3>2006-04-5 - Version 3.3.5</h3><blockquote>
|
|
This release fixes many minor bugs and documentation typos and
|
|
provides some minor new features and performance enhancements.
|
|
Upgrade only if you are having problems or need one of the new features.
|
|
</blockquote><hr width="50%"><a name="2006_02_11"></a><h3>2006-02-11 - Version 3.3.4</h3><blockquote>
|
|
This release fixes several bugs, including a
|
|
blunder that might cause a deadlock on multithreaded systems.
|
|
Anyone using SQLite in a multithreaded environment should probably upgrade.
|
|
</blockquote><hr width="50%"><a name="2006_01_31"></a><h3>2006-01-31 - Version 3.3.3 stable</h3><blockquote>
|
|
There have been no major problems discovered in version 3.3.2, so
|
|
we hereby declare the new APIs and language features to be stable
|
|
and supported.
|
|
</blockquote><hr width="50%"><a name="2006_01_24"></a><h3>2006-01-24 - Version 3.3.2 beta</h3><blockquote>
|
|
More bug fixes and performance improvements as we move closer to
|
|
a production-ready version 3.3.x.
|
|
</blockquote><hr width="50%"><a name="2006_01_16"></a><h3>2006-01-16 - Version 3.3.1 alpha</h3><blockquote>
|
|
Many bugs found in last week's alpha release have now been fixed and
|
|
the library is running much faster again.</p>
|
|
|
|
<p> Database connections can now be moved between threads as long as the
|
|
connection holds no locks at the time it is moved. Thus the common
|
|
paradigm of maintaining a pool of database connections and handing
|
|
them off to transient worker threads is now supported.
|
|
Please help test this new feature.
|
|
See the MultiThreading wiki page for additional
|
|
information.
|
|
</blockquote><hr width="50%"><a name="2006_01_10"></a><h3>2006-01-10 - Version 3.3.0 alpha</h3><blockquote>
|
|
Version 3.3.0 adds support for CHECK constraints, DESC indices,
|
|
separate REAL and INTEGER column affinities, a new OS interface layer
|
|
design, and many other changes. The code passed a regression
|
|
test but should still be considered alpha. Please report any
|
|
problems.</p>
|
|
|
|
<p> The file format for version 3.3.0 has changed slightly to support
|
|
descending indices and
|
|
a more efficient encoding of boolean values. SQLite 3.3.0 will read and
|
|
write legacy databases created with any prior version of SQLite 3. But
|
|
databases created by version 3.3.0 will not be readable or writable
|
|
by earlier versions of the SQLite. The older file format can be
|
|
specified at compile-time for those rare cases where it is needed.
|
|
</blockquote><hr width="50%"><a name="2005_12_19"></a><h3>2005-12-19 - Versions 3.2.8 and 2.8.17</h3><blockquote>
|
|
These versions contain one-line changes to 3.2.7 and 2.8.16 to fix a bug
|
|
that has been present since March of 2002 and version 2.4.0.
|
|
That bug might possibly cause database corruption if a large INSERT or
|
|
UPDATE statement within a multi-statement transaction fails due to a
|
|
uniqueness constraint but the containing transaction commits.
|
|
</blockquote><hr width="50%"><a name="2005_09_24"></a><h3>2005-09-24 - Version 3.2.7</h3><blockquote>
|
|
This version fixes several minor and obscure bugs.
|
|
Upgrade only if you are having problems.
|
|
</blockquote><hr width="50%"><a name="2005_09_16"></a><h3>2005-09-16 - Version 3.2.6 - Critical Bug Fix</h3><blockquote>
|
|
This version fixes a bug that can result in database
|
|
corruption if a VACUUM of a 1 gigabyte or larger database fails
|
|
(perhaps do to running out of disk space or an unexpected power loss)
|
|
and is later rolled back.
|
|
<p>
|
|
Also in this release:
|
|
The ORDER BY and GROUP BY processing was rewritten to use less memory.
|
|
Support for COUNT(DISTINCT) was added. The LIKE operator can now be
|
|
used by the optimizer on columns with COLLATE NOCASE.
|
|
</blockquote><hr width="50%"><a name="2005_08_27"></a><h3>2005-08-27 - Version 3.2.5</h3><blockquote>
|
|
This release fixes a few more lingering bugs in the new code.
|
|
We expect that this release will be stable and ready for production use.
|
|
</blockquote><hr width="50%"><a name="2005_08_24"></a><h3>2005-08-24 - Version 3.2.4</h3><blockquote>
|
|
This release fixes a bug in the new optimizer that can lead to segfaults
|
|
when parsing very complex WHERE clauses.
|
|
</blockquote><hr width="50%"><a name="2005_08_21"></a><h3>2005-08-21 - Version 3.2.3</h3><blockquote>
|
|
This release adds the <a href="lang_analyze.html">ANALYZE</a> command,
|
|
the <a href="lang_expr.html">CAST</a> operator, and many
|
|
very substantial improvements to the query optimizer. See the
|
|
<a href="changes.html#version_3_2_3">change log</a> for additional
|
|
information.
|
|
</blockquote><hr width="50%"><a name="2005_08_02"></a><h3>2005-08-02 - 2005 Open Source Award for SQLite</h3><blockquote>
|
|
SQLite and its primary author D. Richard Hipp have been honored with
|
|
a <a href="http://osdir.com/Article6677.phtml">2005 Open Source Award</a>
|
|
from Google and O'Reilly.<br clear="right">
|
|
</blockquote><hr width="50%"><a name="2005_06_13"></a><h3>2005-06-13 - Version 3.2.2</h3><blockquote>
|
|
This release includes numerous minor bug fixes, speed improvements,
|
|
and code size reductions. There is no reason to upgrade unless you
|
|
are having problems or unless you just want to.
|
|
</blockquote><hr width="50%"><a name="2005_03_29"></a><h3>2005-03-29 - Version 3.2.1</h3><blockquote>
|
|
This release fixes a memory allocation problem in the new
|
|
<a href="lang_altertable.html">ALTER TABLE ADD COLUMN</a>
|
|
command.
|
|
</blockquote><hr width="50%"><a name="2005_03_21"></a><h3>2005-03-21 - Version 3.2.0</h3><blockquote>
|
|
The primary purpose for version 3.2.0 is to add support for
|
|
<a href="lang_altertable.html">ALTER TABLE ADD COLUMN</a>.
|
|
The new ADD COLUMN capability is made
|
|
possible by AOL developers supporting and embracing great
|
|
open-source software. Thanks, AOL!</p>
|
|
|
|
<p> Version 3.2.0 also fixes an obscure but serious bug that was discovered
|
|
just prior to release. If you have a multi-statement transaction and
|
|
within that transaction an UPDATE or INSERT statement fails due to a
|
|
constraint, then you try to rollback the whole transaction, the rollback
|
|
might not work correctly. See
|
|
Ticket #1171 for details. Upgrading is recommended for all users.
|
|
</blockquote><hr width="50%"><a name="2005_03_16"></a><h3>2005-03-16 - Version 3.1.6</h3><blockquote>
|
|
Version 3.1.6 fixes a critical bug that can cause database corruption
|
|
when inserting rows into tables with around 125 columns. This bug was
|
|
introduced in version 3.0.0. See
|
|
Ticket #1163 for additional information.
|
|
</blockquote><hr width="50%"><a name="2005_03_11"></a><h3>2005-03-11 - Versions 3.1.4 and 3.1.5 Released</h3><blockquote>
|
|
Version 3.1.4 fixes a critical bug that could cause database corruption
|
|
if the autovacuum mode of version 3.1.0 is turned on (it is off by
|
|
default) and a CREATE UNIQUE INDEX is executed within a transaction but
|
|
fails because the indexed columns are not unique. Anyone using the
|
|
autovacuum feature and unique indices should upgrade.</p>
|
|
|
|
<p> Version 3.1.5 adds the ability to disable
|
|
the F_FULLFSYNC ioctl() in OS-X by setting "PRAGMA synchronous=on" instead
|
|
of the default "PRAGMA synchronous=full". There was an attempt to add
|
|
this capability in 3.1.4 but it did not work due to a spelling error.
|
|
</blockquote><hr width="50%"><a name="2005_02_19"></a><h3>2005-02-19 - Version 3.1.3 Released</h3><blockquote>
|
|
Version 3.1.3 cleans up some minor issues discovered in version 3.1.2.
|
|
</blockquote><hr width="50%"><a name="2005_02_15"></a><h3>2005-02-15 - Versions 2.8.16 and 3.1.2 Released</h3><blockquote>
|
|
A critical bug in the VACUUM command that can lead to database
|
|
corruption has been fixed in both the 2.x branch and the main
|
|
3.x line. This bug has existed in all prior versions of SQLite.
|
|
Even though it is unlikely you will ever encounter this bug,
|
|
it is suggested that all users upgrade. See
|
|
ticket #1116 for additional information.</p>
|
|
|
|
<p> Version 3.1.2 is also the first stable release of the 3.1
|
|
series. SQLite 3.1 features added support for correlated
|
|
subqueries, autovacuum, autoincrement, ALTER TABLE, and
|
|
other enhancements. See the
|
|
<a href="http://www.sqlite.org/releasenotes310.html">release notes
|
|
for version 3.1.0</a> for a detailed description of the
|
|
changes available in the 3.1 series.
|
|
</blockquote><hr width="50%"><a name="2005_02_01"></a><h3>2005-02-01 - Version 3.1.1 (beta) Released</h3><blockquote>
|
|
Version 3.1.1 (beta) is now available on the
|
|
website. Version 3.1.1 is fully backwards compatible with the 3.0 series
|
|
and features many new features including Autovacuum and correlated
|
|
subqueries. The
|
|
<a href="http://www.sqlite.org/releasenotes310.html">release notes</a>
|
|
From version 3.1.0 apply equally to this release beta. A stable release
|
|
is expected within a couple of weeks.
|
|
</blockquote><hr width="50%"><a name="2005_01_21"></a><h3>2005-01-21 - Version 3.1.0 (alpha) Released</h3><blockquote>
|
|
Version 3.1.0 (alpha) is now available on the
|
|
website. Version 3.1.0 is fully backwards compatible with the 3.0 series
|
|
and features many new features including Autovacuum and correlated
|
|
subqueries. See the
|
|
<a href="http://www.sqlite.org/releasenotes310.html">release notes</a>
|
|
for details.</p>
|
|
|
|
<p> This is an alpha release. A beta release is expected in about a week
|
|
with the first stable release to follow after two more weeks.
|
|
</blockquote><hr width="50%"><a name="2004_11_09"></a><h3>2004-11-09 - SQLite at the 2004 International PHP Conference</h3><blockquote>
|
|
There was a talk on the architecture of SQLite and how to optimize
|
|
SQLite queries at the 2004 International PHP Conference in Frankfurt,
|
|
Germany.
|
|
<a href="http://www.sqlite.org/php2004/page-001.html">
|
|
Slides</a> from that talk are available.
|
|
</blockquote><hr width="50%"><a name="2004_10_11"></a><h3>2004-10-11 - Version 3.0.8</h3><blockquote>
|
|
Version 3.0.8 of SQLite contains several code optimizations and minor
|
|
bug fixes and adds support for DEFERRED, IMMEDIATE, and EXCLUSIVE
|
|
transactions. This is an incremental release. There is no reason
|
|
to upgrade from version 3.0.7 if that version is working for you.
|
|
</blockquote><hr width="50%"><a name="2004_10_10"></a><h3>2004-10-10 - SQLite at the 11<sup><small>th</small></sup>
|
|
Annual Tcl/Tk Conference</h3><blockquote>
|
|
There will be a talk on the use of SQLite in Tcl/Tk at the
|
|
11<sup><small>th</small></sup> Tcl/Tk Conference this week in
|
|
New Orleans. Visit <a href="http://www.tcl-lang.org/community/tcl2004/">http://www.tcl-lang.org/community/tcl2004/</a>
|
|
for details.
|
|
<a href="http://www.sqlite.org/tclconf2004/page-001.html">
|
|
Slides</a> from the talk are available.
|
|
</blockquote><hr width="50%"><a name="2004_09_18"></a><h3>2004-09-18 - Version 3.0.7</h3><blockquote>
|
|
Version 3.0 has now been in use by multiple projects for several
|
|
months with no major difficulties. We consider it stable and
|
|
ready for production use.
|
|
</blockquote><hr width="50%"><a name="2004_09_02"></a><h3>2004-09-02 - Version 3.0.6 (beta)</h3><blockquote>
|
|
Because of some important changes to sqlite3_step(),
|
|
we have decided to
|
|
do an additional beta release prior to the first "stable" release.
|
|
If no serious problems are discovered in this version, we will
|
|
release version 3.0 "stable" in about a week.
|
|
</blockquote><hr width="50%"><a name="2004_08_29"></a><h3>2004-08-29 - Version 3.0.5 (beta)</h3><blockquote>
|
|
The fourth beta release of SQLite version 3.0 is now available.
|
|
The next release is expected to be called "stable".
|
|
</blockquote><hr width="50%"><a name="2004_08_08"></a><h3>2004-08-08 - Version 3.0.4 (beta)</h3><blockquote>
|
|
The third beta release of SQLite version 3.0 is now available.
|
|
This new beta fixes several bugs including a database corruption
|
|
problem that can occur when doing a DELETE while a SELECT is pending.
|
|
Expect at least one more beta before version 3.0 goes final.
|
|
</blockquote><hr width="50%"><a name="2004_07_22"></a><h3>2004-07-22 - Version 3.0.3 (beta)</h3><blockquote>
|
|
The second beta release of SQLite version 3.0 is now available.
|
|
This new beta fixes many bugs and adds support for databases with
|
|
varying page sizes. The next 3.0 release will probably be called
|
|
a final or stable release.</p>
|
|
|
|
<p> Version 3.0 adds support for internationalization and a new
|
|
more compact file format.
|
|
<a href="version3.html">Details.</a>
|
|
The API and file format have been fixed since 3.0.2. All
|
|
regression tests pass (over 100000 tests) and the test suite
|
|
exercises over 95% of the code.</p>
|
|
|
|
<p> SQLite version 3.0 is made possible in part by AOL
|
|
developers supporting and embracing great Open-Source Software.
|
|
</blockquote><hr width="50%"><a name="2004_07_22"></a><h3>2004-07-22 - Version 2.8.15</h3><blockquote>
|
|
SQLite version 2.8.15 is a maintenance release for the version 2.8
|
|
series. Version 2.8 continues to be maintained with bug fixes, but
|
|
no new features will be added to version 2.8. All the changes in
|
|
this release are minor. If you are not having problems, there is
|
|
there is no reason to upgrade.
|
|
</blockquote><hr width="50%"><a name="2004_06_30"></a><h3>2004-06-30 - Version 3.0.2 (beta) Released</h3><blockquote>
|
|
The first beta release of SQLite version 3.0 is now available.
|
|
Version 3.0 adds support for internationalization and a new
|
|
more compact file format.
|
|
<a href="version3.html">Details.</a>
|
|
As of this release, the API and file format are frozen. All
|
|
regression tests pass (over 100000 tests) and the test suite
|
|
exercises over 95% of the code.</p>
|
|
|
|
<p> SQLite version 3.0 is made possible in part by AOL
|
|
developers supporting and embracing great Open-Source Software.
|
|
</blockquote><hr width="50%"><a name="2004_06_25"></a><h3>2004-06-25 - Website hacked</h3><blockquote>
|
|
The www.sqlite.org website was hacked sometime around 2004-06-22
|
|
because the lead SQLite developer failed to properly patch CVS.
|
|
Evidence suggests that the attacker was unable to elevate privileges
|
|
above user "cvs". Nevertheless, as a precaution the entire website
|
|
has been reconstructed from scratch on a fresh machine. All services
|
|
should be back to normal as of 2004-06-28.
|
|
</blockquote><hr width="50%"><a name="2004_06_18"></a><h3>2004-06-18 - Version 3.0.0 (alpha) Released</h3><blockquote>
|
|
The first alpha release of SQLite version 3.0 is available for
|
|
public review and comment. Version 3.0 enhances internationalization support
|
|
through the use of UTF-16 and user-defined text collating sequences.
|
|
BLOBs can now be stored directly, without encoding.
|
|
A new file format results in databases that are 25% smaller (depending
|
|
on content). The code is also a little faster. In spite of the many
|
|
new features, the library footprint is still less than 240KB
|
|
(x86, gcc -O1).
|
|
<a href="version3.html">Additional information</a>.</p>
|
|
|
|
<p> Our intent is to freeze the file format and API on 2004-07-01.
|
|
Users are encouraged to review and evaluate this alpha release carefully
|
|
and submit any feedback prior to that date.</p>
|
|
|
|
<p> The 2.8 series of SQLite will continue to be supported with bug
|
|
fixes for the foreseeable future.
|
|
</blockquote><hr width="50%"><a name="2004_06_09"></a><h3>2004-06-09 - Version 2.8.14 Released</h3><blockquote>
|
|
SQLite version 2.8.14 is a patch release to the stable 2.8 series.
|
|
There is no reason to upgrade if 2.8.13 is working ok for you.
|
|
This is only a bug-fix release. Most development effort is
|
|
going into version 3.0.0 which is due out soon.
|
|
</blockquote><hr width="50%"><a name="2004_05_31"></a><h3>2004-05-31 - CVS Access Temporarily Disabled</h3><blockquote>
|
|
Anonymous access to the CVS repository will be suspended
|
|
for 2 weeks beginning on 2004-06-04. Everyone will still
|
|
be able to download
|
|
prepackaged source bundles, create or modify trouble tickets, or view
|
|
change logs during the CVS service interruption. Full open access to the
|
|
CVS repository will be restored on 2004-06-18.
|
|
</blockquote><hr width="50%"><a name="2004_04_23"></a><h3>2004-04-23 - Work Begins On SQLite Version 3</h3><blockquote>
|
|
Work has begun on version 3 of SQLite. Version 3 is a major
|
|
changes to both the C-language API and the underlying file format
|
|
that will enable SQLite to better support internationalization.
|
|
The first beta is schedule for release on 2004-07-01.</p>
|
|
|
|
<p> Plans are to continue to support SQLite version 2.8 with
|
|
bug fixes. But all new development will occur in version 3.0.
|
|
</blockquote><hr width="50%">
|
|
|