📄 changes.html
字号:
<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>.<li>Add the ability to run a full regression test with a small<a href="c3ref/soft_heap_limit.html">sqlite3_soft_heap_limit</a>.<li>Fix other minor problems with using small soft heap limits.<li>Work-around for <a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32575">GCC bug 32575</a>.<li>Improved error detection of misused aggregate functions.<li>Improvements to the amalgamation generator script so that all symbolsare prefixed with either SQLITE_PRIVATE or SQLITE_API.</ul></p><a name="version_3_4_1"></a><h3>2007 July 20 (3.4.1)</h3><p><ul><li>Fix a bug in <a href="lang_vacuum.html">VACUUM</a> that can lead to <a href="http://www.sqlite.org/cvstrac/wiki?p=DatabaseCorruption"> database corruption</a> if two processes are connected to the database at the same time and one VACUUMs then the other then modifies the database.</li><li>The expression "+column" is now considered the same as "column" when computing the collating sequence to use on the expression.</li><li>In the <a href="tclsqlite.html">TCL language interface</a>, "@variable" instead of "$variable" always binds as a blob.</li><li>Added <a href="pragma.html#pragma_freelist_count">PRAGMA freelist_count</a> for determining the current size of the freelist.</li><li>The <a href="pragma.html#pragma_auto_vacuum"> PRAGMA auto_vacuum=incremental</a> setting is now persistent.</li><li>Add FD_CLOEXEC to all open files under unix.</li><li>Fix a bug in the <a href="optoverview.html#minmax"> min()/max() optimization</a> when applied to descending indices.</li><li>Make sure the TCL language interface works correctly with 64-bit integers on 64-bit machines.</li><li>Allow the value -9223372036854775808 as an integer literal in SQL statements.</li><li>Add the capability of "hidden" columns in virtual tables.</li><li>Use the macro SQLITE_PRIVATE (defaulting to "static") on all internal functions in the amalgamation.</li><li>Add pluggable tokenizers and <a href="http://www.icu-project.org/">ICU</a> tokenization support to FTS2</li><li>Other minor bug fixes and documentation enhancements</li></ul></p><a name="version_3_4_0"></a><h3>2007 June 18 (3.4.0)</h3><p><ul><li>Fix a bug that can lead to database corruption if an <a href="c3ref/c_abort.html">SQLITE_BUSY</a> error occurs in the middle of an explicit transaction and that transaction is later committed. <a href="http://www.sqlite.org/cvstrac/tktview?tn=2409">Ticket #2409</a>. See the <a href="http://www.sqlite.org/cvstrac/wiki?p=CorruptionFollowingBusyError"> CorruptionFollowingBusyError</a> wiki page for details.</i><li>Fix a bug that can lead to database corruption if autovacuum mode is on and a malloc() failure follows a CREATE TABLE or CREATE INDEX statement which itself follows a cache overflow inside a transaction. See <a href="http://www.sqlite.org/cvstrac/tktview?tn=2418">ticket #2418</a>. </li><li>Added explicit <a href="limits.html">upper bounds</a> on the sizes and quantities of things SQLite can process. This change might cause compatibility problems for applications that use SQLite in the extreme, which is why the current release is 3.4.0 instead of 3.3.18.</li><li>Added support for <a href="c3ref/blob_open.html">Incremental BLOB I/O</a>.</li><li>Added the <a href="c3ref/bind_blob.html">sqlite3_bind_zeroblob()</a> API</a> and the <a href="lang_expr.html#zeroblob">zeroblob()</a> SQL function.</li><li>Added support for <a href="pragma.html#pragma_incremental_vacuum"> Incremental Vacuum</a>.</li><li>Added the SQLITE_MIXED_ENDIAN_64BIT_FLOAT compile-time option to suppport ARM7 processors with goofy endianness.</li><li>Removed all instances of sprintf() and strcpy() from the core library.</li><li>Added support for <a href="http://www.icu-project.org/"> International Components for Unicode (ICU)</a> to the full-text search extensions.</ul><p><ul type="circle"><li>In the windows OS driver, reacquire a SHARED lock if an attempt to acquire an EXCLUSIVE lock fails. <a href="http://www.sqlite.org/cvstrac/tktview?tn=2354">Ticket #2354</a></li><li>Fix the REPLACE() function so that it returns NULL if the second argument is an empty string. <a href="http://www.sqlite.org/cvstrac/tktview?tn=2324">Ticket #2324</a>.</li><li>Document the hazards of type coversions in <a href="c3ref/column_blob.html">sqlite3_column_blob()</a> and related APIs. Fix unnecessary type conversions. <a href="http://www.sqlite.org/cvstrac/tktview?tn=2321">Ticket #2321</a>.</li><li>Internationalization of the TRIM() function. <a href="http://www.sqlite.org/cvstrac/tktview?tn=2323">Ticket #2323</a></li><li>Use memmove() instead of memcpy() when moving between memory regions that might overlap. <a href="http://www.sqlite.org/cvstrac/tktview?tn=2334">Ticket #2334</a></li><li>Fix an optimizer bug involving subqueries in a compound SELECT that has both an ORDER BY and a LIMIT clause. <a href="http://www.sqlite.org/cvstrac/tktview?tn=2339">Ticket #2339</a>.</li><li>Make sure the <a href="c3ref/mprintf.html">sqlite3_snprintf()</a> interface does not zero-terminate the buffer if the buffer size is less than 1. <a href="http://www.sqlite.org/cvstrac/tktview?tn=2341">Ticket #2341</a></li><li>Fix the built-in printf logic so that it prints "NaN" not "Inf" for floating-point NaNs. <a href="http://www.sqlite.org/cvstrac/tktview?tn=2345">Ticket #2345</a></li><li>When converting BLOB to TEXT, use the text encoding of the main database. <a href="http://www.sqlite.org/cvstrac/tktview?tn=2349">Ticket #2349</a></li><li>Keep the full precision of integers (if possible) when casting to NUMERIC. <a href="http://www.sqlite.org/cvstrac/tktview?tn=2364">Ticket #2364</a></li><li>Fix a bug in the handling of UTF16 codepoint 0xE000</li><li>Consider explicit collate clauses when matching WHERE constraints to indices in the query optimizer. <a href="http://www.sqlite.org/cvstrac/tktview?tn=2391">Ticket #2391</a></li><li>Fix the query optimizer to correctly handle constant expressions in the ON clause of a LEFT JOIN. <a href="http://www.sqlite.org/cvstrac/tktview?tn=2403">Ticket #2403</a></li><li>Fix the query optimizer to handle rowid comparisions to NULL correctly. <a href="http://www.sqlite.org/cvstrac/tktview?tn=2404">Ticket #2404</a></li><li>Fix many potental segfaults that could be caused by malicious SQL statements.</li></ul></p><a name="version_3_3_17"></a><h3>2007 April 25 (3.3.17)</h3><p><ul><li>When the "write_version" value of the database header is larger than what the library understands, make the database read-only instead of unreadable.</li><li>Other minor bug fixes</li></ul></p><a name="version_3_3_16"></a><h3>2007 April 18 (3.3.16)</h3><p><ul><li>Fix a bug that caused VACUUM to fail if NULLs appeared in a UNIQUE column.</li><li>Reinstate performance improvements that were added in <a href="#version_3_3_14">Version 3.3.14</a> but regressed in <a href="#version_3_3_15">Version 3.3.15</a>.</li><li>Fix problems with the handling of ORDER BY expressions on compound SELECT statements in subqueries.</li><li>Fix a potential segfault when destroying locks on WinCE in a multi-threaded environment.</li><li>Documentation updates.</li></ul></p><a name="version_3_3_15"></a><h3>2007 April 9 (3.3.15)</h3><p><ul><li>Fix a bug introduced in 3.3.14 that caused a rollback of CREATE TEMP TABLE to leave the database connection wedged.</li><li>Fix a bug that caused an extra NULL row to be returned when a descending query was interrupted by a change to the database.</li><li>The FOR EACH STATEMENT clause on a trigger now causes a syntax error. It used to be silently ignored.</li><li>Fix an obscure and relatively harmless problem that might have caused a resource leak following an I/O error.</li><li>Many improvements to the test suite. Test coverage now exceeded 98%</li></ul></p><a name="version_3_3_14"></a><h3>2007 April 2 (3.3.14)</h3><p><ul><li>Fix a bug (<a href="http://www.sqlite.org/cvstrac/tktview?tn=2273">ticket #2273</a>) that could cause a segfault when the IN operator is used one one term of a two-column index and the right-hand side of the IN operator contains a NULL.</li><li>Added a new OS interface method for determining the sector size of underlying media: sqlite3OsSectorSize().</li><li>A new algorithm for statements of the form INSERT INTO <i>table1</i> SELECT * FROM <i>table2</i> is faster and reduces fragmentation. VACUUM uses statements of this form and thus runs faster and defragments better.</li><li>Performance enhancements through reductions in disk I/O:<ul><li>Do not read the last page of an overflow chain when deleting the row - just add that page to the freelist.</li><li>Do not store pages being deleted in the rollback journal.</li><li>Do not read in the (meaningless) content of pages extracted from the freelist.</li><li>Do not flush the page cache (and thus avoiding a cache refill) unless another process changes the underlying database file.</li><li>Truncate rather than delete the rollback journal when committing a transaction in exclusive access mode, or when committing the TEMP database.</li></ul></li><li>Added support for exclusive access mode using <a href="pragma.html#pragma_locking_mode"> "PRAGMA locking_mode=EXCLUSIVE"</a></li><li>Use heap space instead of stack space for large buffers in the pager - useful on embedded platforms with stack-space limitations.</li><li>Add a makefile target "sqlite3.c" that builds an amalgamation containing the core SQLite library C code in a single file.</li><li>Get the library working correctly when compiled with GCC option "-fstrict-aliasing".</li><li>Removed the vestigal SQLITE_PROTOCOL error.</li><li>Improvements to test coverage, other minor bugs fixed, memory leaks plugged, code refactored and/or recommented in places for easier reading.</li></ul></p><a name="version_3_3_13"></a><h3>2007 February 13 (3.3.13)</h3><p><ul><li>Add a "fragmentation" measurement in the output of sqlite3_analyzer.</li><li>Add the COLLATE operator used to explicitly set the collating sequenceused by an expression. This feature is considered experimental pendingadditional testing.</li><li>Allow up to 64 tables in a join - the old limit was 32.</li><li>Added two new experimental functions:<a href="lang_expr.html#randomblobFunc">randomBlob()</a> and<a href="lang_expr.html#hexFunc">hex()</a>.Their intended use is to facilitate generating <a href="http://en.wikipedia.org/wiki/UUID">UUIDs</a>.</li><li>Fix a problem where<a href="pragma.html#pragma_count_changes">PRAGMA count_changes</a> wascausing incorrect results for updates on tables with triggers</li><li>Fix a bug in the ORDER BY clause optimizer for joins where theleft-most table in the join is constrained by a UNIQUE index.</li><li>Fixed a bug in the "copy" method of the TCL interface.</li><li>Bug fixes in fts1 and fts2 modules.</li></ul></p><a name="version_3_3_12"></a><h3>2007 January 27 (3.3.12)</h3><p><ul><li>Fix another bug in the IS NULL optimization that was added inversion 3.3.9.</li><li>Fix a assertion fault that occurred on deeply nested views.</li><li>Limit the amount of output that<a href="pragma.html#pragma_integrity_check">PRAGMA integrity_check</a>generates.</li><li>Minor syntactic changes to support a wider variety of compilers.</li></ul></p><a name="version_3_3_11"></a><h3>2007 January 22 (3.3.11)</h3><p><ul><li>Fix another bug in the implementation of the new <a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> API.We'll get it right eventually...</li><li>Fix a bug in the IS NULL optimization that was added in version 3.3.9 -the bug was causing incorrect results on certain LEFT JOINs that includedin the WHERE clause an IS NULL constraint for the right table of theLEFT JOIN.</li><li>Make AreFileApisANSI() a no-op macro in winCE since winCE does notsupport this function.</li></ul></p><a name="version_3_3_10"></a><h3>2007 January 9 (3.3.10)</h3><p><ul><li>Fix bugs in the implementation of the new <a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> APIthat can lead to segfaults.</li><li>Fix 1-second round-off errors in the <a href="http://www.sqlite.org/cvstrac/wiki?p=DateAndTimeFunctions">strftime()</a> function</li>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -