📄 changes.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>SQLite changes</title><style type="text/css">body { margin: auto; font-family: "Verdana" "sans-serif"; padding: 8px 1%;}a { color: #45735f }a:visited { color: #734559 }.logo { position:absolute; margin:3px; }.tagline { float:right; text-align:right; font-style:italic; width:240px; margin:12px; margin-top:58px;}.toolbar { font-variant: small-caps; text-align: center; line-height: 1.6em; margin: 0; padding:1px 8px;}.toolbar a { color: white; text-decoration: none; padding: 6px 12px; }.toolbar a:visited { color: white; }.toolbar a:hover { color: #80a796; background: white; }.content { margin: 5%; }.content dt { font-weight:bold; }.content dd { margin-bottom: 25px; margin-left:20%; }.content ul { padding:0px; padding-left: 15px; margin:0px; }/* rounded corners */.se { background: url(images/se.png) 100% 100% no-repeat #80a796}.sw { background: url(images/sw.png) 0% 100% no-repeat }.ne { background: url(images/ne.png) 100% 0% no-repeat }.nw { background: url(images/nw.png) 0% 0% no-repeat }</style><meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head><body><div><!-- container div to satisfy validator --><a href="index.html"><img class="logo" src="images/SQLite.gif" alt="SQLite Logo" border="0"></a><div><!-- IE hack to prevent disappearing logo--></div><div class="tagline">Small. Fast. Reliable.<br>Choose any three.</div><table width=100% style="clear:both"><tr><td> <div class="se"><div class="sw"><div class="ne"><div class="nw"> <div class="toolbar"> <a href="about.html">About</a> <a href="sitemap.html">Sitemap</a> <a href="docs.html">Documentation</a> <a href="download.html">Download</a> <a href="copyright.html">License</a> <a href="news.html">News</a> <a href="http://www.sqlite.org/cvstrac/index">Developers</a> <a href="support.html">Support</a> </div></div></div></div></div></td></tr></table> <p>This page provides a high-level summary of changes to SQLite.For more detail, refer the the checkin logs generated byCVS at<a href="http://www.sqlite.org/cvstrac/timeline">http://www.sqlite.org/cvstrac/timeline</a>.</p><a name="version_3_5_8"></a><h3>2008 Apr 16 (3.5.8)</h3><p><ul><li>Expose SQLite's internal pseudo-random number generator (PRNG) via the <a href="c3ref/randomness.html">sqlite3_randomness()</a> interface</li><li>New interface <a href="c3ref/context_db_handle.html">sqlite3_context_db_handle()</a> that returns the <a href="c3ref/sqlite3.html">database connection</a> handle that has invoked an application-defined SQL function.</li><li>New interface <a href="c3ref/limit.html">sqlite3_limit()</a> allows size and length limits to be set on a per-connection basis and at run-time.</li><li>Improved crash-robustness: write the database page size into the rollback journal header.</li><li>Allow the <a href="lang_vacuum.html">VACUUM</a> command to change the page size of a database file.</li><li>The xAccess() method of the VFS is allowed to return -1 to signal a memory allocation error.</li><li>Performance improvement: The OP_IdxDelete opcode uses unpacked records, obviating the need for one OP_MakeRecord opcode call for each index record deleted.</li><li>Performance improvement: Constant subexpressions are factored out of loops.</li><li>Performance improvement: Results of OP_Column are reused rather than issuing multiple OP_Column opcodes.</li><li>Fix a bug in the RTRIM collating sequence.</li><li>Fix a bug in the SQLITE_SECURE_DELETE option that was causing Firefox crashes. Make arrangements to always test SQLITE_SECURE_DELETE prior to each release.</li><li>Other miscellaneous performance enhancements.</li><li>Other miscellaneous minor bug fixes.</li></ul></p><a name="version_3_5_7"></a><h3>2008 Mar 17 (3.5.7)</h3><p><ul><li>Fix a bug (<a href="http://www.sqlite.org/cvstrac/tktview?tn=2927">ticket #2927</a>) in the register allocation forcompound selects - introduced by the new VM code in version 3.5.5.</li><li>ALTER TABLE uses double-quotes instead of single-quotes for quotingfilenames.</li><li>Use the WHERE clause to reduce the size of a materialized VIEW inan UPDATE or DELETE statement. (Optimization)</li><li>Do not apply the flattening optimization if the outer query is anaggregate and the inner query contains ORDER BY. (<a href="http://www.sqlite.org/cvstrac/tktview?tn=2943">Ticket #2943</a>)</li><li>Additional OS/2 updates</li><li>Added an experimental power-of-two, first-fit memory allocator.</li><li>Remove all instances of sprintf() from the code</li><li>Accept "Z" as the zulu timezone at the end of date strings</li><li>Fix a bug in the LIKE optimizer that occurs when the last characterbefore the first wildcard is an upper-case "Z"</li><li>Added the "bitvec" object for keeping track of which pages havebeen journalled. Improves speed and reduces memory consumption, especiallyfor large database files.</li><li>Get the SQLITE_ENABLE_LOCKING_STYLE macro working again on MacOSX.</li><li>Store the statement journal in the temporary file directory instead ofcolocated with the database file.</li><li>Many improvements and cleanups to the configure script</li></ul></p><a name="version_3_5_6"></a><h3>2008 Feb 6 (3.5.6)</h3><p><ul><li>Fix a bug (<a href="http://www.sqlite.org/cvstrac/tktview?tn=2913">ticket #2913</a>)that prevented virtual tables from working in a LEFT JOIN.The problem was introduced into shortly before the 3.5.5 release.</li><li>Bring the OS/2 porting layer up-to-date.</li><li>Add the new <a href="c3ref/result_blob.html">sqlite3_result_error_code()</a> API and use it in theimplementation of <a href="lang_attach.html">ATTACH</a> so that proper error codes are returnedwhen an <a href="lang_attach.html">ATTACH</a> fails.</li></ul></p><a name="version_3_5_5"></a><h3>2008 Jan 31 (3.5.5)</h3><p><ul><li>Convert the underlying virtual machine to be a register-based machinerather than a stack-based machine. The only user-visible changeis in the output of EXPLAIN.</li><li>Add the build-in RTRIM collating sequence.</li></ul></p><a name="version_3_5_4"></a><h3>2007 Dec 14 (3.5.4)</h3><p><ul><li>Fix a critical bug in UPDATE or DELETE that occurs when anOR REPLACE clause or a trigger causes rows in the same table tobe deleted as side effects. (See <a href="http://www.sqlite.org/cvstrac/tktview?tn=2832">ticket #2832</a>.) The most likelyresult of this bug is a segmentation fault, though databasecorruption is a possibility.</li><li>Bring the processing of ORDER BY into compliance with the SQL standard for case where a result alias and a table column nameare in conflict. Correct behavior is to prefer the result alias.Older versions of SQLite incorrectly picked the table column.(See <a href="http://www.sqlite.org/cvstrac/tktview?tn=2822">ticket #2822</a>.)</li><li>The <a href="lang_vacuum.html">VACUUM</a> command preservesthe setting of the <a href="pragma.html#pragma_legacy_file_format">legacy_file_format pragma</a>.(<a href="http://www.sqlite.org/cvstrac/tktview?tn=2804">Ticket #2804</a>.)</li><li>Productize and officially support the group_concat() SQL function.</li><li>Better optimization of some IN operator expressions.</li><li>Add the ability to change the <a href="pragma.html#pragma_auto_vacuum">auto_vacuum</a> status of adatabase by setting the auto_vaccum pragma and VACUUMing the database.</li><li>Prefix search in FTS3 is much more efficient.</li><li>Relax the SQL statement length restriction in the CLI so thatthe ".dump" output of databases with very large BLOBs and strings canbe played back to recreate the database.</li><li>Other small bug fixes and optimizations.</li></ul></p><a name="version_3_5_3"></a><h3>2007 Nov 27 (3.5.3)</h3><p><ul><li>Move website and documentation files out of the source tree intoa <a href="http://www.sqlite.org/docsrc/">separate CM system</a>.<li>Fix a long-standing bug in INSERT INTO ... SELECT ... statementswhere the SELECT is compound.<li>Fix a long-standing bug in RAISE(IGNORE) as used in BEFORE triggers.<li>Fixed the operator precedence for the ~ operator.<li>On win32, do not return an error when attempting to delete a filethat does not exist.<li>Allow collating sequence names to be quoted.<li>Modify the TCL interface to use <a href="c3ref/prepare.html">sqlite3_prepare_v2()</a>.<li>Fix multiple bugs that can occur following a malloc() failure.<li><a href="c3ref/step.html">sqlite3_step()</a> returns <a href="c3ref/c_abort.html">SQLITE_MISUSE</a> instead of crashing whencalled with a NULL parameter.<li>FTS3 now uses the SQLite memory allocator exclusively. TheFTS3 amalgamation can now be appended to the SQLite amalgamation togenerate a super-amalgamation containing both.<li>The DISTINCT keyword now will sometimes use an INDEX if anappropriate index is available and the optimizer thinks its usemight be advantageous.</ul></p><a name="version_3_5_2"></a><h3>2007 Nov 05 (3.5.2)</h3><p><ul><li>Dropped support for the SQLITE_OMIT_MEMORY_ALLOCATION compile-timeoption.<li>Always open files using FILE_FLAG_RANDOM_ACCESS under windows.<li>The 3rd parameter of the built-in SUBSTR() function is now optional.<li>Bug fix: do not invoke the authorizer when reparsing the schema aftera schema change.<li>Added the experimental malloc-free memory allocator in mem3.c.<li>Virtual machine stores 64-bit integer and floating point constantsin binary instead of text for a performance boost.<li>Fix a race condition in test_async.c.<li>Added the ".timer" command to the CLI</ul></p><a name="version_3_5_1"></a><h3>2007 Oct 04 (3.5.1)</h3><p><ul><li><i><b>Nota Bene:</b> We are not using terms "alpha" or "beta" on this release because the code is stable and because if we use those terms, nobody will upgrade. However, we still reserve the right to make incompatible changes to the new VFS interface in future releases.</i></li><li>Fix a bug in the handling of <a href="c3ref/c_abort.html">SQLITE_FULL</a> errors that could lead to database corruption. <a href="http://www.sqlite.org/cvstrac/tktview?tn=2686">Ticket #2686</a>.<li>The test_async.c drive now does full file locking and works correctly when used simultaneously by multiple processes on the same database.<li>The CLI ignores whitespace (including comments) at the end of lines<li>Make sure the query optimizer checks dependences on all terms of a compound SELECT statement. <a href="http://www.sqlite.org/cvstrac/tktview?tn=2640">Ticket #2640</a>.<li>Add demonstration code showing how to build a VFS for a raw mass storage without a filesystem.<li>Added an output buffer size parameter to the xGetTempname() method of the VFS layer.<li>Sticky <a href="c3ref/c_abort.html">SQLITE_FULL</a> or <a href="c3ref/c_abort.html">SQLITE_IOERR</a> errors in the pager are reset when a new transaction is started.</ul></p><a name="version_3_5_0"></a><h3>2007 Sep 04 (3.5.0) alpha</h3><p><ul><li>Redesign the OS interface layer. See <a href="34to35.html">34to35.html</a> for details. <font color="red">*** Potentially incompatible change ***</font><li>The <a href="c3ref/release_memory.html">sqlite3_release_memory()</a>, <a href="c3ref/soft_heap_limit.html">sqlite3_soft_heap_limit()</a>, and <a href="c3ref/enable_shared_cache.html">sqlite3_enable_shared_cache()</a> interfaces now work cross all threads in the process, not just the single thread in which they are invoked. <font color="red">*** Potentially incompatible change ***</font><li>Added the <a href="c3ref/open.html">sqlite3_open_v2()</a> interface. <li>Reimplemented the memory allocation subsystem and made it replacable at compile-time.<li>Created a new mutex subsystem and made it replacable at compile-time.<li>The same database connection may now be used simultaneously by separate threads.</ul></p><a name="version_3_4_2"></a><h3>2007 August 13 (3.4.2)</h3><p><ul><li>Fix a database corruption bug that might occur if a ROLLBACK commandis executed in <a href="pragma.html#pragma_auto_vacuum">auto-vacuum mode</a>and a very small <a href="c3ref/soft_heap_limit.html">sqlite3_soft_heap_limit</a> is set. <a href="http://www.sqlite.org/cvstrac/tktview?tn=2565">Ticket #2565</a>.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -