summaryrefslogtreecommitdiffstats
path: root/www/releaselog/current.html
diff options
context:
space:
mode:
Diffstat (limited to 'www/releaselog/current.html')
-rw-r--r--www/releaselog/current.html135
1 files changed, 41 insertions, 94 deletions
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>