diff options
Diffstat (limited to 'www/releaselog')
-rw-r--r-- | www/releaselog/3_13_0.html | 2 | ||||
-rw-r--r-- | www/releaselog/3_42_0.html | 2 | ||||
-rw-r--r-- | www/releaselog/3_46_0.html | 175 | ||||
-rw-r--r-- | www/releaselog/3_9_0.html | 2 | ||||
-rw-r--r-- | www/releaselog/3_9_1.html | 2 | ||||
-rw-r--r-- | www/releaselog/3_9_2.html | 2 | ||||
-rw-r--r-- | www/releaselog/3_9_3.html | 2 | ||||
-rw-r--r-- | www/releaselog/current.html | 135 |
8 files changed, 222 insertions, 100 deletions
diff --git a/www/releaselog/3_13_0.html b/www/releaselog/3_13_0.html index 5490946..a197c7b 100644 --- a/www/releaselog/3_13_0.html +++ b/www/releaselog/3_13_0.html @@ -144,7 +144,7 @@ antiRobotDefense(); the table has one or more indexes that are able to trigger the OR optimization, but none of the indexes reference any table columns other than the INTEGER PRIMARY KEY. Ticket <a href="https://www.sqlite.org/src/info/16c9801ceba49">16c9801ceba49</a>. -<li>When checking for the WHERE-clause push-down optimization, verify that all terms +<li>When checking for the <a href="../optoverview.html#pushdown">WHERE-clause push-down optimization</a>, verify that all terms of the compound inner SELECT are non-aggregate, not just the last term. Fix for ticket <a href="https://www.sqlite.org/src/info/f7f8c97e97597">f7f8c97e97597</a>. <li>Fix a locking race condition in Windows that can occur when two or more processes diff --git a/www/releaselog/3_42_0.html b/www/releaselog/3_42_0.html index e5f5543..661ed3a 100644 --- a/www/releaselog/3_42_0.html +++ b/www/releaselog/3_42_0.html @@ -127,7 +127,7 @@ antiRobotDefense(); <ol type="a"> <li> Enable the "count-of-view" optimization by default. <li> Avoid computing unused columns in subqueries. - <li> Improvements to the <a href="../optoverview.html#pushdown">push-down optimization</a>. + <li> Improvements to the <a href="../optoverview.html#pushdown">WHERE-clause push-down optimization</a>. </ol> <li> Enhancements to the <a href="../cli.html">CLI</a>: <ol type="a"> diff --git a/www/releaselog/3_46_0.html b/www/releaselog/3_46_0.html new file mode 100644 index 0000000..5996306 --- /dev/null +++ b/www/releaselog/3_46_0.html @@ -0,0 +1,175 @@ +<!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.46.0 On 2024-05-23</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.46.0 On 2024-05-23</h2><p><ol class='lessindent'> +<li> Enhance <a href="../pragma.html#pragma_optimize">PRAGMA optimize</a> in multiple ways, to make it + <a href="../lang_analyze.html#pragopt">simpler to use</a>: + <ol type="a"> + <li> PRAGMA optimize automatically implements a temporary + <a href="../pragma.html#pragma_analysis_limit">analysis limit</a> to prevent excess runtime + on large databases. + <li> Added the new 0x10000 bitmask option to check for updates on all tables. + <li> Automatically re-analyze tables that do not have sqlite_stat1 entries. + </ol> +<li> Enhancements to the <a href="../lang_datefunc.html">date and time functions</a>: + <ol type="a"> + <li> The <a href="../lang_datefunc.html#strftm">strftime() SQL function</a> now supports %G, %g, %U, and %V. + <li> New modifiers 'ceiling' and 'floor' control the algorithm used to + resolve <a href="../lang_datefunc.html#dtambg">ambiguous dates</a> when shifting a date by an integer number + of months and/or years. + <li> The <a href="../lang_datefunc.html#localtime">'utc' and 'localtime' modifiers</a> are now no-ops if SQLite knows + that the time is already in UTC or in the localtime, respectively. + </ol> +<li> Add support for underscore ("_") characters between digits in + <a href="../lang_expr.html#litvalue">numeric literals</a>. +<li> Add the <a href="../json1.html#jpretty">json_pretty()</a> SQL function. +<li> Query planner improvements: + <ol type="a"> + <li> The "VALUES-as-coroutine" optimization enables INSERT statements with + thousands of rows in the VALUES clause to parse and run in about half + the time and using about half as much memory. + <li> Allow the use of an index for queries like "SELECT count(DISTINCT col) FROM ...", + even if the index records are not smaller than the table records. + <li> Improved recognition of cases where the value of an SQL function is + constant because all its arguments are constant. + <li> Enhance the <a href="../optoverview.html#pushdown">WHERE-clause push-down optimization</a> so that it is able to + push down WHERE clause terms containing uncorrelated subqueries. + </ol> +<li> Allocate additional memory from the heap for the SQL parser stack if + that stack overflows, rather than reporting a "parser stack overflow" error. +<li> JSON changes: + <ol type="a"> + <li> Allow ASCII control characters within JSON5 string literals. + <li> Fix <a href="../json1.html#jptr">the -> and ->> operators</a> so that when the right-hand side operand is a string + that looks like an integer it is still treated as a string, because that is what + PostgreSQL does. + </ol> +<li> Allow large hexadecimal literals to be used as the DEFAULT value to a table column. +<p><b>Hashes:</b> +<li>SQLITE_SOURCE_ID: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e +<li>SHA3-256 for sqlite3.c: 094429ea827fcd32275e767134bc6c7b9ea394a2c5a9e653dd0a0690b2c11358 + +</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> + + diff --git a/www/releaselog/3_9_0.html b/www/releaselog/3_9_0.html index 6a2127e..a1556ca 100644 --- a/www/releaselog/3_9_0.html +++ b/www/releaselog/3_9_0.html @@ -156,7 +156,7 @@ antiRobotDefense(); <a href="../c3ref/initialize.html">sqlite3_initialize()</a> to help ensure that it is thread-safe. <li>Fix the <a href="../optoverview.html#or_opt">OR optimization</a> so that it always ignores subplans that do not use an index. -<li>Do not apply the WHERE-clause pushdown optimization on terms that originate +<li>Do not apply the <a href="../optoverview.html#pushdown">WHERE-clause push-down optimization</a> on terms that originate in the ON or USING clause of a LEFT JOIN. Fix for ticket <a href="https://www.sqlite.org/src/info/c2a19d81652f40568c">c2a19d81652f40568c</a>. diff --git a/www/releaselog/3_9_1.html b/www/releaselog/3_9_1.html index ead1a50..f272bac 100644 --- a/www/releaselog/3_9_1.html +++ b/www/releaselog/3_9_1.html @@ -157,7 +157,7 @@ antiRobotDefense(); <a href="../c3ref/initialize.html">sqlite3_initialize()</a> to help ensure that it is thread-safe. <li>Fix the <a href="../optoverview.html#or_opt">OR optimization</a> so that it always ignores subplans that do not use an index. -<li>Do not apply the WHERE-clause pushdown optimization on terms that originate +<li>Do not apply the <a href="../optoverview.html#pushdown">WHERE-clause push-down optimization</a> on terms that originate in the ON or USING clause of a LEFT JOIN. Fix for ticket <a href="https://www.sqlite.org/src/info/c2a19d81652f40568c">c2a19d81652f40568c</a>. diff --git a/www/releaselog/3_9_2.html b/www/releaselog/3_9_2.html index dafeab9..54f6233 100644 --- a/www/releaselog/3_9_2.html +++ b/www/releaselog/3_9_2.html @@ -157,7 +157,7 @@ antiRobotDefense(); <a href="../c3ref/initialize.html">sqlite3_initialize()</a> to help ensure that it is thread-safe. <li>Fix the <a href="../optoverview.html#or_opt">OR optimization</a> so that it always ignores subplans that do not use an index. -<li>Do not apply the WHERE-clause pushdown optimization on terms that originate +<li>Do not apply the <a href="../optoverview.html#pushdown">WHERE-clause push-down optimization</a> on terms that originate in the ON or USING clause of a LEFT JOIN. Fix for ticket <a href="https://www.sqlite.org/src/info/c2a19d81652f40568c">c2a19d81652f40568c</a>. diff --git a/www/releaselog/3_9_3.html b/www/releaselog/3_9_3.html index f354dd4..f228776 100644 --- a/www/releaselog/3_9_3.html +++ b/www/releaselog/3_9_3.html @@ -157,7 +157,7 @@ antiRobotDefense(); <a href="../c3ref/initialize.html">sqlite3_initialize()</a> to help ensure that it is thread-safe. <li>Fix the <a href="../optoverview.html#or_opt">OR optimization</a> so that it always ignores subplans that do not use an index. -<li>Do not apply the WHERE-clause pushdown optimization on terms that originate +<li>Do not apply the <a href="../optoverview.html#pushdown">WHERE-clause push-down optimization</a> on terms that originate in the ON or USING clause of a LEFT JOIN. Fix for ticket <a href="https://www.sqlite.org/src/info/c2a19d81652f40568c">c2a19d81652f40568c</a>. diff --git a/www/releaselog/current.html b/www/releaselog/current.html index 4e6d9e3..5996306 100644 --- a/www/releaselog/current.html +++ b/www/releaselog/current.html @@ -3,7 +3,7 @@ <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.45.3 On 2024-04-15</title> +<title>SQLite Release 3.46.0 On 2024-05-23</title> <!-- path=../ --> </head> <body> @@ -115,106 +115,53 @@ antiRobotGo(); } antiRobotDefense(); </script> -<h2>SQLite Release 3.45.3 On 2024-04-15</h2><p><b>Prior changes from version 3.45.0 (2024-01-15):</b></p> -<p><ol class='lessindent'> -<li value='1'> Added the <a href="../c3ref/c_deterministic.html#sqliteresultsubtype">SQLITE_RESULT_SUBTYPE</a> property for - <a href="../appfunc.html">application-defined SQL functions</a>. - All application defined SQL functions that invokes - <a href="../c3ref/result_subtype.html">sqlite3_result_subtype()</a> must be registered with this new property. - Failure to do so might cause the call to sqlite3_result_subtype() to - behave as a no-op. Compile with <a href="../compile.html#strict_subtype">-DSQLITE_STRICT_SUBTYPE=1</a> to cause an - SQL error to be raised if a function that is not <a href="../c3ref/c_deterministic.html#sqliteresultsubtype">SQLITE_RESULT_SUBTYPE</a> - tries invokes <a href="../c3ref/result_subtype.html">sqlite3_result_subtype()</a>. The use of <a href="../compile.html#strict_subtype">-DSQLITE_STRICT_SUBTYPE=1</a> - is a recommended compile-time option for every application that makes - use of subtypes. -<li> Enhancements to the <a href="../json1.html">JSON SQL functions</a>: - <ol type="a"> - <li> All JSON functions are rewritten to use a new internal parse tree - format called <a href="../json1.html#jsonbx">JSONB</a>. The new parse-tree format is serializable - and hence can be stored in the database to avoid unnecessary re-parsing - whenever the JSON value is used. - <li> New versions of JSON-generating functions generate binary JSONB instead - of JSON text. - <li> The <a href="../json1.html#jvalid">json_valid()</a> function adds an optional second argument that - specifies what it means for the first argument to be "well-formed". - </ol> -<li> Add the <a href="../fts5.html#the_tokendata_option">FTS5 tokendata option</a> to the <a href="../fts5.html">FTS5</a> virtual table. -<li> The <a href="../compile.html#direct_overflow_read">SQLITE_DIRECT_OVERFLOW_READ</a> optimization is now enabled by default. - Disable it at compile-time using -DSQLITE_DIRECT_OVERFLOW_READ=0. -<li> Query planner improvements: +<h2>SQLite Release 3.46.0 On 2024-05-23</h2><p><ol class='lessindent'> +<li> Enhance <a href="../pragma.html#pragma_optimize">PRAGMA optimize</a> in multiple ways, to make it + <a href="../lang_analyze.html#pragopt">simpler to use</a>: <ol type="a"> - <li> Do not allow the transitive constraint optimization to trick the - query planner into using a range constraint when a better equality - constraint is available. - (<a href="https://sqlite.org/forum/forumpost/2568d1f6e6">Forum post 2568d1f6e6</a>.) - <li> The query planner now does a better job of disregarding - indexes that <a href="../lang_analyze.html">ANALYZE</a> identifies as low-quality. - (<a href="https://sqlite.org/forum/forumpost/6f0958b03b">Forum post 6f0958b03b</a>.) + <li> PRAGMA optimize automatically implements a temporary + <a href="../pragma.html#pragma_analysis_limit">analysis limit</a> to prevent excess runtime + on large databases. + <li> Added the new 0x10000 bitmask option to check for updates on all tables. + <li> Automatically re-analyze tables that do not have sqlite_stat1 entries. </ol> -<li> Increase the default value for <a href="../limits.html#max_page_count">SQLITE_MAX_PAGE_COUNT</a> from 1073741824 to - 4294967294. -<li> Enhancements to the <a href="../cli.html">CLI</a>: +<li> Enhancements to the <a href="../lang_datefunc.html">date and time functions</a>: <ol type="a"> - <li> Improvements to the display of UTF-8 content on Windows - <li> Automatically detect playback of ".dump" scripts and make appropriate - changes to settings such as ".dbconfig defensive off" and - ".dbconfig dqs_dll on". + <li> The <a href="../lang_datefunc.html#strftm">strftime() SQL function</a> now supports %G, %g, %U, and %V. + <li> New modifiers 'ceiling' and 'floor' control the algorithm used to + resolve <a href="../lang_datefunc.html#dtambg">ambiguous dates</a> when shifting a date by an integer number + of months and/or years. + <li> The <a href="../lang_datefunc.html#localtime">'utc' and 'localtime' modifiers</a> are now no-ops if SQLite knows + that the time is already in UTC or in the localtime, respectively. </ol> -</ol> -<p><b>Prior changes from version 3.45.1 (2024-01-30):</b></p> -<p><ol class='lessindent'> -<li value='8'> Restore the <a href="../json1.html#jblobbug">JSON BLOB input bug</a>, and promise to support the anomaly in - subsequent releases, for backward compatibility. -<li> Fix the <a href="../pragma.html#pragma_integrity_check">PRAGMA integrity_check</a> command so that it works on read-only - databases that contain FTS3 and FTS5 tables. This resolves an issue - introduced in <a href="../releaselog/3_44_0.html">version 3.44.0</a> but was undiscovered until after the 3.45.0 release. -<li> Fix issues associated with processing corrupt <a href="../json1.html#jsonbx">JSONB</a> inputs: +<li> Add support for underscore ("_") characters between digits in + <a href="../lang_expr.html#litvalue">numeric literals</a>. +<li> Add the <a href="../json1.html#jpretty">json_pretty()</a> SQL function. +<li> Query planner improvements: <ol type="a"> - <li> Prevent exponential runtime when converting a corrupt JSONB into text. - <li> Fix a possible read of one byte past the end of the JSONB blob when converting - a corrupt JSONB into text. - <li> Enhanced testing using <a href="../testing.html#dbsqlfuzz">jfuzz</a> to prevent any future JSONB problems such - as the above. + <li> The "VALUES-as-coroutine" optimization enables INSERT statements with + thousands of rows in the VALUES clause to parse and run in about half + the time and using about half as much memory. + <li> Allow the use of an index for queries like "SELECT count(DISTINCT col) FROM ...", + even if the index records are not smaller than the table records. + <li> Improved recognition of cases where the value of an SQL function is + constant because all its arguments are constant. + <li> Enhance the <a href="../optoverview.html#pushdown">WHERE-clause push-down optimization</a> so that it is able to + push down WHERE clause terms containing uncorrelated subqueries. </ol> -<li> Fix a long-standing bug in which a read of a few bytes past the end of a - memory-mapped segment might occur when accessing a craftily corrupted database - using <a href="../pragma.html#pragma_mmap_size">memory-mapped database</a>. -<li> Fix a long-standing bug in which a NULL pointer dereference might occur in - the <a href="../opcode.html">bytecode engine</a> due to incorrect bytecode being generated for a class - of SQL statements that are deliberately designed to stress the query planner - but which are otherwise pointless. - -</ol> -<p><b>Prior changes from version 3.45.2 (2024-03-12):</b></p> -<p><ol class='lessindent'> -<li value='13'> Fix an error in <a href="../lang_upsert.html">UPSERT</a>, introduced by enhancement 3a in <a href="../releaselog/3_35_0.html">version 3.35.0</a> - (2021-03-12), that could cause an index to get out-of-sync with its table. - <a href="https://sqlite.org/forum/forumpost/919c6579c8">Forum thread 919c6579c8</a>. -<li> Reduce the scope of the NOT NULL strength reduction optimization that was - added as item 8e in <a href="../releaselog/3_35_0.html">version 3.35.0</a> (2021-03-12). The optimization - was being attempted in some contexts where it did not work, resulting in - incorrect query results. - <a href="https://sqlite.org/forum/forumpost/440f2a2f17">Forum thread 440f2a2f17</a>. -<li> Other trifling corrections and compiler warning fixes that have come up - since the previous patch release. See the - <a href="https://sqlite.org/src/timeline?from=version-3.45.1&to=version-3.45.2&to2=branch-3.45">timeline</a> - for details. -</ol> -<p><b>Changes in this specific patch release, version 3.45.3 (2024-04-15):</b></p> -<p><ol class='lessindent'> -<li value='16'> Fix a long-standing bug (going back to <a href="../releaselog/3_24_0.html">version 3.24.0</a>) - that might (rarely) cause the "old.*" values of an <a href="../lang_createtrigger.html">UPDATE trigger</a> - to be incorrect if that trigger fires in response to an <a href="../lang_upsert.html">UPSERT</a>. - <a href="https://sqlite.org/forum/forumpost/284955a3cd454a15">Forum post 284955a3cd454a15</a>. -<li> Fix a bug in <a href="../lang_aggfunc.html#sumunc">sum()</a> that could cause it to return NULL when it should return - Infinity. <a href="https://sqlite.org/forum/forumpost/23b8688ef4">Forum post 23b8688ef4</a>. -<li> Other trifling corrections and compiler warning fixes that have come up - since the previous patch release. See the - <a href="https://sqlite.org/src/timeline?from=version-3.45.2&to=version-3.45.3&to2=branch-3.45">timeline</a> - for details. +<li> Allocate additional memory from the heap for the SQL parser stack if + that stack overflows, rather than reporting a "parser stack overflow" error. +<li> JSON changes: + <ol type="a"> + <li> Allow ASCII control characters within JSON5 string literals. + <li> Fix <a href="../json1.html#jptr">the -> and ->> operators</a> so that when the right-hand side operand is a string + that looks like an integer it is still treated as a string, because that is what + PostgreSQL does. + </ol> +<li> Allow large hexadecimal literals to be used as the DEFAULT value to a table column. <p><b>Hashes:</b> -<li>SQLITE_SOURCE_ID: 2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355 -<li>SHA3-256 for sqlite3.c: 21dbe688a71b449d28e2a8ec6a43e7520e54df456e02b6d4f6a1d1c7a998c826 +<li>SQLITE_SOURCE_ID: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e +<li>SHA3-256 for sqlite3.c: 094429ea827fcd32275e767134bc6c7b9ea394a2c5a9e653dd0a0690b2c11358 </ol></p> |