diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 14:07:11 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 14:07:11 +0000 |
commit | 63847496f14c813a5d80efd5b7de0f1294ffe1e3 (patch) | |
tree | 01c7571c7c762ceee70638549a99834fdd7c411b /www/releaselog/3_25_2.html | |
parent | Initial commit. (diff) | |
download | sqlite3-63847496f14c813a5d80efd5b7de0f1294ffe1e3.tar.xz sqlite3-63847496f14c813a5d80efd5b7de0f1294ffe1e3.zip |
Adding upstream version 3.45.1.upstream/3.45.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'www/releaselog/3_25_2.html')
-rw-r--r-- | www/releaselog/3_25_2.html | 213 |
1 files changed, 213 insertions, 0 deletions
diff --git a/www/releaselog/3_25_2.html b/www/releaselog/3_25_2.html new file mode 100644 index 0000000..6e90115 --- /dev/null +++ b/www/releaselog/3_25_2.html @@ -0,0 +1,213 @@ +<!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.25.2 On 2018-09-25</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.25.2 On 2018-09-25</h2><p><b>Prior changes from version 3.25.0 (2018-09-15):</b></p> +<p><ol class='lessindent'> +<li value='1'> Add support for <a href="../windowfunctions.html">window functions</a> +<li> Enhancements the <a href="../lang_altertable.html">ALTER TABLE</a> command: +<ol type="a"> + <li> Add support for renaming columns within a table using + ALTER TABLE <i>table</i> RENAME COLUMN <i>oldname</i> TO <i>newname</i>. + <li> Fix table rename feature so that it also updates references + to the renamed table in <a href="../lang_createtrigger.html">triggers</a> and <a href="../lang_createview.html">views</a>. +</ol> +<li> Query optimizer improvements: +<ol type="a"> + <li> Avoid unnecessary loads of columns in an aggregate query that + are not within an aggregate function and that are not part + of the GROUP BY clause. + <li> The IN-early-out optimization: When doing a look-up on a + multi-column index and an IN operator is used on a column + other than the left-most column, then if no rows match against + the first IN value, check to make sure there exist rows that + match the columns to the right before continuing with the + next IN value. + <li> Use the transitive property to try to propagate constant + values within the WHERE clause. For example, convert + "a=99 AND b=a" into "a=99 AND b=99". +</ol> +<li> Use a separate mutex on every inode in the unix <a href="../vfs.html">VFS</a>, rather than + a single mutex shared among them all, for slightly better concurrency + in multi-threaded environments. +<li> Enhance the <a href="../pragma.html#pragma_integrity_check">PRAGMA integrity_check</a> command for improved detection + of problems on the page freelist. +<li> Output infinity as 1e999 in the ".dump" command of the + <a href="../cli.html">command-line shell</a>. +<li> Added the <a href="../c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntldataversion">SQLITE_FCNTL_DATA_VERSION</a> file-control. +<li> Added the <a href="../geopoly.html">Geopoly module</a> +<p><b>Bug fixes:</b> +<li> The ORDER BY LIMIT optimization might have caused an infinite loop + in the byte code of the prepared statement under very obscure + circumstances, + due to a confluence of minor defects in the query optimizer. + Fix for ticket + <a href="https://www.sqlite.org/src/info/9936b2fa443fec03ff25">9936b2fa443fec03ff25</a> +<li> On an UPSERT when the order of constraint checks is rearranged, + ensure that the affinity transformations on the inserted content + occur before any of the constraint checks. Fix for ticket + <a href="https://www.sqlite.org/src/info/79cad5e4b2e219dd197242e9e">79cad5e4b2e219dd197242e9e</a>. +<li> Avoid using a prepared statement for ".stats on" command of the + <a href="../cli.html">CLI</a> after it has been closed by the ".eqp full" logicc. Fix for ticket + <a href="https://www.sqlite.org/src/info/7be932dfa60a8a6b3b26bcf76">7be932dfa60a8a6b3b26bcf76</a>. +<li> The LIKE optimization was generating incorrect byte-code and hence + getting the wrong answer + if the left-hand operand has numeric affinity and the right-hand-side + pattern is '/%' or if the pattern begins with the ESCAPE character. + Fix for ticket + <a href="https://www.sqlite.org/src/info/c94369cae9b561b1f996d0054b">c94369cae9b561b1f996d0054b</a> +</ol> +<p><b>Prior changes from version 3.25.1 (2018-09-18):</b></p> +<p><ol class='lessindent'> +<li value='13'> Extra sanity checking added to ALTER TABLE in the 3.25.0 release + sometimes raises a false-positive + when the table being modified has a trigger that + updates a virtual table. The false-positive caused the ALTER + TABLE to rollback, thus leaving the schema unchanged. + Ticket <a href="https://sqlite.org/src/info/b41031ea2b537237">b41031ea2b537237</a>. +<li> The fix in the 3.25.0 release for the endless-loop in the byte-code + associated with the ORDER BY LIMIT optimization did not work for + some queries involving window functions. An additional correction + is required. Ticket + <a href="https://sqlite.org/src/info/510cde277783b5fb">510cde277783b5fb</a> +</ol> +<p><b>Changes in this specific patch release, version 3.25.2 (2018-09-25):</b></p> +<p><ol class='lessindent'> +<li value='15'> Add the <a href="../pragma.html#pragma_legacy_alter_table">PRAGMA legacy_alter_table=ON</a> command that causes the + "ALTER TABLE RENAME" command to behave as it did in SQLite versions 3.24.0 + and earlier: references to the renamed table inside the bodies of triggers + and views are not updated. This new pragma provides a compatibility + work around for older programs that expected the older, wonky behavior + of ALTER TABLE RENAME. +<li> Fix a problem with the new <a href="../windowfunctions.html">window functions</a> implementation that caused + a malfunction when complicated expressions involving window functions were used + inside of a view. +<li> Fixes for various other compiler warnings and minor problems associated + with obscure configurations. +<p><b>Hashes:</b> +<li>SQLITE_SOURCE_ID: "2018-09-25 19:08:10 fb90e7189ae6d62e77ba3a308ca5d683f90bbe633cf681865365b8e92792d1c7" +<li>SHA3-256 for sqlite3.c: 34c23ff91631ae10354f8c9d62fd7d65732b3d7f3acfd0bbae31ff4a62fe28af + +</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> + + |