191 lines
8 KiB
HTML
191 lines
8 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 Release 3.34.1 On 2021-01-20</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>SQLite Release 3.34.1 On 2021-01-20</h2><p><b>Prior changes from version 3.34.0 (2020-12-01):</b></p>
|
||
|
<p><ol class='lessindent'>
|
||
|
<li value='1'> Added the <a href="../c3ref/txn_state.html">sqlite3_txn_state()</a> interface for reporting on the current
|
||
|
transaction state of the database connection.
|
||
|
<li> Enhance <a href="../lang_with.html#recursivecte">recursive common table expressions</a> to support two or more
|
||
|
recursive terms as is done by SQL Server, since this helps make
|
||
|
<a href="../lang_with.html#rcex3">queries against graphs</a> easier to write and faster to execute.
|
||
|
<li> Improved error messages on <a href="../lang_createtable.html#ckconst">CHECK constraint</a> failures.
|
||
|
<li> <a href="../cli.html">CLI</a> enhancements:
|
||
|
<ol type="a">
|
||
|
<li> The <a href="../cli.html#dotread">.read</a> dot-command now accepts a pipeline in addition to
|
||
|
a filename.
|
||
|
<li> Added options --data-only and --nosys to the <a href="../cli.html#dump">.dump</a> dot-command.
|
||
|
<li> Added the --nosys option to the <a href="../cli.html#dschema">.schema</a> dot-command.
|
||
|
<li> Table name quoting works correctly for the <a href="../cli.html#csv">.import</a> dot-command.
|
||
|
<li> The <a href="../series.html">generate_series(START,END,STEP)</a> table-valued function
|
||
|
extension is now built into the CLI.
|
||
|
<li> The <a href="../cli.html#dotdatabases">.databases</a> dot-command now shows the status of each database
|
||
|
file as determined by <a href="../c3ref/db_readonly.html">sqlite3_db_readonly()</a> and
|
||
|
<a href="../c3ref/txn_state.html">sqlite3_txn_state()</a>.
|
||
|
<li> Added the --tabs command-line option that sets
|
||
|
<a href="../cli.html#dotmode">.mode tabs</a>.
|
||
|
<li> The --init option reports an error if the file named as its argument
|
||
|
cannot be opened. The --init option also now honors the --bail option.
|
||
|
</ol>
|
||
|
<li> Query planner improvements:
|
||
|
<ol type="a">
|
||
|
<li> Improved estimates for the cost of running a DISTINCT operator.
|
||
|
<li> When doing an UPDATE or DELETE using a multi-column index where
|
||
|
only a few of the earlier columns of the index are useful for the
|
||
|
index lookup, postpone doing the main table seek until after all
|
||
|
WHERE clause constraints have been evaluated, in case those
|
||
|
constraints can be covered by unused later terms of the index,
|
||
|
thus avoiding unnecessary main table seeks.
|
||
|
<li> The new OP_SeekScan opcode is used to improve performance of
|
||
|
multi-column index look-ups when later columns are constrained
|
||
|
by an IN operator.
|
||
|
</ol>
|
||
|
<li> The <a href="../lang_transaction.html#immediate">BEGIN IMMEDIATE</a> and <a href="../lang_transaction.html#immediate">BEGIN EXCLUSIVE</a> commands now work even
|
||
|
if one or more attached database files are read-only.
|
||
|
<li> Enhanced <a href="../fts5.html">FTS5</a> to support <a href="../fts5.html#trigramidx">trigram indexes</a>.
|
||
|
<li> Improved performance of <a href="../wal.html">WAL mode</a> locking primitives in cases where
|
||
|
there are hundreds of connections all accessing the same database file
|
||
|
at once.
|
||
|
<li> Enhanced the <a href="../carray.html">carray() table-valued function</a> to include a single-argument
|
||
|
form that is bound using the auxiliary <a href="../carray.html#onearg">sqlite3_carray_bind()</a> interface.
|
||
|
<li> The <a href="../lang_corefunc.html#substr">substr() SQL function</a> can now also be called "substring()" for
|
||
|
compatibility with SQL Server.
|
||
|
<li> The <a href="../syntaxdiagrams.html">syntax diagrams</a> are now implemented as
|
||
|
<a href='https://pikchr.org/'>Pikchr</a> scripts and rendered
|
||
|
as SVG for improved legibility and ease of maintenance.
|
||
|
</ol>
|
||
|
<p><b>Changes in this specific patch release, version 3.34.1 (2021-01-20):</b></p>
|
||
|
<p><ol class='lessindent'>
|
||
|
<li value='12'> Fix a potential use-after-free bug when processing a a subquery with both
|
||
|
a correlated WHERE clause and a "HAVING 0" clause and where the parent
|
||
|
query is an aggregate.
|
||
|
<li> Fix documentation typos
|
||
|
<li> Fix minor problems in extensions.
|
||
|
<p><b>Hashes:</b>
|
||
|
<li>SQLITE_SOURCE_ID: 2021-01-20 14:10:07 10e20c0b43500cfb9bbc0eaa061c57514f715d87238f4d835880cd846b9ebd1f
|
||
|
<li>SHA3-256 for sqlite3.c: 799a7be90651fc7296113b641a70b028c142d767b25af1d0a78f93dcf1a2bf20
|
||
|
|
||
|
</ol></p>
|
||
|
|
||
|
<p>A <a href="../changes.html">complete list of SQLite releases</a>
|
||
|
in a single page and a <a href="../chronology.html">chronology</a> are both also available.
|
||
|
A detailed history of every
|
||
|
check-in is available at
|
||
|
<a href="https://www.sqlite.org/src/timeline">
|
||
|
SQLite version control site</a>.</p>
|
||
|
|
||
|
|