diff options
Diffstat (limited to 'www/news.html')
-rw-r--r-- | www/news.html | 748 |
1 files changed, 748 insertions, 0 deletions
diff --git a/www/news.html b/www/news.html new file mode 100644 index 0000000..97b4071 --- /dev/null +++ b/www/news.html @@ -0,0 +1,748 @@ +<!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>Recent SQLite 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; +} +var antiRobot = 0; +function antiRobotGo(){ +if( antiRobot!=3 ) return; +antiRobot = 7; +var j = document.getElementById("mtimelink"); +if(j && j.hasAttribute("data-href")) j.href=j.getAttribute("data-href"); +} +function antiRobotDefense(){ +document.body.onmousedown=function(){ +antiRobot |= 2; +antiRobotGo(); +document.body.onmousedown=null; +} +document.body.onmousemove=function(){ +antiRobot |= 2; +antiRobotGo(); +document.body.onmousemove=null; +} +setTimeout(function(){ +antiRobot |= 1; +antiRobotGo(); +}, 100) +antiRobotGo(); +} +antiRobotDefense(); +</script> + + +<h2>Recent News</h2> + +<a name="2022_12_28"></a><h3>2022-12-28 - <a href="releaselog/3_40_1.html">Version 3.40.1</a></h3><blockquote> +Version 3.40.1 is a patch release that fixes some obscure problems +in version 3.40.0. The problems fixed have no impact on most applications. +Upgrading is only necessary if you encounter problems. +<p> +The two most important fixes are these: +<ul> +<li><p> +Fix the <a href="cli.html#safemode">--safe command-line option</a> on the <a href="cli.html">CLI</a> so that it +correctly disallows functions with side-effects. This is a bug +in the CLI — <i>not</i> a bug in the +SQLite library — and it only affects the --safe command-line +option, making that option less than fully "safe". As the number +of systems that use the --safe command-line option in the CLI is +approximately zero, this is not considered an important bug. However, +a third-party wrote a CVE against it which caused considerable angst +among maintainers, so it seems good to get the fix into circulation +sooner rather than wait on the next major release. +<li><p> +The optional <a href="malloc.html#memsys5">memsys5</a> memory allocator picked up a bug that might +put it into an infinite loop for very large (500MiB) allocations. +Almost all systems use their native memory allocator, not memsys5. +Memsys5 is only used if SQLite is compiled using SQLITE_ENABLE_MEMSYS5 +and then initialized using <a href="c3ref/config.html">sqlite3_config</a>(<a href="c3ref/c_config_covering_index_scan.html#sqliteconfigheap">SQLITE_CONFIG_HEAP</a>). +Very, very few systems do this, and so the problem is not considered +to be serious. +</ul> +<p> +See the <a href="https://sqlite.org/src/timeline?r=branch-3.40">branch-3.40 timeline</a> +for a complete listing of changes that have gone into this patch release. +</blockquote><hr width="50%"><a name="2022_11_16"></a><h3>2022-11-16 - <a href="releaselog/3_40_0.html">Version 3.40.0</a></h3><blockquote> +Version 3.40.0 is a new feature release of SQLite. See the +<a href="releaselog/3_40_0.html">change log</a> for details. +Key enhancements in this release include: +<ol> +<li><p> +Official support for compiling +<a href="https://sqlite.org/wasm/doc/trunk/index.md">SQLite to WASM</a> +and running it in a web browser. +<li><p> +New and improved <a href="recovery.html">recovery extension</a> for extracting +data from corrupted database files. +</ol> +<p> +This release also includes performance enhancements and +improvements to the query planner. +<p> +A psychological milestone: The performance benchmark that +the SQLite developers have used for many years has for +the first time dropped below 1 billion CPU cycles +(measured using cachegrind) when run in <a href="wal.html">WAL mode</a>. +This is less than half the number of CPU cycles used as +recently as 8 years ago. (The graph below shows SQLite using +a <a href="lockingv3.html#rollback">rollback journal</a> which uses fewer CPU cycles at the expense +of extra I/O. The benchmark passed through the 1 billion cycle +barrier for rollback journals for the previous release.) +<p align="center"> +<img src="images/sschart20221116.jpg" align="center" style="margin:1px solid grey;"></img> +</p> +</blockquote><hr width="50%"><a name="2022_09_29"></a><h3>2022-09-29 - <a href="releaselog/3_39_4.html">Version 3.39.4</a></h3><blockquote> +Version 3.39.4 is a security release that addresses a single +long-standing problem in the <a href="fts3.html">FTS3 extension</a>. An attacker +who is able to execute arbitrary SQL statements and who can create +a corrupt database that is 2GB or larger in size might be able to trick +FTS3 into overflowing an integer used to size a memory allocation, +causing the allocation to be too small and ultimately resulting in +a buffer overrun. The release also includes fixes for other +obscure weaknesses, as described in the release notes. +</blockquote><hr width="50%"><a name="2022_09_05"></a><h3>2022-09-05 - <a href="releaselog/3_39_3.html">Version 3.39.3</a></h3><blockquote> +Version 3.39.3 is a patch release that fixes a few obscure problems +in the 3.39.0 release. See the release notes for details. +</blockquote><hr width="50%"><a name="2022_07_21"></a><h3>2022-07-21 - <a href="releaselog/3_39_2.html">Version 3.39.2</a></h3><blockquote> +Version 3.39.2 is a security release that addresses multiple long-standing +issues in SQLite. The most severe problem is identified by CVE-2022-35737. +That issue is associated with the auxiliary C-language APIs +of SQLite and cannot be reached using SQL or database inputs, and hence is +unlikely to affect your application. Nevertheless, upgrading is recommended. +The other issues are comparatively minor. +This release also fixes a performance regression that appeared in version +3.39.0 that might affect some multi-way joins that use LEFT JOIN. +</blockquote><hr width="50%"><a name="2022_07_13"></a><h3>2022-07-13 - <a href="releaselog/3_39_1.html">Version 3.39.1</a></h3><blockquote> +Version 3.39.1 is a patch release that fixes a few minor problem in version +3.39.0. Upgrading is optional. +</blockquote><hr width="50%"><a name="2022_06_25"></a><h3>2022-06-25 - <a href="releaselog/3_39_0.html">Version 3.39.0</a></h3><blockquote> +Version 3.39.0 is regular maintenance release of SQLite. The key enhancement +in this release is added support for RIGHT and FULL JOIN. There are other +language and performance enhancements as well — see the +<a href="releaselog/3_39_0.html">release notes</a> for details. +</blockquote><hr width="50%"><a name="2022_05_06"></a><h3>2022-05-06 - <a href="releaselog/3_38_5.html">Version 3.38.5</a></h3><blockquote> +The 3.38.4 patch release included a minor change to the <a href="cli.html">CLI</a> source code +that did not work. The release manager only ran a subset of the normal +release tests, and hence did not catch the problem. As a result, the CLI +will segfault when using columnar output modes in version 3.38.4. This +blunder did not affect the core SQLite library. It only affected the CLI. +<p> +Take-away lesson: <b>Always</b> run <b>all</b> of your tests prior to +a release - even a trival patch release. <b>Always</b>. +<p> +The 3.38.5 patch release fixes the 3.38.4 blunder. +</blockquote><hr width="50%"><a name="2022_05_04"></a><h3>2022-05-04 - <a href="releaselog/3_38_4.html">Version 3.38.4</a></h3><blockquote> +Another user-discovered problem in the new Bloom filter optimization +is fixed in this patch release. Without the fix, it is possible for +a multi-way join that uses a Bloom filters for two or more tables in +the join to enter an infinite loop if the key constraint on one of those +tables contains a NULL value. +</blockquote><hr width="50%"><a name="2022_04_27"></a><h3>2022-04-27 - <a href="releaselog/3_38_3.html">Version 3.38.3</a></h3><blockquote> +Version 3.38.3 fixes a bug in the automatic-index and Bloom filter +construction logic that might cause SQLite to be overly aggressive +in the use of ON clause constraints, resulting in a incorret +automatic-index or Bloom filter that excludes some valid rows from +output. The bug was introduced in version 3.38.0. Other minor +changes were tossed in to complete the patch. +</blockquote><hr width="50%"><a name="2022_03_26"></a><h3>2022-03-26 - <a href="releaselog/3_38_2.html">Version 3.38.2</a></h3><blockquote> +Version 3.38.2 fixes another bug in the new Bloom filter +optimization that might cause incorrect answers for a +LEFT JOIN that has an IS NULL constraint on the right-hand +table. +</blockquote><hr width="50%"><a name="2022_03_12"></a><h3>2022-03-12 - <a href="releaselog/3_38_1.html">Version 3.38.1</a></h3><blockquote> +Version 3.38.1 fixes a pair of bugs in the Bloom filter +optimization that was introduced in version 3.38.0. These +bugs might cause incorrect answers for some obscure queries. +Various other minor problems and documentation typos were +fixed at the same time. +</blockquote><hr width="50%"><a name="2022_02_22"></a><h3>2022-02-22 - <a href="releaselog/3_38_0.html">Version 3.38.0</a></h3><blockquote> +Version 3.38.0 is a routine maintenance release of +SQLite. There are various minor enhancements and +about a 0.5% reduction in the number of CPU cycles +used. See the +<a href="releaselog/3_38_0.html">release notes</a> for +more detail. +</blockquote><hr width="50%"><a name="2022_01_06"></a><h3>2022-01-06 - <a href="releaselog/3_37_2.html">Version 3.37.2</a></h3><blockquote> +Version 3.37.2 fixes a +<a href="howtocorrupt.html#svptbug">database corruption bug</a>. You are +encouraged to upgrade, especially if you are using <a href="lang_savepoint.html">SAVEPOINT</a>.</p> + +<p>The problem first appeared in version 3.35.0 (2021-03-12) and +affects all subsequent releases through 3.37.1. +If temporary files are store in memory (which is not the default +behavior, but is sometimes selected by applications using either +<a href="compile.html#temp_store">-DSQLITE_TEMP_STORE</a> or <a href="pragma.html#pragma_temp_store">PRAGMA temp_store</a>) and +if a <a href="lang_savepoint.html">SAVEPOINT</a> is rolled back and then subsequent changes +within the same transaction are committed, the database file might +(with low but non-zero probability) go corrupt. +</blockquote><hr width="50%"><a name="2021_12_30"></a><h3>2021-12-30 - <a href="releaselog/3_37_1.html">Version 3.37.1</a></h3><blockquote> +Version 3.37.1 fixes a bug in the <a href="lang_upsert.html">UPSERT</a> logic, introduced by +the UPSERT enhancements of <a href="releaselog/3_35_0.html">version 3.35.0</a>, that can cause +incorrect byte-code to be generated in some cases, resulting +in an infinite loop in the byte code, or a NULL-pointer dereference. +This patch release also fixes some other minor problems with +assert() statements and in the <a href="cli.html">CLI</a>. +</blockquote><hr width="50%"><a name="2021_11_27"></a><h3>2021-11-27 - <a href="releaselog/3_37_0.html">Version 3.37.0</a></h3><blockquote> +Version 3.37.0 is a routine maintenance release of SQLite. +The biggest new feature in this release is support for +<a href="stricttables.html">STRICT tables</a>. Other enhancements are described in +the <a href="releaselog/3_37_0.html">release notes</a>. +</blockquote><hr width="50%"><a name="2021_06_18"></a><h3>2021-06-18 - <a href="releaselog/3_36_0.html">Version 3.36.0</a></h3><blockquote> +Version 3.36.0 is a routine maintenance release of SQLite. +There are no new major features, only incremental improvements +to existing features and small performance improvements. +</blockquote><hr width="50%"><a name="2021_04_19"></a><h3>2021-04-19 - Patch release 3.35.5</h3><blockquote> +The new ALTER TABLE DROP COLUMN capability that was added +in the 3.35.0 release contained a bug that might cause the +table content to go corrupt when the table was rewritten +to remove the dropped column. Fixed by this patch. +</blockquote><hr width="50%"><a name="2021_04_02"></a><h3>2021-04-02 - Patch release 3.35.4</h3><blockquote> +Version 3.35.4 is yet another patch release to fix +obscure problems in features associated with the 3.35.0. +</blockquote><hr width="50%"><a name="2021_03_26"></a><h3>2021-03-26 - Patch release 3.35.3</h3><blockquote> +Version 3.35.3 contains patches for a handful of minor +problems discovered in prior releases. +</blockquote><hr width="50%"><a name="2021_03_17"></a><h3>2021-03-17 - Patch release 3.35.2</h3><blockquote> +Version 3.35.2 is a small patch release to fix some minor problems +that were discovered shortly after the 3.35.1 release. +</blockquote><hr width="50%"><a name="2021_03_15"></a><h3>2021-03-15 - Patch release 3.35.1</h3><blockquote> +A user discovered an issue with the new DROP COLUMN capability +in version 3.35.0, and so version 3.35.1 was created to fix it. +No need to upgrade if you are not using DROP COLUMN. +</blockquote><hr width="50%"><a name="2021_03_12"></a><h3>2021-03-12 - Release 3.35.0</h3><blockquote> +SQLite version 3.35.0 is a routine maintenance release. This +release adds a number of new language features, including +support for ALTER TABLE DROP COLUMN, built-in math functions, +generalized UPSERT, and the MATERIALIZED hint on common table +expressions. There are also query planner optimizations and +incremental CLI improvements. +</blockquote><hr width="50%"><a name="2020_01_20"></a><h3>2020-01-20 - Release 3.34.1</h3><blockquote> +SQLite version 3.34.1 is a patch releases that fixes a possible +use-after-free bug that can be provoked by malicious SQL. Other +minor issues in extensions and documentation are also fixed. +</blockquote><hr width="50%"><a name="2020_12_01"></a><h3>2020-12-01 - Release 3.34.0</h3><blockquote> +SQLite version 3.34.0 is a routine maintenance release. This +release adds incremental improvements to performance and features, +including enhancements to the query planner, multiple recursive +SELECTS in recursive common table expressions, and better error messages +from CHECK constraint failures. See the change log for details. +</blockquote><hr width="50%"><a name="2020_08_14"></a><h3>2020-08-14 - Release 3.33.0</h3><blockquote> +SQLite version 3.33.0 is a routine maintenance release. This +release features added support for "UPDATE FROM" following the +PostgreSQL syntax, and a doubling of the maximum database size +to 281 TB, as well as many other improvements. See the change +log for details. +</blockquote><hr width="50%"><a name="2020_06_18"></a><h3>2020-06-18 - Release 3.32.3</h3><blockquote> +The 3.32.3 release is a patch release that contains fixes for +various issues discovered by fuzzers. None of the issues fixed +are likely to be encountered by applications that use SQLite in +ordinary ways, though upgrading never hurts. +<p> +Map of all changes since the 3.32.0 release: +<a href="https://www.sqlite.org/src/timeline?p=version-3.32.3&bt=version-3.32.0">https://www.sqlite.org/src/timeline?p=version-3.32.3&bt=version-3.32.0</a> +</blockquote><hr width="50%"><a name="2020_06_04"></a><h3>2020-06-04 - Release 3.32.2</h3><blockquote> +The 3.32.2 release is a one-line change relative to 3.32.1 +that fixes a long-standing bug in the COMMIT command. Since +<a href="releaselog/3_17_0.html">version 3.17.0</a>, if you were to retry a COMMIT command over +and over after it returns <a href="rescode.html#busy">SQLITE_BUSY</a>, it might eventually +report success, even though it was still blocked. This patch +fixes the problem. +</blockquote><hr width="50%"><a name="2020_05_25"></a><h3>2020-05-25 - Release 3.32.1</h3><blockquote> +<a href="https://en.wikipedia.org/wiki/Grey_hat">Grey-hats</a> published +information about two SQLite bugs approximately 24 hours after +the release of version 3.32.0. These bugs enable maliciously +crafted SQL to crash the process that is running SQLite. Both +bugs are long-standing problems that affect releases prior to +3.32.0. The 3.32.1 release fixes both problems. +</blockquote><hr width="50%"><a name="2020_05_22"></a><h3>2020-05-22 - Release 3.32.0</h3><blockquote> +Version 3.32.0 is an ordinary maintenance release of SQLite. +This release features the ability to run an +<a href="lang_analyze.html#approx">approximate ANALYZE</a> to gather database statistics for +use by the query planner, without having to scan every row +of every index. +See the <a href="releaselog/3_32_0.html">change log</a> for additional enhancements +and improvements. +</blockquote><hr width="50%"><a name="2020_01_27"></a><h3>2020-01-27 - Release 3.31.1</h3><blockquote> +Applications that use SQLite should only interface with SQLite +through the officially published APIs. Applications should not +depend upon or use the internal data structures of SQLite as those +structures might change from one release to another. However, there +is a popular application that does depend on the details of the +internal layout of data in an internal SQLite data structure, and +those details changed in version 3.31.0, breaking the application. +This is, technically, a bug in the application, not in SQLite. +But it is within the power of SQLite to fix it, by reverting the +internal data structure change, and so that is what we have done +for the 3.31.1 release. +</blockquote><hr width="50%"><a name="2020_01_22"></a><h3>2020-01-22 - Release 3.31.0</h3><blockquote> +Version 3.31.0 is an ordinary maintenance release of SQLite. +This release features the ability to define +<a href="gencol.html">generated columns</a> for tables as well as many other enhancements. +See the <a href="releaselog/3_31_0.html">change log</a> for additional information. +</blockquote><hr width="50%"><a name="2019_10_11"></a><h3>2019-10-11 - Release 3.30.1</h3><blockquote> +Version 3.30.1 is a bug-fix release that addresses a problem +that can occur when an aggregate function in a nested query +makes use of the new FILTER clause capability. Some addition +patches for various obscure issues are also included, for +completeness. +</blockquote><hr width="50%"><a name="2019_10_04"></a><h3>2019-10-04 - Release 3.30.0</h3><blockquote> +Version 3.30.0 is a regularly scheduled maintenance release +of SQLite containing miscellaneous performance and feature +enhancements. This release adds support fo the NULLS FIRST +and NULLS LAST clauses on ORDER BY statements and the +addition of FILTER clauses on all aggregate functions. +See the <a href="releaselog/3_30_0.html">change log</a> for details. +</blockquote><hr width="50%"><a name="2019_07_10"></a><h3>2019-07-10 - Release 3.29.0</h3><blockquote> +Version 3.29.0 is a regularly scheduled maintenance release +of SQLite containing miscellaneous performance and feature +enhancements. See the <a href="releaselog/3_29_0.html">change log</a> for +details. +<p> +Beginning with this release, the +<a href="quirks.html#dblquote">double-quoted string literal</a> misfeature is deprecated. +The misfeature is still enabled by default, for legacy +compatibility, however developers are encouraged to +disable it at compile-time using the +<a href="compile.html#dqs">-DSQLITE_DQS=0</a> option, or at run-time using +the <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigdqsdml">SQLITE_DBCONFIG_DQS_DML</a> and <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigdqsddl">SQLITE_DBCONFIG_DQS_DDL</a> +actions to the <a href="c3ref/db_config.html">sqlite3_db_config()</a> interface. This is +especially true for double-quoted string literals in +CREATE TABLE and CREATE INDEX statements, as those elements +can cause unexpected problems following an ALTER TABLE. +See ticket <a href="https://www.sqlite.org/src/info/9b78184be266fd70">9b78184be266fd70</a> +for an example. +</blockquote><hr width="50%"><a name="2019_04_16"></a><h3>2019-04-16 - Release 3.28.0</h3><blockquote> +Version 3.28.0 is a regularly scheduled maintenance release +of SQLite containing miscellaneous performance and feature +enhancements. See the <a href="releaselog/3_28_0.html">change log</a> for +details. +<p> +This release fixes an obscure security issue. Applications +using older versions of SQLite may be vulnerable if +<ol> +<li> SQLite is compiled with certain optional extensions + enabled, and +<li> the attacker is able to inject arbitrary SQL. +</ol> +We are not aware of any applications that are vulnerable to +this problem. On the other hand, we do not know about +every application that uses SQLite. +If your application allows unauthenticated users on the internet +(and hence potential attackers) to run arbitrary SQL and if +you build SQLite with any of the optional extensions enabled, +then you should take this upgrade at your earliest opportunity. +<p> +For further information about improving SQLite's robustness +in internet-facing applications, see the our +<a href="security.html">security recommendations</a>. +</blockquote><hr width="50%"><a name="2019_02_25"></a><h3>2019-02-25 - Release 3.27.2</h3><blockquote> +Version 3.27.2 is a patch release that +fixes a two bugs and various documentation +errors found in the version 3.27.1. The +changes from version 3.27.1 and 3.27.0 are +minimal. +</blockquote><hr width="50%"><a name="2019_02_08"></a><h3>2019-02-08 - Release 3.27.1</h3><blockquote> +After release 3.27.0 was tagged, but before the build could +be completed and uploaded, a +<a href="https://www.sqlite.org/src/info/4e8e4857d32d401f">long-standing bug</a> +in the query optimizer was reported via System.Data.SQLite. +Since people will be upgrading anyhow, we decided +publish the fix for this newly discovered problems right +away. Hence, 3.27.1 was released less than 24 hours after +3.27.0. +<p> +It would have been better if the query optimizer bug had come to +our attention one day earlier, so that we could have incorporated +a fix into 3.27.0, but sometimes that's the way things go. +</blockquote><hr width="50%"><a name="2019_02_07"></a><h3>2019-02-07 - Release 3.27.0</h3><blockquote> +SQLite <a href="releaselog/3_27_0.html">version 3.27.0</a> is a routine maintenance release with various +performance and feature enhancements. See the +<a href="releaselog/3_27_0.html">release notes</a> for details. +</blockquote><hr width="50%"><a name="2018_12_01"></a><h3>2018-12-01 - Release 3.26.0</h3><blockquote> +SQLite <a href="releaselog/3_26_0.html">version 3.26.0</a> is a routine maintenance release with various +performance and feature enhancements. See the +<a href="releaselog/3_26_0.html">release notes</a> for details. +</blockquote><hr width="50%"><a name="2018_11_05"></a><h3>2018-11-05 - Release 3.25.3</h3><blockquote> +SQLite <a href="releaselog/3_25_3.html">version 3.25.3</a> is a third patch against 3.25.0 that fixes various +problems that have come to light and which seem serious enough to +justify a patch. +</blockquote><hr width="50%"><a name="2018_09_25"></a><h3>2018-09-25 - Release 3.25.2</h3><blockquote> +SQLite <a href="releaselog/3_25_2.html">version 3.25.2</a> is another patch against 3.25.0 that fixes still +more problems associated with the new <a href="windowfunctions.html">window function</a> feature and the +<a href="lang_altertable.html">ALTER TABLE</a> enhancements. Of particular note is the new +<a href="pragma.html#pragma_legacy_alter_table">PRAGMA legacy_alter_table=ON</a> command, which causes the ALTER TABLE RENAME +command to behave in the same goofy way that it did before the enhancements +found in version 3.25.0 → references to renamed tables that are inside +the bodies of triggers and views are not updated. The legacy behavior is +arguably a bug, but some programs depend on the older buggy behavior. The +3.25.2 release also contains a fix to <a href="windowfunctions.html">window function</a> processing for +VIEWs. There also a slew of other minor fixes that affect obscure +compile-time options. See the +<a href="https://sqlite.org/src/timeline?r=branch-3.25">Fossil Timeline</a> for +details. +</blockquote><hr width="50%"><a name="2018_09_18"></a><h3>2018-09-18 - Release 3.25.1</h3><blockquote> +SQLite <a href="releaselog/3_25_1.html">version 3.25.1</a> is a patch against version 3.25.0 that contains +two one-line fixes for bug that were introduced in version 3.25.0. +See the change log for details. Upgrading from 3.25.0 is recommended. +</blockquote><hr width="50%"><a name="2018_09_15"></a><h3>2018-09-15 - Release 3.25.0</h3><blockquote> +SQLite <a href="releaselog/3_25_0.html">version 3.25.0</a> is a regularly scheduled maintenance release. +Two big enhancements in this release: +<ol> +<li><p> +Support for <a href="windowfunctions.html">window functions</a> was added, using the PostgreSQL documentation +as the baseline. +<li><p> +The <a href="lang_altertable.html">ALTER TABLE</a> command was enhanced to support renaming of columns, and +so that column and table renames are propagated into trigger bodies and views. +</ol> +<p>In addition, there are various performance enhancements and minor fixes. +<p>One bug of note is +<a href="https://www.sqlite.org/src/info/9936b2fa443fec03ff25">ticket 9936b2fa443fec</a> +which describes a hard-to-reach condition where the ORDER BY LIMIT +optimization might cause an infinite loop during query evaluation. +This ticket raised a lot of +concern on +<a href="https://news.ycombinator.com/item?id=17964243">HackerNews</a> and +<a href="https://www.reddit.com/r/programming/comments/9ezy8c/serious_bug_causing_infinite_loop_in_some_queries/">Reddit</a>, +probably due to my choice of the ticket +title. "Infinite Loop" sounds scary. But I argue that the bug isn't really +all that bad in that it is very difficult to reach, will show up during +testing (rather than magically appearing after a product is +deployed), does not cause any data loss, and does not return an +incorrect result. It was an important error, but not nearly as dire +as many people interpreted it to be. And, in any event, it is fixed now. +</blockquote><hr width="50%"><a name="2018_06_04"></a><h3>2018-06-04 - Release 3.24.0</h3><blockquote> +SQLite <a href="releaselog/3_24_0.html">version 3.24.0</a> is a regularly scheduled maintenance release. +Highlights of this release include support for PostgreSQL-style +UPSERT and improved performance, especially for ORDER BY LIMIT queries. +</blockquote><hr width="50%"><a name="2018_04_10"></a><h3>2018-04-10 - Release 3.23.1</h3><blockquote> +The <a href="releaselog/3_23_1.html">version 3.23.1</a> release fixes a bug in the new +<a href="optoverview.html#leftjoinreduction">LEFT JOIN strength reduction optimization</a> added to version 3.23.0. +A few other minor and obscure fixes were also inserted, as well as +a small performance optimization. Code changes relative to +version 3.23.0 are minimal. +</blockquote><hr width="50%"><a name="2018_04_02"></a><h3>2018-04-02 - Release 3.23.0</h3><blockquote> +The <a href="releaselog/3_23_0.html">version 3.23.0</a> release is a regularly scheduled maintenance release. +See the <a href="releaselog/3_23_0.html">change log</a> for a list of enhancements and bug +fixes. +</blockquote><hr width="50%"><a name="2018_01_22"></a><h3>2018-01-22 - Release 3.22.0</h3><blockquote> +The <a href="releaselog/3_22_0.html">version 3.22.0</a> release is a regularly scheduled maintenance release. +There are many minor, though interesting, enhancements in this release. +See the <a href="releaselog/3_22_0.html">change log</a> for details. +</blockquote><hr width="50%"><a name="2017_10_24"></a><h3>2017-10-24 - Release 3.21.0</h3><blockquote> +The <a href="releaselog/3_21_0.html">version 3.21.0</a> release is a regularly scheduled maintenance release. +There are lots of enhancements in this release. +See the <a href="releaselog/3_21_0.html">change log</a> for details. +</blockquote><hr width="50%"><a name="2017_08_24"></a><h3>2017-08-24 - Release 3.20.1</h3><blockquote> +The <a href="releaselog/3_20_1.html">version 3.20.1</a> patch release changes two lines of code in +the <a href="c3ref/result_blob.html">sqlite3_result_pointer()</a> interface in order to fix a rare +memory leak. There are no other changes relative to <a href="releaselog/3_20_0.html">version 3.20.0</a>. +</blockquote><hr width="50%"><a name="2017_08_01"></a><h3>2017-08-01 - Release 3.20.0</h3><blockquote> +SQLite <a href="releaselog/3_20_0.html">version 3.20.0</a> is a regularly scheduled maintenance release +of SQLite. +<p> +This release contains many minor enhancements, including: +<ul> +<li> Several new extensions +<li> Enhancements to the "sqlite3.exe" command-line shell +<li> Query planner enhancements +<li> Miscellaneous code optimizations for improved performance +<li> Fixes for some obscure bugs +</ul> +<p> +See the <a href="releaselog/3_20_0.html">release notes</a> for more information. +</blockquote><hr width="50%"><a name="2017_06_17"></a><h3>2017-06-17 - Release 3.18.2</h3><blockquote> +SQLite <a href="releaselog/3_18_2.html">version 3.18.2</a> is another backport of a bug fix found +in SQLite <a href="releaselog/3_19_0.html">version 3.19.0</a>, specifically the fix for +ticket <a href="https://sqlite.org/src/info/61fe9745">61fe9745</a>. Changes +against <a href="releaselog/3_18_0.html">version 3.18.0</a> are minimal. +</blockquote><hr width="50%"><a name="2017_06_16"></a><h3>2017-06-16 - Release 3.18.1</h3><blockquote> +SQLite <a href="releaselog/3_18_1.html">version 3.18.1</a> is a bug-fix release against <a href="releaselog/3_18_0.html">version 3.18.0</a> +that fixes the <a href="pragma.html#pragma_auto_vacuum">auto_vacuum</a> corruption bug described in ticket +<a href="https://sqlite.org/src/info/fda22108">fda22108</a>. This release was +created for users who need that bug fix but do not yet want to upgrade +to <a href="releaselog/3_19_3.html">version 3.19.3</a>. +</blockquote><hr width="50%"><a name="2017_06_08"></a><h3>2017-06-08 - Release 3.19.3</h3><blockquote> +<a href="releaselog/3_19_3.html">Version 3.19.3</a> is an emergency patch release to fix a +<a href="https://sqlite.org/src/info/fda22108">bug</a> in +<a href="pragma.html#pragma_auto_vacuum">auto_vacuum</a> logic that can lead to database corruption. +The bug was introduced in <a href="releaselog/3_16_0.html">version 3.16.0</a> +(2017-01-02). Though the bug is obscure and rarely +encountered, upgrading is recommended for all users, and +especially for users who turn on <a href="pragma.html#pragma_auto_vacuum">auto_vacuum</a>. +</blockquote><hr width="50%"><a name="2017_05_25"></a><h3>2017-05-25 - Release 3.19.2</h3><blockquote> +Still more problems have been found in the LEFT JOIN +<a href="https://sqlite.org/optoverview.html#flattening">flattening</a> optimization +that was added in the 3.19.0 release. This patch release fixes all known +issues with that optimization and adds new test cases. Hopefully this +will be the last patch. +</blockquote><hr width="50%"><a name="2017_05_24"></a><h3>2017-05-24 - Release 3.19.1</h3><blockquote> +One of the new query planner optimizations in the 3.19.0 release contained +bugs. The 3.19.1 patch release fixes them. +<p> +Beginning with 3.19.0, subqueries and views on the right-hand side of +a LEFT JOIN operator could sometimes be +<a href="https://sqlite.org/optoverview.html#flattening">flattened</a> into the +main query. The new optimization worked well for all of the test cases +that the developers devised, and for millions of legacy test cases, but +once 3.19.0 was released, users found some other cases where the optimization +failed. Ticket +<a href="https://sqlite.org/src/info/cad1ab4cb7b0fc344">cad1ab4cb7b0fc344</a> contains +examples. +<p> +These problems exist only in 3.19.0. Users of SQLite 3.19.0 should +upgrade, but users of all prior versions of SQLite are safe. +</blockquote><hr width="50%"><a name="2017_05_22"></a><h3>2017-05-22 - Release 3.19.0</h3><blockquote> +SQLite <a href="releaselog/3_19_0.html">version 3.19.0</a> is a regularly scheduled maintenance release. +<p> +The emphasis on this release is improvements to the query planner. +There are also some obscure bug fixes. There is no reason to upgrade +unless you are having problems with a prior release. +</blockquote><hr width="50%"><a name="2017_03_30"></a><h3>2017-03-30 - Release 3.18.0</h3><blockquote> +SQLite <a href="releaselog/3_18_0.html">version 3.18.0</a> is a regularly scheduled maintenance release. +<p> +This release features an initial implementation the +"<a href="pragma.html#pragma_optimize">PRAGMA optimize</a>" command. This command can now be used to cause +<a href="lang_analyze.html">ANALYZE</a> to be run on an as-needed basis. Applications should invoke +"PRAGMA optimize" just before closing the <a href="c3ref/sqlite3.html">database connection</a>. +The "PRAGMA optimize" statement will likely be enhanced to do other +kinds of automated database maintenance in future releases. +<p> +The <a href="https://www.fossil-scm.org/">Fossil</a> version control system that is +used to manage the SQLite project has been upgraded to use SHA3-256 hashes +instead of SHA1. Therefore, the version identifications for SQLite now +show a 64-hex-digit SHA3-256 hash rather than the 40-hex-digit SHA1 hash. +<p> +See the <a href="releaselog/3_18_0.html">change log</a> for other enhancements and optimizations +in this release. +</blockquote><hr width="50%"><a name="2017_02_13"></a><h3>2017-02-13 - Release 3.17.0</h3><blockquote> +SQLite <a href="releaselog/3_17_0.html">version 3.17.0</a> is a regularly scheduled maintenance release. +<p> +Most of the changes in this release are performance optimizations. +Optimizations to the <a href="rtree.html">R-Tree extension</a> are especially noticeable. +<p> +In this release, the default size of the +<a href="malloc.html#lookaside">lookaside buffer</a> allocated for each database connection +is increased from 64,000 to 120,000 bytes. This provides improved +performance on many common workloads in exchange for a small increase +in memory usage. +Applications that value a small memory footprint over raw speed +can change the lookaside buffer size back to its old value (or to zero) +using the <a href="compile.html#default_lookaside">SQLITE_DEFAULT_LOOKASIDE</a> compile-time option, or the +<a href="c3ref/c_config_covering_index_scan.html#sqliteconfiglookaside">sqlite3_config(SQLITE_CONFIG_LOOKASIDE)</a> +start-time setting, or the +<a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfiglookaside">sqlite3_db_config(SQLITE_DBCONFIG_LOOKASIDE)</a> +run-time setting. +</blockquote><hr width="50%"><a name="2017_01_06"></a><h3>2017-01-06 - Release 3.16.2</h3><blockquote> +One of the performance optimizations added in 3.16.0 caused triggers +and foreign keys to malfunction for the <a href="lang_replace.html">REPLACE</a> statement on +<a href="withoutrowid.html">WITHOUT ROWID</a> tables that lack secondary indexes. This patch +release fixes the problem. See ticket +<a href="https://www.sqlite.org/src/info/30027b613b4">30027b613b4</a> for details. +</blockquote><hr width="50%"><a name="2017_01_03"></a><h3>2017-01-03 - Release 3.16.1</h3><blockquote> +SQLite <a href="releaselog/3_16_1.html">version 3.16.1</a> fixes a bug in the row-value logic for UPDATE +statements inside of triggers. The bug has been there since row-values +were added by release 3.15.0, but was not discovered until just a few +minutes after the 3.16.0 release was published, and so it was not fixed +by 3.16.0. This patch release is version 3.16.0 with the row-value bug fix. +</blockquote><hr width="50%"><a name="2017_01_02"></a><h3>2017-01-02 - Release 3.16.0</h3><blockquote> +SQLite <a href="releaselog/3_16_0.html">version 3.16.0</a> is a regularly schedule maintenance release.</p> + +<p><p> +This release includes many <a href="cpu.html#microopt">microoptimizations</a> that collectively reduce +the CPU cycle count by about 9%, +add there have been important enhancements to the <a href="cli.html">command-line shell</a>.</p> + +<p><p>Support for <a href="pragma.html#pragfunc">PRAGMA functions</a> is added, +so that many pragma statements can be used as part of a larger SQL query. +This is considered an experimental feature. +We do not anticipate any changes to the <a href="pragma.html#pragfunc">PRAGMA function</a> interface, but +will keep continue to call this interface "experimental" for a few release +cycles in case unforeseen issues arise.</p> + +<p><p>See the <a href="releaselog/3_16_0.html">change log</a> for other enhancements. +</blockquote><hr width="50%"><a name="2016_11_28"></a><h3>2016-11-28 - Release 3.15.2</h3><blockquote> +SQLite <a href="releaselog/3_15_2.html">version 3.15.2</a> is a bug-fix patch release that fixes several minor +issues in the 3.15.0 and 3.15.1 releases. +</blockquote><hr width="50%"><a name="2016_11_04"></a><h3>2016-11-04 - Release 3.15.1</h3><blockquote> +SQLite <a href="releaselog/3_15_1.html">version 3.15.1</a> is a bug-fix patch release that fixes some minor +issues in the 3.15.0 release. +</blockquote><hr width="50%"><a name="2016_10_14"></a><h3>2016-10-14 - Release 3.15.0</h3><blockquote> +SQLite <a href="releaselog/3_15_0.html">version 3.15.0</a> is a regularly scheduled maintenance release. +The key feature in this release is the added support for +<a href="rowvalue.html">row values</a>. There are also other enhancements and +fixes for a number of obscure bugs. +<p> +The 3.15.0 release uses about 7% fewer CPU cycles than 3.14.2. +Most of the improvement in this release +is in the SQL parser, query planner, and +byte-code generator (the front-end) corresponding +to the <a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> interface. Overall, +version 3.15.0 uses about half as much CPU time as +version 3.8.1 (2013-10-17). These +performance measurements are made using the "speedtest1.c" +workload on x64 compiled with gcc and -Os. Performance +improvements may vary with different platforms and +workloads. +</blockquote><hr width="50%"><a name="2016_09_12"></a><h3>2016-09-12 - Release 3.14.2</h3><blockquote> +SQLite <a href="releaselog/3_14_2.html">version 3.14.2</a> fixes several obscure bugs and adds +improved support for building SQLite using the STDCALL calling +convention on 32-bit windows systems. Upgrading from versions +3.14 and 3.14.1 is optional. +</blockquote><hr width="50%"><a name="2016_08_11"></a><h3>2016-08-11 - Release 3.14.1</h3><blockquote> +SQLite <a href="releaselog/3_14_1.html">version 3.14.1</a> adds a small patch to improve the performance +of the pcache1TruncateUnsafe() routine for cases when the only a few +pages on the end of the cache are being removed. This causes COMMITs +to run faster when there is a very large page cache. Upgrading from +version 3.14 is optional. +</blockquote><hr width="50%"><a name="2016_08_08"></a><h3>2016-08-08 - Release 3.14</h3><blockquote> +SQLite <a href="releaselog/3_14.html">version 3.14</a> (the "π" release) +is a regularly scheduled maintenance +release containing performance enhancements, new features, and fixes for +obscure bugs. +</blockquote><hr width="50%"><a name="2016_05_18"></a><h3>2016-05-18 - Release 3.13.0</h3><blockquote> +SQLite <a href="releaselog/3_13_0.html">version 3.13.0</a> is a regularly schedule maintenance release containing +performance enhancements and fixes for obscure bugs. +</blockquote><hr width="50%"><a name="2016_04_18"></a><h3>2016-04-18 - Release 3.12.2</h3><blockquote> +<p>Yikes! The 3.12.0 and 3.12.1 releases contain a backwards compatibility bug! + Tables that declare a column with type <tt>"INTEGER" PRIMARY KEY</tt> + (where the datatype name INTEGER is quoted) generate an incompatible + database file. The mistake came about because the developers have never + thought to put a typename in quotes before, and so there was no documentation + of that capability nor any tests. (There are tests now, though, of course.) + Instances of quoting the datatype name are probably infrequent in the wild, + so we do not expect the impact of this bug to be too severe. + Upgrading is still strongly recommended. +<p>Fixes for three other minor issues were included in this patch release. + The other issues would have normally been deferred until the next scheduled + release, but since a patch release is being issued anyhow, they might as + well be included. +</blockquote><hr width="50%"><a name="2016_04_08"></a><h3>2016-04-08 - Release 3.12.1</h3><blockquote> +<p>SQLite <a href="releaselog/3_12_1.html">version 3.12.1</a> is an emergency patch release to address a + <a href="https://www.sqlite.org/src/info/7f7f8026eda38">crash bug</a> that snuck + into <a href="releaselog/3_12_0.html">version 3.12.0</a>. Upgrading from version 3.12.0 is highly + recommended. +<p>Another minor problem involving datatypes on <a href="lang_createview.html">view</a> columns, and + a query planner deficiency are fixed at the same time. These two + issues did not justify a new release on their own, but since a release + is being issued to deal with the crash bug, we included these other + fixes for good measure. +</blockquote><hr width="50%"><a name="2016_03_29"></a><h3>2016-03-29 - Release 3.12.0</h3><blockquote> +<p>SQLite <a href="releaselog/3_12_0.html">version 3.12.0</a> is a regularly scheduled maintenance release. + A notable change in this release is an + <a href="pgszchng2016.html">increase in the default page size</a> for newly created database files. + There are also various performance improvements. + See the <a href="releaselog/3_12_0.html">change log</a> for details. +</blockquote><hr width="50%"><a name="2016_03_03"></a><h3>2016-03-03 - Release 3.11.1</h3><blockquote> +<p>SQLite <a href="releaselog/3_11_1.html">version 3.11.1</a> is a patch release that fixes problems in the + new <a href="fts5.html">FTS5</a> extension and increases a default setting in the <a href="spellfix1.html">spellfix1</a> + extension, and implements enhancements to some of the Windows makefiles. + The SQLite core is unchanged from 3.11.0. Upgrading is optional. +</blockquote><hr width="50%"><a name="2016_02_15"></a><h3>2016-02-15 - Release 3.11.0</h3><blockquote> +<p>SQLite <a href="releaselog/3_11_0.html">version 3.11.0</a> is a regularly scheduled maintenance release. +</blockquote><hr width="50%"><a name="2016_01_20"></a><h3>2016-01-20 - Release 3.10.2</h3><blockquote> +<p>Yikes! An optimization attempt gone bad resulted in a +<a href="https://www.sqlite.org/src/info/80369eddd5c94">bug in the LIKE operator</a> +which is fixed by this patch release. +Three other minor but low-risk fixes are also included in the patch. +</blockquote><hr width="50%"><a name="2016_01_14"></a><h3>2016-01-14 - Release 3.10.1</h3><blockquote> +<p>SQLite <a href="releaselog/3_10_1.html">version 3.10.1</a> is a bug-fix release primarily targeting the +fix for the query planner bug +<a href="https://www.sqlite.org/src/info/cb3aa0641d9a4">cb3aa0641d9a4</a> discovered by +Mapscape. Also included is a minor API enhancement requested by +the Firefox developers at Mozilla. The differences from version +3.10.0 are minimal. +</blockquote><hr width="50%"><a name="2016_01_06"></a><h3>2016-01-06 - Release 3.10.0</h3><blockquote> +<p>SQLite <a href="releaselog/3_10_0.html">version 3.10.0</a> is a regularly scheduled maintenance release. +</blockquote><hr width="50%"> + +<a href="oldnews.html">Old news...</a> +<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/news.in?m=28ed87cc897e1a850">2022-12-27 17:04:09</a> UTC </small></i></p> + |