Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Documentation updates for version 3.6.12. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
03760bb55c1de6065a01aed9405f66a4 |
User & Date: | drh 2009-03-31 12:52:22.000 |
Context
2009-03-31
| ||
13:52 | Fix a typo in the 3.6.12 release log. (check-in: 790056fe66 user: drh tags: trunk) | |
12:52 | Documentation updates for version 3.6.12. (check-in: 03760bb55c user: drh tags: trunk) | |
2009-03-27
| ||
15:12 | Make it clear that the case_sensitive_like pragma installs a new application-defined LIKE function. (check-in: e96456b379 user: drh tags: trunk) | |
Changes
Changes to pages/about.in.
︙ | ︙ | |||
56 57 58 59 60 61 62 | very little heap (100KiB), making SQLite a popular database engine choice on memory constrained gadgets such as cellphones, PDAs, and MP3 players. There is a tradeoff between memory usage and speed. SQLite generally runs faster the more memory you give it. Nevertheless, performance is usually quite good even in low-memory environments.</p> | > > | | | | | 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | very little heap (100KiB), making SQLite a popular database engine choice on memory constrained gadgets such as cellphones, PDAs, and MP3 players. There is a tradeoff between memory usage and speed. SQLite generally runs faster the more memory you give it. Nevertheless, performance is usually quite good even in low-memory environments.</p> <p>SQLite is <a href="testing.html">very carefully tested</a> prior to every release and has a reputation for being very reliable. Most of the SQLite source code is devoted purely to testing and verification. An automated test suite runs millions of tests involving hundreds of millions of individual SQL statements and achieves over 99% statement coverage. SQLite responds gracefully to memory allocation failures and disk I/O errors. Transactions are <a href="http://en.wikipedia.org/wiki/ACID">ACID</a> even if interrupted by system crashes or power failures. All of this is verified by the automated tests using special test harnesses which simulate system failures. |
︙ | ︙ |
Changes to pages/changes.in.
︙ | ︙ | |||
38 39 40 41 42 43 44 | http://www.sqlite.org/cvstrac/timeline</a>.</p> } hd_close_aux hd_enable_main 1 } } | | > > > | 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | http://www.sqlite.org/cvstrac/timeline</a>.</p> } hd_close_aux hd_enable_main 1 } } chng {2009 March 31 (3.6.12)} { <li>Fixed a bug that cause database corruption an [incremental_vacuum] is rolled back in an in-memory database. Ticket #3761. <li>Added the [sqlite3_unlock_notify()] interface. <li>Added the [reverse_unordered_selects pragma]. <li>The default page size on windows is automatically adjusted to match the capabilities of the underlying filesystem. <li>Add the new ".genfkey" command in the [CLI] for generating triggers to implement foreign key constraints. <li>Performance improvements for "count(*)" queries. <li>Reduce the amount of heap memory used, especially by TRIGGERs. <li> } chng {2009 Feb 18 (3.6.11)} { <li>Added the [sqlite3_backup_init | hot-backup interface]. <li>Added new commands ".backup" and ".restore" to the [CLI]. <li>Added new methods <a href="tclsqlite.html#backup">backup</a> and <a href="tclsqlite.html#restore">restore</a> to the TCL interface. |
︙ | ︙ |
Changes to pages/docs.in.
︙ | ︙ | |||
49 50 51 52 53 54 55 56 57 58 59 60 61 62 | Version 3.3.0 and later supports the ability for two or more database connections to share the same page and schema cache. This feature is useful for certain specialized applications. } doc {Tcl API} {tclsqlite.html} { A description of the TCL interface bindings for SQLite. } doc {Temporary Files Used By SQLite} {tempfiles.html} { SQLite can potentially use many different temporary files when processing certain SQL statements. This document describes the many kinds of temporary files that SQLite uses and offers suggestions for avoiding them on systems where creating a temporary file is an expensive operation. | > > > > | 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | Version 3.3.0 and later supports the ability for two or more database connections to share the same page and schema cache. This feature is useful for certain specialized applications. } doc {Tcl API} {tclsqlite.html} { A description of the TCL interface bindings for SQLite. } doc {How SQLite Is Tested} {testing.html} { This document describes the extensive testing and verification procedures that SQLite undergoes prior to every release. } doc {Temporary Files Used By SQLite} {tempfiles.html} { SQLite can potentially use many different temporary files when processing certain SQL statements. This document describes the many kinds of temporary files that SQLite uses and offers suggestions for avoiding them on systems where creating a temporary file is an expensive operation. |
︙ | ︙ |
Changes to pages/download.in.
︙ | ︙ | |||
37 38 39 40 41 42 43 | } cd $::DEST proc Heading {title} { set ::pending_heading $title # hd_puts "<tr><td colspan=4><big><b>$title</b></big></td></tr>" } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | } cd $::DEST proc Heading {title} { set ::pending_heading $title # hd_puts "<tr><td colspan=4><big><b>$title</b></big></td></tr>" } Heading {Source Code} Product {sqlite-amalgamation-V3.zip} { This ZIP archive contains all preprocessed C code combined into a single source file (the <a href="amalgamation.html">amalgamation</a>). This is the <b>recommended</b> way of acquiring the SQLite |
︙ | ︙ | |||
202 203 204 205 206 207 208 209 210 211 212 213 214 215 | Heading {Documentation} Product {sqlite_docs_V3.zip} { This ZIP archive contains most of the static HTML files that comprise this website, including all of the SQL Syntax and the C/C++ interface specs and other miscellaneous documentation. } Heading {Historical Binaries And Source Code} Product sqlite-V2.bin.gz { A command-line program for accessing and modifying SQLite version 2.* databases on Linux-x86. } | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 | Heading {Documentation} Product {sqlite_docs_V3.zip} { This ZIP archive contains most of the static HTML files that comprise this website, including all of the SQL Syntax and the C/C++ interface specs and other miscellaneous documentation. } Heading {Precompiled Binaries for Linux} Product sqlite3-V3.bin.gz { A command-line program for accessing and modifying SQLite version 3.* databases. See <a href="sqlite.html">the documentation</a> for additional information. } Product sqlite-V3.bin.gz { A command-line program for accessing and modifying SQLite databases. See <a href="sqlite.html">the documentation</a> for additional information. } Product tclsqlite-V3.so.gz { Bindings for <a href="http://www.tcl.tk/">Tcl/Tk</a>. You can import this shared library into either tclsh or wish to get SQLite database access from Tcl/Tk. See <a href="tclsqlite.html">the documentation</a> for details. } Product sqlite-V3.so.gz { A precompiled shared-library for Linux without the TCL bindings. } Product fts1-V3.so.gz { A precompiled <a href="http://www.sqlite.org/cvstrac/wiki?p=FtsOne">FTS1 Module</a> for Linux. } Product fts2-V3.so.gz { A precompiled <a href="http://www.sqlite.org/cvstrac/wiki?p=FtsTwo">FTS2 Module</a> for Linux. } Product sqlite-devel-V3.i386.rpm { RPM containing documentation, header files, and static library for SQLite version VERSION. } Product sqlite-V3-1.i386.rpm { RPM containing shared libraries and the <b>sqlite</b> command-line program for SQLite version VERSION. } Product sqlite*_analyzer-V3.bin.gz { An analysis program for database files compatible with SQLite version VERSION and later. } Heading {Precompiled Binaries For Mac OS X} Product sqlite3-V3-osx-x86.bin.gz { A command-line program for accessing and modifying SQLite version 3.* databases. For x86 Macs running Leopard (OS 10.5) only. } Product sqlite*_analyzer-V3-osx-x86.bin.gz { An analysis program for database files compatible with SQLite version VERSION and later. For x86 Macs running Leopard (OS 10.5) only. } Heading {Precompiled Binaries For Windows} Product sqlite-V3.zip { A command-line program for accessing and modifying SQLite databases. See <a href="sqlite.html">the documentation</a> for additional information. } Product tclsqlite-V3.zip { Bindings for <a href="http://www.tcl.tk/">Tcl/Tk</a>. You can import this shared library into either tclsh or wish to get SQLite database access from Tcl/Tk. See <a href="tclsqlite.html">the documentation</a> for details. } Product sqlitedll-V3.zip { This is a DLL of the SQLite library without the TCL bindings. The only external dependency is MSVCRT.DLL. } Product fts1dll-V3.zip { A precompiled <a href="http://www.sqlite.org/cvstrac/wiki?p=FtsOne">FTS1 Module</a> for Win32 platforms. } Product fts2dll-V3.zip { A precompiled <a href="http://www.sqlite.org/cvstrac/wiki?p=FtsTwo">FTS2 Module</a> for Win32 platforms. } Product sqlite*_analyzer-V3.zip { An analysis program for database files compatible with SQLite version VERSION and later. } Heading {Historical Binaries And Source Code} Product sqlite-V2.bin.gz { A command-line program for accessing and modifying SQLite version 2.* databases on Linux-x86. } |
︙ | ︙ |
Changes to pages/index.in.
︙ | ︙ | |||
78 79 80 81 82 83 84 | <td width="20"></td><td bgcolor="#80a796" width="1"></td><td width="20"></td> <td valign="top"> <h3>Current Status</h3> <p><ul> <li><a href="releaselog/3_6_12.html">Version 3.6.12</a> of SQLite is recommended for all new development. Upgrading from | | < | 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | <td width="20"></td><td bgcolor="#80a796" width="1"></td><td width="20"></td> <td valign="top"> <h3>Current Status</h3> <p><ul> <li><a href="releaselog/3_6_12.html">Version 3.6.12</a> of SQLite is recommended for all new development. Upgrading from prior versions of SQLite is suggested for all users.</li> </ul></p> <h3>Common Links</h3> <p><ul> <li> <a href="features.html">Features</a> </li> <li> <a href="faq.html">Frequently Asked Questions</a> </li> |
︙ | ︙ |
Changes to pages/news.in.
︙ | ︙ | |||
14 15 16 17 18 19 20 21 22 23 24 25 26 27 | hd_puts "<h3>$date - $title</h3>" regsub -all "\n( *\n)+" $text "</p>\n\n<p>" txt regsub -all {[Tt]icket #(\d+)} $txt \ {<a href="http://www.sqlite.org/cvstrac/tktview?tn=\1">\0</a>} txt hd_resolve "<p>$txt</p>" hd_puts "<hr width=\"50%\">" } newsitem {2009-Feb-18} {Version 3.6.11} { SQLite [version 3.6.11] adds support for the [sqlite3_backup_init | hot-backup] interface. This interface can be used to create a backup copy of an SQLite database while it is in use. The same interface can be used to initialize an in-memory database from a persistent disk image or to save an in-memory database into a | > > > > > > > > > > > > > > > > > > > > > | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | hd_puts "<h3>$date - $title</h3>" regsub -all "\n( *\n)+" $text "</p>\n\n<p>" txt regsub -all {[Tt]icket #(\d+)} $txt \ {<a href="http://www.sqlite.org/cvstrac/tktview?tn=\1">\0</a>} txt hd_resolve "<p>$txt</p>" hd_puts "<hr width=\"50%\">" } newsitem {2009-Mar-31} {Version 3.6.12} { SQLite [version 3.6.12] fixes a database corruption bug. If an [incremental_vacuum] is rolled back in an in-memory database, the database will often go corrupt. This only happens for in-memory databases. On-disk databases are unaffected. And the corruption only appears if an incremental vacuum is rolled back. Nevertheless, upgrading is recommended for all applications, especially those that make use of in-memory databases and/or incremental vacuum. See ticket #3761. SQLite [version 3.6.12] also adds support for the [sqlite3_unlock_notify()] interface and the [reverse_unordered_selects pragma] and the new ".genfkey" command in the CLI. There are also performance improvements in many count(*) SQL statements. During testing of version 3.6.12, a bug in the [lookaside memory allocator] as it relates to [shared cache mode] was found that effects all prior versions of SQLite back to [version 3.6.1]. If you are using shared cache mode you should either disable lookaside memory allocation or upgrade to version 3.6.12. See ticket #3743. } newsitem {2009-Feb-18} {Version 3.6.11} { SQLite [version 3.6.11] adds support for the [sqlite3_backup_init | hot-backup] interface. This interface can be used to create a backup copy of an SQLite database while it is in use. The same interface can be used to initialize an in-memory database from a persistent disk image or to save an in-memory database into a |
︙ | ︙ |
Changes to pages/testing.in.
1 2 3 4 5 6 7 8 9 10 11 | <title>How SQLite Is Tested</title> <tcl> # This document contains many size statistics about SQLite, statistics # that change frequently. We want the document to be up-to-date. To # facilitate that, all the size values are defined by variables here # which are then used as needed through the document. # # NOTE: Also update the version number in the text!!! # | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | <title>How SQLite Is Tested</title> <tcl> # This document contains many size statistics about SQLite, statistics # that change frequently. We want the document to be up-to-date. To # facilitate that, all the size values are defined by variables here # which are then used as needed through the document. # # NOTE: Also update the version number in the text!!! # set stat(coreSLOC) 62881 ;# Non-comment lines of amalgamation code set stat(tclcSLOC) 14363 ;# Non-comment lines of test C code set stat(tclcNfile) 22 ;# Number of files of TCL C testcode + tclsqlite.c set stat(tclcNByte) 428101 ;# Number of bytes of TCL C testcode + tclsqlite.c set stat(tclsSLOC) 216050 ;# Non-comment lines of TCL test script set stat(tclsNFile) 473 ;# Number of files of TCL test script set stat(tclsNByte) 8033724 ;# Number of bytes of TCL test script set stat(tclNTest) 24003 ;# Number of test cases in the TCL test suite set stat(tclNEval) 1675308 ;# Number of test case evaluations set stat(nSqlFuzz) 103992 ;# Number of SQL fuzz tests set stat(vqNEval) 40932 ;# Number of test evaluations for veryquick.test set stat(vqStmtCov) 96.73 ;# veryquick statement coverage set stat(vqBrCov) 81.07 ;# veryquick branch coverage set stat(allStmtCov) 99+ ;# all.test statement coverage set stat(allBrCov) 95+ ;# all.test condition/decision coverage set stat(th3SLOC) 143280 ;# Non-comment lines of TH3 script + mkth3.tcl set stat(th3NByte) 10003421 ;# Number of bytes of TH3 test script + mkth3.tcl set stat(th3NTest) 7037 ;# Number of test cases set stat(th3NEval) 2394072 ;# Number of test case evaluations set stat(sltsSLOC) 45241898 ;# Non-comment lines of SLT test script set stat(sltsNByte) 1120640686 ;# Bytes of SLT test script set stat(sltsNFile) 617 ;# Files of SLT test script set stat(sltcSLOC) 1113 ;# Non-comment lines of SLT C code set stat(sltNTest) 7200160 ;# Number of test cases in SLT set stat(nAssert) 2540 ;# Number of assert statements set stat(totalSLOC) [expr {$stat(tclcSLOC)+$stat(tclsSLOC)+ $stat(th3SLOC)+$stat(sltcSLOC)+$stat(sltsSLOC)}] proc GB {expr} { set n [uplevel #0 expr $expr] |
︙ | ︙ | |||
71 72 73 74 75 76 77 | <h1 align="center">How SQLite Is Tested</h1> <h2>1.0 Introduction</h2> <p>The reliability and robustness of SQLite is achieved in large part by thorough and careful testing.</p> | | | 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | <h1 align="center">How SQLite Is Tested</h1> <h2>1.0 Introduction</h2> <p>The reliability and robustness of SQLite is achieved in large part by thorough and careful testing.</p> <p>As of [version 3.6.12] (all statistics in the report are against that release of SQLite), the SQLite library consists of approximately <tcl>KB {$stat(coreSLOC)}</tcl> KSLOC of C code. (KSLOC means thousands of "Source Lines Of Code" or, in other words, lines of code excluding blank lines and comments.) By comparison, the project has <tcl> |
︙ | ︙ | |||
595 596 597 598 599 600 601 | willing to do this because the other tests described above do an excellent job of finding the bugs that are often introduced when removing compiler warnings, so that product quality is probably not decreased as a result.</p> <h2>10.0 Summary</h2> | | > | | | 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 | willing to do this because the other tests described above do an excellent job of finding the bugs that are often introduced when removing compiler warnings, so that product quality is probably not decreased as a result.</p> <h2>10.0 Summary</h2> <p>SQLite is open source. This gives many people with the idea that it is not well tested as commercial software and is perhaps unreliable. But that impression is false. SQLite has exhibited very high reliability in the field and a very low defect rate, especially considering how rapidly it is evolving. The quality of SQLite is achieved in part by careful code design and implementation. But extensive testing also plays a vital role in maintaining and improving the quality of SQLite. This document has summarized the testing procedures that every release of SQLite undergoes with the hopes of inspiring the reader to understand that SQLite is suitable for use in mission-critical applications.</p> |
Changes to pages/unlock_notify.in.
︙ | ︙ | |||
81 82 83 84 85 86 87 88 89 90 91 92 93 94 | <p> The [sqlite3_unlock_notify()] API, which is only available if the library is compiled with the pre-processor symbol [SQLITE_ENABLE_UNLOCK_NOTIFY] defined, is [sqlite3_unlock_notify | documented here]. This page is no substitute for reading the full API documentation! <p><b>The sqlite3_unlock_notify() API</b> <p> After a call to [sqlite3_step()] or [sqlite3_prepare_v2()] returns SQLITE_LOCKED, the [sqlite3_unlock_notify()] API may be invoked to register for an unlock-notify callback. The unlock-notify callback is invoked by SQLite after the database connection holding the table-lock that prevented | > > > > > > > > > | 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | <p> The [sqlite3_unlock_notify()] API, which is only available if the library is compiled with the pre-processor symbol [SQLITE_ENABLE_UNLOCK_NOTIFY] defined, is [sqlite3_unlock_notify | documented here]. This page is no substitute for reading the full API documentation! <p> The [sqlite3_unlock_notify()] interface is designed for use in systems that have a separate thread assigned to each [database connection]. There is nothing in the implementation that prevents a single thread from running multiple database connections. However, the [sqlite3_unlock_notify()] interface only works on a single connection at a time, so the lock resolution logic presented here will only work for a single database connection per thread. <p><b>The sqlite3_unlock_notify() API</b> <p> After a call to [sqlite3_step()] or [sqlite3_prepare_v2()] returns SQLITE_LOCKED, the [sqlite3_unlock_notify()] API may be invoked to register for an unlock-notify callback. The unlock-notify callback is invoked by SQLite after the database connection holding the table-lock that prevented |
︙ | ︙ |