📄 changes.tcl
字号:
## Run this script to generated a changes.html output file#source common.tclheader {SQLite changes}puts {<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><DL>}proc chng {date desc} { if {[regexp {\(([0-9.]+)\)} $date all vers]} { set label [string map {. _} $vers] puts "<A NAME=\"version_$label\">" } puts "<DT><B>$date</B></DT>" regsub -all {[Tt]icket #(\d+)} $desc \ {<a href="http://www.sqlite.org/cvstrac/tktview?tn=\1">\0</a>} desc puts "<DD><P><UL>$desc</UL></P>" puts "</DD>"}chng {2007 July 20 (3.4.1)} {<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>}chng {2007 June 18 (3.4.0)} {<li>Fix a bug that can lead to database corruption if an SQLITE_BUSY 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="capi3ref.html#sqlite3_blob_open"> Incremental BLOB I/O</a>.</li><li>Added the <a href="capi3ref.html#sqlite3_bind_zeroblob">zeroblob 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. Ticket #2354</li><li>Fix the REPLACE() function so that it returns NULL if the second argument is an empty string. Ticket #2324.</li><li>Document the hazards of type coversions in <a href="capi3ref.html#sqlite3_column_blob">sqlite3_column_blob()</a> and related APIs. Fix unnecessary type conversions. Ticket #2321.</li><li>Internationalization of the TRIM() function. Ticket #2323</li><li>Use memmove() instead of memcpy() when moving between memory regions that might overlap. Ticket #2334</li><li>Fix an optimizer bug involving subqueries in a compound SELECT that has both an ORDER BY and a LIMIT clause. Ticket #2339.</li><li>Make sure the <a href="capi3ref.html#sqlite3_snprintf">sqlite3_snprintf() </a> interface does not zero-terminate the buffer if the buffer size is less than 1. Ticket #2341</li><li>Fix the built-in printf logic so that it prints "NaN" not "Inf" for floating-point NaNs. Ticket #2345</li><li>When converting BLOB to TEXT, use the text encoding of the main database. Ticket #2349</li><li>Keep the full precision of integers (if possible) when casting to NUMERIC. Ticket #2364</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. Ticket #2391</li><li>Fix the query optimizer to correctly handle constant expressions in the ON clause of a LEFT JOIN. Ticket #2403</li><li>Fix the query optimizer to handle rowid comparisions to NULL correctly. Ticket #2404</li><li>Fix many potental segfaults that could be caused by malicious SQL statements.</li>}chng {2007 April 25 (3.3.17)} {<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>}chng {2007 April 18 (3.3.16)} {<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 3.3.14 but regressed in 3.3.15.</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>}chng {2007 April 9 (3.3.15)} {<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>}chng {2007 April 2 (3.3.14)} {<li>Fix a <a href="http://www.sqlite.org/cvstrac/tktview?tn=2273">bug</a> in 3.3.13 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>}chng {2007 February 13 (3.3.13)} {<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>}chng {2007 January 27 (3.3.12)} {<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>}chng {2007 January 22 (3.3.11)} {<li>Fix another bug in the implementation of the new <a href="capi3ref.html#sqlite3_prepare_v2">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>}chng {2007 January 9 (3.3.10)} {<li>Fix bugs in the implementation of the new <a href="capi3ref.html#sqlite3_prepare_v2">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><li>Enhance the windows OS layer to provide detailed error codes</li><li>Work around a win2k problem so that SQLite can use single-characterdatabase file names</li><li>The<a href="pragma.html#pragma_user_version">user_version</a> and<a href="pragma.html#pragma_schema_version">schema_version</a> pragmas correctly set their column names in the result set</li><li>Documentation updates</li>}chng {2007 January 4 (3.3.9)} {<li>Fix bugs in pager.c that could lead to database corruption if twoprocesses both try to recover a hot journal at the same instant</li><li>Added the <a href="capi3ref.html#sqlite3_prepare_v2">sqlite3_prepare_v2()</a>API.</li><li>Fixed the ".dump" command in the command-line shell to showindices, triggers and views again.</li><li>Change the table_info pragma so that it returns NULL for the defaultvalue if there is no default value</li><li>Support for non-ASCII characters in win95 filenames</li><li>Query optimizer enhancements:<ul><li>Optimizer does a better job of using indices to satisfy ORDER BYclauses that sort on the integer primary key</li><li>Use an index to satisfy an IS NULL operator in the WHERE clause</li><li>Fix a bug that was causing the optimizer to miss an OR optimizationopportunity</li><li>The optimizer has more freedom to reorder tables in the FROM clauseeven in there are LEFT joins.</li></ul><li>Extension loading supported added to winCE</li><li>Allow constraint names on the DEFAULT clause in a table definition</li><li>Added the ".bail" command to the command-line shell</li><li>Make CSV (comma separate value) output from the command-line shellmore closely aligned to accepted practice</li><li>Experimental FTS2 module added</li><li>Use sqlite3_mprintf() instead of strdup() to avoid libc dependencies</li><li>VACUUM uses a temporary file in the official TEMP folder, not in thesame directory as the original database</li><li>The prefix on temporary filenames on windows is changed from "sqlite"to "etilqs".</li>}chng {2006 October 9 (3.3.8)} {<li>Support for full text search using the<a href="http://www.sqlite.org/cvstrac/wiki?p=FullTextIndex">FTS1 module</a>(beta)</li><li>Added OS-X locking patches (beta - disabled by default)</li><li>Introduce extended error codes and add error codes for variouskinds of I/O errors.</li><li>Added support for IF EXISTS on CREATE/DROP TRIGGER/VIEW</li><li>Fix the regression test suite so that it works with Tcl8.5</li><li>Enhance sqlite3_set_authorizer() to provide notification of calls to
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -