Documentation Source Text
Check-in [d29bab5808]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
SHA1 Hash:d29bab58084ceb2c03a07b63bd7b5e791d5a799c
Date: 2013-03-13 17:11:37
User: drh
Comment:Documentation updates and typo fixes in preparation for the next release.
Tags And Properties
Changes
hide diffs unified diffs patch

Changes to pages/changes.in

41 hd_enable_main 1 41 hd_enable_main 1 42 } 42 } 43 } 43 } 44 44 45 chng {2013-03-18 (3.7.16)} { 45 chng {2013-03-18 (3.7.16)} { 46 <li>Added the [PRAGMA foreign_key_check] command. 46 <li>Added the [PRAGMA foreign_key_check] command. 47 <li>Added new extended error codes for all SQLITE_CONSTRAINT errors 47 <li>Added new extended error codes for all SQLITE_CONSTRAINT errors > 48 <li>Added the SQLITE_READONLY_ROLLBACK extended error code for when a database > 49 cannot be opened because it needs rollback recovery but is read-only. 48 <li>Added SQL functions [unicode(A)] and [char(X1,...,XN)]. 50 <li>Added SQL functions [unicode(A)] and [char(X1,...,XN)]. 49 <li>Performance improvements for [PRAGMA incremental_vacuum], especially in 51 <li>Performance improvements for [PRAGMA incremental_vacuum], especially in 50 cases where the number of free pages is greater than what will fit on a 52 cases where the number of free pages is greater than what will fit on a 51 single trunk page of the freelist. 53 single trunk page of the freelist. 52 <li>Improved optimization of queries containing aggregate min() or max(). 54 <li>Improved optimization of queries containing aggregate min() or max(). 53 <li>Enhance virtual tables so that they can potentially use an index when 55 <li>Enhance virtual tables so that they can potentially use an index when 54 the WHERE clause contains the IN operator. 56 the WHERE clause contains the IN operator. ................................................................................................................................................................................ 69 shutting down the database connection. 71 shutting down the database connection. 70 <li>Improved error messages for invalid boolean arguments to dot-commands 72 <li>Improved error messages for invalid boolean arguments to dot-commands 71 in the [command-line shell]. 73 in the [command-line shell]. 72 <li>Improved error messages for "foreign key mismatch" showing the names of 74 <li>Improved error messages for "foreign key mismatch" showing the names of 73 the two tables involved. 75 the two tables involved. 74 <li>Remove all uses of umask() in the unix VFS. 76 <li>Remove all uses of umask() in the unix VFS. 75 <li>Added the [PRAGMA vdbe_addoptrace] and [PRAGMA vdbe_debug] commands. 77 <li>Added the [PRAGMA vdbe_addoptrace] and [PRAGMA vdbe_debug] commands. > 78 <li>Change to use strncmp() or the equivalent instead of memcmp() when > 79 comparing non-zero-terminated strings. > 80 <li>Update cygwin interfaces to omit deprecated API calls. > 81 <li>Enhance the [spellfix1] extension so that the edit distance cost table can > 82 be changed at runtime by inserting a string like 'edit_cost_table=TABLE' > 83 into the "command" field. 76 84 77 <li>Bug fix: repair a long-standing problem that could cause incorrect query 85 <li>Bug fix: repair a long-standing problem that could cause incorrect query 78 results in a 3-way or larger join that compared INTEGER fields against TEXT 86 results in a 3-way or larger join that compared INTEGER fields against TEXT 79 fields in two or more places. 87 fields in two or more places. 80 Ticket [http://www.sqlite.org/src/info/fc7bd6358f | fc7bd6358f] 88 Ticket [http://www.sqlite.org/src/info/fc7bd6358f | fc7bd6358f] 81 <li>Bug fix: Issue an error message if the 16-bit reference counter on a 89 <li>Bug fix: Issue an error message if the 16-bit reference counter on a 82 view overflows due to an overly complex query. 90 view overflows due to an overly complex query. ................................................................................................................................................................................ 200 [URI filenames] are allowed to use [in-memory shared-cache | shared cache], 208 [URI filenames] are allowed to use [in-memory shared-cache | shared cache], 201 so that the same 209 so that the same 202 in-memory database can be accessed from multiple database connections. 210 in-memory database can be accessed from multiple database connections. 203 <li>Recognize and use the [coreqp | mode=memory] query parameter in 211 <li>Recognize and use the [coreqp | mode=memory] query parameter in 204 [URI filenames]. 212 [URI filenames]. 205 <li>Avoid resetting the schema of [shared cache] connections when any one 213 <li>Avoid resetting the schema of [shared cache] connections when any one 206 connection closes. Instead, wait for the last connection to close before 214 connection closes. Instead, wait for the last connection to close before 207 reseting the schema. | 215 resetting the schema. 208 <li>In the [RTREE] extension, when rounding 64-bit floating point numbers 216 <li>In the [RTREE] extension, when rounding 64-bit floating point numbers 209 to 32-bit for storage, always round in a direction that causes the 217 to 32-bit for storage, always round in a direction that causes the 210 bounding box to get larger. 218 bounding box to get larger. 211 <li>Adjust the unix driver to avoid unnecessary calls to fchown(). 219 <li>Adjust the unix driver to avoid unnecessary calls to fchown(). 212 <li>Add interfaces sqlite3_quota_ferror() and sqlite3_quota_file_available() 220 <li>Add interfaces sqlite3_quota_ferror() and sqlite3_quota_file_available() 213 to the test_quota.c module. 221 to the test_quota.c module. 214 <li>The [sqlite3_create_module()] and [sqlite3_create_module_v2()] interfaces 222 <li>The [sqlite3_create_module()] and [sqlite3_create_module_v2()] interfaces

Changes to pages/lang.in

2053 or UPDATE statement, exclusive of statements in lower-level triggers. 2053 or UPDATE statement, exclusive of statements in lower-level triggers. 2054 ^The changes() SQL function is a wrapper around the [sqlite3_changes()] 2054 ^The changes() SQL function is a wrapper around the [sqlite3_changes()] 2055 C/C++ function and hence follows the same rules for counting changes. 2055 C/C++ function and hence follows the same rules for counting changes. 2056 } 2056 } 2057 2057 2058 funcdef {char(X1,X2,...,XN)} {} { 2058 funcdef {char(X1,X2,...,XN)} {} { 2059 ^The char(X1,X2,...,XN) function returns a string composed of characters havin 2059 ^The char(X1,X2,...,XN) function returns a string composed of characters havin 2060 unicode code point values of integers X1 thorugh XN, respectively. | 2060 unicode code point values of integers X1 through XN, respectively. 2061 } 2061 } 2062 2062 2063 funcdef {coalesce(X,Y,...)} {} { 2063 funcdef {coalesce(X,Y,...)} {} { 2064 ^The coalesce() function returns a copy of its first non-NULL argument, or 2064 ^The coalesce() function returns a copy of its first non-NULL argument, or 2065 NULL if all arguments are NULL. ^Coalesce() must be at least 2065 NULL if all arguments are NULL. ^Coalesce() must be at least 2066 2 arguments. 2066 2 arguments. 2067 } 2067 }

Changes to pages/news.in

14 hd_puts "<h3>$date - $title</h3>" 14 hd_puts "<h3>$date - $title</h3>" 15 regsub -all "\n( *\n)+" $text "</p>\n\n<p>" txt 15 regsub -all "\n( *\n)+" $text "</p>\n\n<p>" txt 16 regsub -all {[Tt]icket #(\d+)} $txt \ 16 regsub -all {[Tt]icket #(\d+)} $txt \ 17 {<a href="http://www.sqlite.org/cvstrac/tktview?tn=\1">\0</a>} txt 17 {<a href="http://www.sqlite.org/cvstrac/tktview?tn=\1">\0</a>} txt 18 hd_resolve "<blockquote>$txt</blockquote>" 18 hd_resolve "<blockquote>$txt</blockquote>" 19 hd_puts "<hr width=\"50%\">" 19 hd_puts "<hr width=\"50%\">" 20 } 20 } > 21 > 22 newsitem {2013-Mar-18} {Release 3.7.16} { > 23 SQLite [version 3.7.16] is a regularly scheduled release of SQLite. > 24 This release contains several langauge enhancements and improvements > 25 to the query optimizer. A list of the major enhancements and optimizations > 26 can be see on the [version 3.7.16 | change log]. > 27 > 28 There was one important bug fix > 29 (see [http://www.sqlite.org/src/info/fc7bd6358f | Ticket fc7bd6358f]) > 30 that addresses an incorrect query result that could have occurred in > 31 a three-way join where the join constraints compared INTEGER columns > 32 to TEXT columns. This issue had been in the code for time out of mind > 33 and had never before been reported, so we surmise that it is very obscure. > 34 Nevertheless, all users are advised to upgrade to avoid any future problems > 35 associated with this issue. > 36 } 21 37 22 newsitem {2013-Jan-09} {Release 3.7.15.2} { 38 newsitem {2013-Jan-09} {Release 3.7.15.2} { 23 SQLite [version 3.7.15.2] is a patch release that fixes a single bug 39 SQLite [version 3.7.15.2] is a patch release that fixes a single bug 24 that was introduced in version [version 3.7.15]. The fix is a 4-character 40 that was introduced in version [version 3.7.15]. The fix is a 4-character 25 edit to a single line of code. Other than this 4-character change and 41 edit to a single line of code. Other than this 4-character change and 26 the update of the version number, nothing has changed from 42 the update of the version number, nothing has changed from 27 [version 3.7.15.1]. 43 [version 3.7.15.1]. ................................................................................................................................................................................ 157 173 158 newsitem {2012-May-14} {Version 3.7.12} { 174 newsitem {2012-May-14} {Version 3.7.12} { 159 SQLite [version 3.7.12] is a regularly scheduled maintenance release. 175 SQLite [version 3.7.12] is a regularly scheduled maintenance release. 160 This release contains several new optimizations and bug fixes and upgrading 176 This release contains several new optimizations and bug fixes and upgrading 161 is recommended. See the [version 3.7.12 | change summary] for details. 177 is recommended. See the [version 3.7.12 | change summary] for details. 162 } 178 } 163 179 164 newsitem {2012-March-20} {Version 3.7.11} { < 165 SQLite [version 3.7.11] is a regularly scheduled maintenance release < 166 which was rushed out early due to a < 167 [http://www.sqlite.org/src/info/b7c8682cc1 | bug in the query optimizer] < 168 introduced in the previous release. The bug is obscure - it changes < 169 a LEFT JOIN into an INNER JOIN in some cases when there is a 3-way join < 170 and OR terms in the WHERE clause. But it was considered serious enough to < 171 rush out a fix. Apart from this one problem, SQLite [version 3.7.10] has < 172 not given any trouble. Upgrading to [version 3.7.11] from versions < 173 3.7.6.3, 3.7.7, 3.7.7.1, 3.7.8, or 3.7.9 is < 174 optional. Upgrading from other releases, including the previous release < 175 3.7.10, is recommended. < 176 180 177 Other enhancements found in this release are enumerated in the < 178 [version 3.7.11 | change log]. < 179 } < 180 < 181 newsitem {2012-January-16} {Version 3.7.10} { < 182 SQLite [version 3.7.10] is a regularly scheduled maintenance release. < 183 Upgrading from version 3.7.6.3, 3.7.7, 3.7.7.1, 3.7.8, or 3.7.9 is < 184 optional. Upgrading from other releases is recommended. < 185 < 186 The [SQLITE_CONFIG_PCACHE] mechanism has been replaced with < 187 [SQLITE_CONFIG_PCACHE2]. If you do not know what this mechanism < 188 is (it is an extreme corner-case and is seldom used) then this < 189 change will not effect you in the least. < 190 < 191 The default [schema format number] for new database files has changed < 192 from 1 to 4. SQLite has been able to generate and read database files < 193 using schema format 4 for six years. But up unto now, the default < 194 schema format has been 1 so that older versions of SQLite could read < 195 and write databases generated by newer versions of SQLite. But those < 196 older versions of SQLite have become so scarce now that it seems < 197 reasonable to make the new format the default. < 198 < 199 SQLite is changing some of the assumptions it makes above the behavior < 200 of disk drives and flash memory devices during a sudden power loss. < 201 This change is completely transparent to applications. < 202 Read about the [powersafe overwrite] property for additional information. < 203 < 204 Lots of new interfaces have been added in this release: < 205 <ul> < 206 <li> [sqlite3_db_release_memory()] < 207 <li> [PRAGMA shrink_memory] < 208 <li> [sqlite3_db_filename()] < 209 <li> [sqlite3_stmt_busy()] < 210 <li> [sqlite3_uri_boolean()] < 211 <li> [sqlite3_uri_int64()] < 212 </ul> < 213 < 214 The [PRAGMA cache_size] statement has been enhanced. Formerly, you would < 215 use this statement to tell SQLite how many pages of the database files it < 216 should hold in its cache at once. The total memory requirement would < 217 depend on the database page size. Now, if you give [PRAGMA cache_size] < 218 a negative value -N, it will allocate roughly N < 219 [http://en.wikipedia.org/wiki/Kibibyte | kibibytes] of memory to cache, < 220 divided up according to page size. This enhancement allows programs to < 221 more easily control their memory usage. < 222 < 223 There have been several obscure bug fixes. One noteworthy bug, < 224 ticket [http://www.sqlite.org/src/info/ff5be73dee | ff5be73dee], < 225 could in theory result in a corrupt database file if a power loss < 226 occurred at just the wrong moment on an unusually cantankerous disk < 227 drive. But that is mostly a theoretical concern and is very unlikely < 228 to happen in practice. The bug was found during laboratory testing < 229 and has never been observed to occur in the wild. < 230 } < 231 < 232 newsitem {2011-November-01} {Version 3.7.9} { < 233 SQLite [version 3.7.9] is a regularly scheduled maintenance release. < 234 Upgrading from version 3.7.6.3, 3.7.7, 3.7.7.1, and 3.7.8 is optional. < 235 Upgrading from other versions is recommended. < 236 < 237 The [SQLITE_ENABLE_STAT2] compile-time option is now a no-op. The enhanced < 238 query-planner functionality formerly available using SQLITE_ENABLE_STAT2 < 239 is now available through [SQLITE_ENABLE_STAT3]. The enhanced query planning < 240 is still disabled by default. However, future releases of SQLite might < 241 convert STAT3 from an enable-option to a disable-option so that it is < 242 available by default and is only omitted upon request. < 243 < 244 The [FTS4] full-text search engine has been enhanced such that tokens in < 245 the search string that begin with "&#94" must be the first token in their < 246 respective columns in order to match. Formerly, "&#94;" characters in the < 247 search string were simply ignored. Hence, if a legacy application was < 248 including "&#94;" characters in FTS4 search strings, thinking that they would < 249 always be ignored, then those legacy applications might break with this < 250 update. The fix is simply remove the "&#94;" characters from the search < 251 string. < 252 < 253 See the [version 3.7.9 | change summary] for additional changes associated < 254 with this release. < 255 } < 256 < 257 newsitem {2011-September-19} {Version 3.7.8} { < 258 SQLite [version 3.7.8] is a quarterly maintenance release. Upgrading from < 259 versions 3.7.6.3, 3.7.7, or 3.7.7.1 is optional. Upgrading from other < 260 versions is recommended. < 261 < 262 This release features a new "external merge sort" algorithm used to < 263 implement ORDER BY and GROUP BY and also to presort the content of an < 264 index for CREATE INDEX. The new algorithm does approximately the same < 265 number of comparisons and I/Os as before, but the I/Os are much more < 266 sequential and so runtimes are greatly reduced when the size of the < 267 set being sorted is larger than the filesystem cache. The performance < 268 improvement can be dramatic - orders of magnitude faster < 269 for large CREATE INDEX commands. On the other hand, < 270 the code is slightly slower (1% or 2%) < 271 for a small CREATE INDEX. Since CREATE INDEX is not an < 272 operation that commonly occurs on a speed-critical path, we feel that < 273 this tradeoff is a good one. The slight slowdown for small CREATE INDEX < 274 statements might be recovered in a future release. ORDER BY and GROUP BY < 275 operations should now be faster for all cases, large and small. < 276 < 277 The query planner has been enhanced to do a better job of handling < 278 the DISTINCT keyword on SELECT statements. < 279 < 280 There has been a lot of work on the default [VFSes]. The unix VFS has < 281 been enhanced to include more overrideable system calls - a feature requested < 282 by Chromium to make it easier to build SQLite into a sandbox. The < 283 windows VFS has been enhanced to be more resistant to interference from < 284 anti-virus software. < 285 < 286 Every version of SQLite is better tested than the previous, and 3.7.8 < 287 is no exception to this rule. Version 3.7.8 has been used internally by < 288 the SQLite team for mission critical functions and has performed flawlessly. < 289 And, of course, it passes our rigorous [testing] procedures with no < 290 problems detected. Version 3.7.8 is recommended for all new development. < 291 } < 292 < 293 < 294 </tcl> 181 </tcl> 295 182 296 <a href="oldnews.html">Old news...</a> 183 <a href="oldnews.html">Old news...</a>

Changes to pages/oldnews.in

6 regsub -all {[^a-z0-9]} $date _ tag 6 regsub -all {[^a-z0-9]} $date _ tag 7 hd_puts "<a name=\"$tag\"></a>" 7 hd_puts "<a name=\"$tag\"></a>" 8 hd_puts "<h3>$date - $title</h3>" 8 hd_puts "<h3>$date - $title</h3>" 9 regsub -all "\n( *\n)+" $text "</p>\n\n<p>" txt 9 regsub -all "\n( *\n)+" $text "</p>\n\n<p>" txt 10 hd_resolve "<blockquote>$txt</blockquote>" 10 hd_resolve "<blockquote>$txt</blockquote>" 11 hd_puts "<hr width=\"50%\">" 11 hd_puts "<hr width=\"50%\">" 12 } 12 } > 13 > 14 newsitem {2012-March-20} {Version 3.7.11} { > 15 SQLite [version 3.7.11] is a regularly scheduled maintenance release > 16 which was rushed out early due to a > 17 [http://www.sqlite.org/src/info/b7c8682cc1 | bug in the query optimizer] > 18 introduced in the previous release. The bug is obscure - it changes > 19 a LEFT JOIN into an INNER JOIN in some cases when there is a 3-way join > 20 and OR terms in the WHERE clause. But it was considered serious enough to > 21 rush out a fix. Apart from this one problem, SQLite [version 3.7.10] has > 22 not given any trouble. Upgrading to [version 3.7.11] from versions > 23 3.7.6.3, 3.7.7, 3.7.7.1, 3.7.8, or 3.7.9 is > 24 optional. Upgrading from other releases, including the previous release > 25 3.7.10, is recommended. > 26 > 27 Other enhancements found in this release are enumerated in the > 28 [version 3.7.11 | change log]. > 29 } > 30 > 31 newsitem {2012-January-16} {Version 3.7.10} { > 32 SQLite [version 3.7.10] is a regularly scheduled maintenance release. > 33 Upgrading from version 3.7.6.3, 3.7.7, 3.7.7.1, 3.7.8, or 3.7.9 is > 34 optional. Upgrading from other releases is recommended. > 35 > 36 The [SQLITE_CONFIG_PCACHE] mechanism has been replaced with > 37 [SQLITE_CONFIG_PCACHE2]. If you do not know what this mechanism > 38 is (it is an extreme corner-case and is seldom used) then this > 39 change will not effect you in the least. > 40 > 41 The default [schema format number] for new database files has changed > 42 from 1 to 4. SQLite has been able to generate and read database files > 43 using schema format 4 for six years. But up unto now, the default > 44 schema format has been 1 so that older versions of SQLite could read > 45 and write databases generated by newer versions of SQLite. But those > 46 older versions of SQLite have become so scarce now that it seems > 47 reasonable to make the new format the default. > 48 > 49 SQLite is changing some of the assumptions it makes above the behavior > 50 of disk drives and flash memory devices during a sudden power loss. > 51 This change is completely transparent to applications. > 52 Read about the [powersafe overwrite] property for additional information. > 53 > 54 Lots of new interfaces have been added in this release: > 55 <ul> > 56 <li> [sqlite3_db_release_memory()] > 57 <li> [PRAGMA shrink_memory] > 58 <li> [sqlite3_db_filename()] > 59 <li> [sqlite3_stmt_busy()] > 60 <li> [sqlite3_uri_boolean()] > 61 <li> [sqlite3_uri_int64()] > 62 </ul> > 63 > 64 The [PRAGMA cache_size] statement has been enhanced. Formerly, you would > 65 use this statement to tell SQLite how many pages of the database files it > 66 should hold in its cache at once. The total memory requirement would > 67 depend on the database page size. Now, if you give [PRAGMA cache_size] > 68 a negative value -N, it will allocate roughly N > 69 [http://en.wikipedia.org/wiki/Kibibyte | kibibytes] of memory to cache, > 70 divided up according to page size. This enhancement allows programs to > 71 more easily control their memory usage. > 72 > 73 There have been several obscure bug fixes. One noteworthy bug, > 74 ticket [http://www.sqlite.org/src/info/ff5be73dee | ff5be73dee], > 75 could in theory result in a corrupt database file if a power loss > 76 occurred at just the wrong moment on an unusually cantankerous disk > 77 drive. But that is mostly a theoretical concern and is very unlikely > 78 to happen in practice. The bug was found during laboratory testing > 79 and has never been observed to occur in the wild. > 80 } > 81 > 82 newsitem {2011-November-01} {Version 3.7.9} { > 83 SQLite [version 3.7.9] is a regularly scheduled maintenance release. > 84 Upgrading from version 3.7.6.3, 3.7.7, 3.7.7.1, and 3.7.8 is optional. > 85 Upgrading from other versions is recommended. > 86 > 87 The [SQLITE_ENABLE_STAT2] compile-time option is now a no-op. The enhanced > 88 query-planner functionality formerly available using SQLITE_ENABLE_STAT2 > 89 is now available through [SQLITE_ENABLE_STAT3]. The enhanced query planning > 90 is still disabled by default. However, future releases of SQLite might > 91 convert STAT3 from an enable-option to a disable-option so that it is > 92 available by default and is only omitted upon request. > 93 > 94 The [FTS4] full-text search engine has been enhanced such that tokens in > 95 the search string that begin with "&#94" must be the first token in their > 96 respective columns in order to match. Formerly, "&#94;" characters in the > 97 search string were simply ignored. Hence, if a legacy application was > 98 including "&#94;" characters in FTS4 search strings, thinking that they would > 99 always be ignored, then those legacy applications might break with this > 100 update. The fix is simply remove the "&#94;" characters from the search > 101 string. > 102 > 103 See the [version 3.7.9 | change summary] for additional changes associated > 104 with this release. > 105 } > 106 > 107 newsitem {2011-September-19} {Version 3.7.8} { > 108 SQLite [version 3.7.8] is a quarterly maintenance release. Upgrading from > 109 versions 3.7.6.3, 3.7.7, or 3.7.7.1 is optional. Upgrading from other > 110 versions is recommended. > 111 > 112 This release features a new "external merge sort" algorithm used to > 113 implement ORDER BY and GROUP BY and also to presort the content of an > 114 index for CREATE INDEX. The new algorithm does approximately the same > 115 number of comparisons and I/Os as before, but the I/Os are much more > 116 sequential and so runtimes are greatly reduced when the size of the > 117 set being sorted is larger than the filesystem cache. The performance > 118 improvement can be dramatic - orders of magnitude faster > 119 for large CREATE INDEX commands. On the other hand, > 120 the code is slightly slower (1% or 2%) > 121 for a small CREATE INDEX. Since CREATE INDEX is not an > 122 operation that commonly occurs on a speed-critical path, we feel that > 123 this tradeoff is a good one. The slight slowdown for small CREATE INDEX > 124 statements might be recovered in a future release. ORDER BY and GROUP BY > 125 operations should now be faster for all cases, large and small. > 126 > 127 The query planner has been enhanced to do a better job of handling > 128 the DISTINCT keyword on SELECT statements. > 129 > 130 There has been a lot of work on the default [VFSes]. The unix VFS has > 131 been enhanced to include more overrideable system calls - a feature requested > 132 by Chromium to make it easier to build SQLite into a sandbox. The > 133 windows VFS has been enhanced to be more resistant to interference from > 134 anti-virus software. > 135 > 136 Every version of SQLite is better tested than the previous, and 3.7.8 > 137 is no exception to this rule. Version 3.7.8 has been used internally by > 138 the SQLite team for mission critical functions and has performed flawlessly. > 139 And, of course, it passes our rigorous [testing] procedures with no > 140 problems detected. Version 3.7.8 is recommended for all new development. > 141 } 13 142 14 newsitem {2011-June-28} {Version 3.7.7.1} { 143 newsitem {2011-June-28} {Version 3.7.7.1} { 15 SQLite [version 3.7.7.1] adds a one-line bug fix to 3.7.7 to fix 144 SQLite [version 3.7.7.1] adds a one-line bug fix to 3.7.7 to fix 16 [http://www.sqlite.org/src/info/25ee812710 | a problem] 145 [http://www.sqlite.org/src/info/25ee812710 | a problem] 17 causing [PRAGMA case_sensitive_like] statements compiled using the legacy 146 causing [PRAGMA case_sensitive_like] statements compiled using the legacy 18 [sqlite3_prepare()] interface to fail with an [SQLITE_SCHEMA] error. Because 147 [sqlite3_prepare()] interface to fail with an [SQLITE_SCHEMA] error. Because 19 [sqlite3_exec()] uses sqlite3_prepare() internally, the problem also affects 148 [sqlite3_exec()] uses sqlite3_prepare() internally, the problem also affects

Changes to pages/pragma.in

970 <p>^(<b>PRAGMA foreign_key_list(</b><i>table-name</i><b>);</b></p> 970 <p>^(<b>PRAGMA foreign_key_list(</b><i>table-name</i><b>);</b></p> 971 971 972 <p>This pragma returns one row for each foreign key that references 972 <p>This pragma returns one row for each foreign key that references 973 a column in the argument table.)^ 973 a column in the argument table.)^ 974 } 974 } 975 975 976 Pragma foreign_key_check { 976 Pragma foreign_key_check { 977 <p>^(<b>PRAGMA foreign_key_check;)^</b></p> | 977 <p><b>^(PRAGMA foreign_key_check;)^</b></p> 978 978 979 <p>The foreign_key_check pragma checks the database for 979 <p>The foreign_key_check pragma checks the database for 980 [foreign key constraints] that are violated and returns one row of 980 [foreign key constraints] that are violated and returns one row of 981 output for each violation. There are four columns in each result row. 981 output for each violation. There are four columns in each result row. 982 The first column is the name of the table that contains the REFERENCES 982 The first column is the name of the table that contains the REFERENCES 983 clause. The second column is the [rowid] of the row the that that | 983 clause. The second column is the [rowid] of the row that 984 contains the invalid REFERENCES clause. The third column is the name 984 contains the invalid REFERENCES clause. The third column is the name 985 of the table that is referred to. The fourth column is the index of 985 of the table that is referred to. The fourth column is the index of 986 the specific foreign key constraint that failed. The fourth column 986 the specific foreign key constraint that failed. The fourth column 987 in the output of the foreign_key_check pragma is the same integer as 987 in the output of the foreign_key_check pragma is the same integer as 988 the first column in the output of the foreign_key_list pragma.</p> | 988 the first column in the output of the [foreign_key_list pragma].</p> 989 } 989 } 990 990 991 Pragma freelist_count { 991 Pragma freelist_count { 992 <p>^(<b>PRAGMA freelist_count;</b></p> 992 <p>^(<b>PRAGMA freelist_count;</b></p> 993 <p>Return the number of unused pages in the database file.)^</p> 993 <p>Return the number of unused pages in the database file.)^</p> 994 } 994 } 995 995

Changes to pages/spellfix1.in

196 the form "top=N" in the WHERE clause of the query. 196 the form "top=N" in the WHERE clause of the query. 197 197 198 <dt><p><b>scope</b><dd> 198 <dt><p><b>scope</b><dd> 199 (HIDDEN) For any query, this value is the same on all 199 (HIDDEN) For any query, this value is the same on all 200 rows. The scope is a measure of how widely the virtual 200 rows. The scope is a measure of how widely the virtual 201 table looks for matching words. Smaller values of 201 table looks for matching words. Smaller values of 202 scope cause a broader search. The scope is normally 202 scope cause a broader search. The scope is normally 203 choosen automatically and is capped at 4. Applications | 203 chosen automatically and is capped at 4. Applications 204 can change the scope by including a term of the form 204 can change the scope by including a term of the form 205 "scope=N" in the WHERE clause of the query. Increasing 205 "scope=N" in the WHERE clause of the query. Increasing 206 the scope will make the query run faster, but will reduce 206 the scope will make the query run faster, but will reduce 207 the possible corrections. 207 the possible corrections. 208 208 209 <dt><p><b>srchcnt</b><dd> 209 <dt><p><b>srchcnt</b><dd> 210 (HIDDEN) For any query, this value is the same on all 210 (HIDDEN) For any query, this value is the same on all ................................................................................................................................................................................ 276 is exposed as spellfix1_editdist(X,Y). The edit distance function 276 is exposed as spellfix1_editdist(X,Y). The edit distance function 277 returns the "cost" of converting X into Y. Some transformations 277 returns the "cost" of converting X into Y. Some transformations 278 cost more than others. Changing one vowel into a different vowel, 278 cost more than others. Changing one vowel into a different vowel, 279 for example is relatively cheap, as is doubling a constant, or 279 for example is relatively cheap, as is doubling a constant, or 280 omitting the second character of a double-constant. Other transformations 280 omitting the second character of a double-constant. Other transformations 281 or more expensive. The idea is that the edit distance function returns 281 or more expensive. The idea is that the edit distance function returns 282 a low cost of words that are similar and a higher cost for words 282 a low cost of words that are similar and a higher cost for words 283 that are futher apart. In this implementation, the maximum cost | 283 that are further apart. In this implementation, the maximum cost 284 of any single-character edit (delete, insert, or substitute) is 100, 284 of any single-character edit (delete, insert, or substitute) is 100, 285 with lower costs for some edits (such as transforming vowels). 285 with lower costs for some edits (such as transforming vowels). 286 286 287 <p>The "score" for a comparison is the edit distance between the pattern 287 <p>The "score" for a comparison is the edit distance between the pattern 288 and the word, adjusted down by the base-2 logorithm of the word rank. | 288 and the word, adjusted down by the base-2 logarithm of the word rank. 289 For example, a match with distance 100 but rank 1000 would have a 289 For example, a match with distance 100 but rank 1000 would have a 290 score of 122 (= 100 - log2(1000) + 32) where as a match with distance 290 score of 122 (= 100 - log2(1000) + 32) where as a match with distance 291 100 with a rank of 1 would have a score of 131 (100 - log2(1) + 32). 291 100 with a rank of 1 would have a score of 131 (100 - log2(1) + 32). 292 (NB: The constant 32 is added to each score to keep it from going 292 (NB: The constant 32 is added to each score to keep it from going 293 negative in case the edit distance is zero.) In this way, frequently 293 negative in case the edit distance is zero.) In this way, frequently 294 used words get a slightly lower cost which tends to move them toward 294 used words get a slightly lower cost which tends to move them toward 295 the top of the list of alternative spellings. 295 the top of the list of alternative spellings. ................................................................................................................................................................................ 334 when the virtual table is created. 334 when the virtual table is created. 335 For example: 335 For example: 336 336 337 <blockquote><pre> 337 <blockquote><pre> 338 CREATE VIRTUAL TABLE demo2 USING spellfix1(edit_cost_table=APPCOST); 338 CREATE VIRTUAL TABLE demo2 USING spellfix1(edit_cost_table=APPCOST); 339 </pre></blockquote> 339 </pre></blockquote> 340 340 > 341 <p>The [editdist3()] edit-distance function can also be selected or > 342 deselected at run-time by inserting an appropriate string into the > 343 "command" column of the virtual table:</p> > 344 > 345 <blockquote><pre> > 346 INSERT INTO demo2(command) VALUES('edit_cost_table=APPCOST'); > 347 </pre></blockquote> > 348 > 349 341 <p>In the example above, the APPCOST table would be interrogated to find | 350 <p>In the examples above, the APPCOST table would be interrogated to find 342 the edit distance coefficients. It is the presence of the "edit_cost_table=" 351 the edit distance coefficients. It is the presence of the "edit_cost_table=" 343 parameter to the spellfix1 module name that causes editdist3() to be used 352 parameter to the spellfix1 module name that causes editdist3() to be used 344 in place of the built-in edit distance function. | 353 in place of the built-in edit distance function. If APPCOST is an empty > 354 string, then the built-in Wagner edit-distance function is used. 345 355 346 <p>The edit distance coefficients are normally read from the APPCOST table 356 <p>The edit distance coefficients are normally read from the APPCOST table 347 once and there after stored in memory. Hence, run-time changes to the 357 once and there after stored in memory. Hence, run-time changes to the 348 APPCOST table will not normally effect the edit distance results. 358 APPCOST table will not normally effect the edit distance results. 349 However, inserting the special string 'reset' into the "command" column of the 359 However, inserting the special string 'reset' into the "command" column of the 350 virtual table causes the edit distance coefficients to be reread the 360 virtual table causes the edit distance coefficients to be reread the 351 APPCOST table. Hence, applications should run a SQL statement similar 361 APPCOST table. Hence, applications should run a SQL statement similar ................................................................................................................................................................................ 399 <li>Silent "d" in words beginning with "dj": djinn, Djikarta 409 <li>Silent "d" in words beginning with "dj": djinn, Djikarta 400 <li>Silent "k" in words beginning with "kn": knight, Knuthson 410 <li>Silent "k" in words beginning with "kn": knight, Knuthson 401 <li>Silent "g" in words beginning with "gn": gnarly, gnome, gnat 411 <li>Silent "g" in words beginning with "gn": gnarly, gnome, gnat 402 <li>"Mac" versus "Mc" beginning Scottish surnames 412 <li>"Mac" versus "Mc" beginning Scottish surnames 403 <li>"Tch" sounds in Slavic words: Tchaikovsky vs. Chaykovsky 413 <li>"Tch" sounds in Slavic words: Tchaikovsky vs. Chaykovsky 404 <li>The letter "j" pronounced like "h" in Spanish: LaJolla 414 <li>The letter "j" pronounced like "h" in Spanish: LaJolla 405 <li>Words beginning with "wr" versus "r": write vs. rite 415 <li>Words beginning with "wr" versus "r": write vs. rite 406 <li>Miscellanous problem words such as "debt", "tsetse", | 416 <li>Miscellaneous problem words such as "debt", "tsetse", 407 "Nguyen", "Van Nuyes". 417 "Nguyen", "Van Nuyes". 408 </ul> 418 </ul> 409 419 410 <h2>Auxiliary Functions</h2> 420 <h2>Auxiliary Functions</h2> 411 421 412 <p>The source code module that implements the spellfix1 virtual table also 422 <p>The source code module that implements the spellfix1 virtual table also 413 implements several SQL functions that might be useful to applications 423 implements several SQL functions that might be useful to applications ................................................................................................................................................................................ 433 <dt><p><b>spellfix1_phonehash(X)</b><dd> 443 <dt><p><b>spellfix1_phonehash(X)</b><dd> 434 This routine constructs a phonetic hash of the pure ascii input word X 444 This routine constructs a phonetic hash of the pure ascii input word X 435 and returns that hash. This routine is used internally by spellfix1 in 445 and returns that hash. This routine is used internally by spellfix1 in 436 order to transform the K1 column of the shadow table into the K2 446 order to transform the K1 column of the shadow table into the K2 437 column. 447 column. 438 448 439 <dt><p><b>spellfix1_scriptcode(X)</b><dd> 449 <dt><p><b>spellfix1_scriptcode(X)</b><dd> 440 Given an input string X, this routine attempts to determin the dominant | 450 Given an input string X, this routine attempts to determine the dominant 441 script of that input and returns the ISO-15924 numeric code for that 451 script of that input and returns the ISO-15924 numeric code for that 442 script. The current implementation understands the following scripts: 452 script. The current implementation understands the following scripts: 443 <ul> 453 <ul> 444 <li> 215 - Latin 454 <li> 215 - Latin 445 <li> 220 - Cyrillic 455 <li> 220 - Cyrillic 446 <li> 200 - Greek 456 <li> 200 - Greek 447 </ul> 457 </ul> ................................................................................................................................................................................ 492 The only requirement is that the 502 The only requirement is that the 493 table must contain the four columns show above, with exactly the names shown. 503 table must contain the four columns show above, with exactly the names shown. 494 504 495 <p>The iLang column is a non-negative integer that identifies a set of costs 505 <p>The iLang column is a non-negative integer that identifies a set of costs 496 appropriate for a particular language. The editdist3 function will only use 506 appropriate for a particular language. The editdist3 function will only use 497 a single iLang value for any given edit-distance computation. The default 507 a single iLang value for any given edit-distance computation. The default 498 value is 0. It is recommended that applications that only need to use a 508 value is 0. It is recommended that applications that only need to use a 499 single langauge always use iLang==0 for all entries. | 509 single language always use iLang==0 for all entries. 500 510 501 <p>The iCost column is the numeric cost of transforming cFrom into cTo. This 511 <p>The iCost column is the numeric cost of transforming cFrom into cTo. This 502 value should be a non-negative integer, and should probably be less than 100. 512 value should be a non-negative integer, and should probably be less than 100. 503 The default single-character insertion and deletion costs are 100 and the 513 The default single-character insertion and deletion costs are 100 and the 504 default single-character to single-character substitution cost is 150. A 514 default single-character to single-character substitution cost is 150. A 505 cost of 10000 or more is considered "infinite" and causes the rule to be 515 cost of 10000 or more is considered "infinite" and causes the rule to be 506 ignored. 516 ignored.

Changes to pages/tempfiles.in

178 Shared memory files only exist while running in WAL mode. 178 Shared memory files only exist while running in WAL mode. 179 </p> 179 </p> 180 180 181 <p> 181 <p> 182 The shared-memory file contains no persistent content. The only purpose 182 The shared-memory file contains no persistent content. The only purpose 183 of the shared-memory file is to provide a block of shared memory for use 183 of the shared-memory file is to provide a block of shared memory for use 184 by multiple processes all accessing the same database in WAL mode. 184 by multiple processes all accessing the same database in WAL mode. 185 If the [VFS] is able to providean alternative method for accessing shared | 185 If the [VFS] is able to provide an alternative method for accessing shared 186 memory, then that alternative method might be used rather than the 186 memory, then that alternative method might be used rather than the 187 shared-memory file. For example, if [PRAGMA locking_mode] is set to 187 shared-memory file. For example, if [PRAGMA locking_mode] is set to 188 EXCLUSIVE (meaning that only one process is able to access the database 188 EXCLUSIVE (meaning that only one process is able to access the database 189 file) then the shared memory will be allocated from heap rather than out 189 file) then the shared memory will be allocated from heap rather than out 190 of the shared-memory file, and the shared-memory file will never be 190 of the shared-memory file, and the shared-memory file will never be 191 created. 191 created. 192 </p> 192 </p>

Changes to pages/vfs.in

175 The following are other VFS implementations available in the public 175 The following are other VFS implementations available in the public 176 SQLite source tree: 176 SQLite source tree: 177 </p> 177 </p> 178 178 179 <ul> 179 <ul> 180 <li><p> 180 <li><p> 181 [http://www.sqlite.org/src/doc/trunk/src/test_demovfs.c | test_demovfs.c] - 181 [http://www.sqlite.org/src/doc/trunk/src/test_demovfs.c | test_demovfs.c] - 182 This file implements a very simple VFS named "demo" that uss POSIX | 182 This file implements a very simple VFS named "demo" that uses POSIX 183 functions such as 183 functions such as 184 open(), read(), write(), fsync(), close(), fsync(), sleep(), time(), 184 open(), read(), write(), fsync(), close(), fsync(), sleep(), time(), 185 and so forth. This VFS only works on unix systems. But it is not 185 and so forth. This VFS only works on unix systems. But it is not 186 intended as a replacement for the standard "unix" VFS used by default 186 intended as a replacement for the standard "unix" VFS used by default 187 on unix platforms. The "demo" VFS is deliberately kept very simple 187 on unix platforms. The "demo" VFS is deliberately kept very simple 188 so that it can be used as a learning aid or as template for building 188 so that it can be used as a learning aid or as template for building 189 other VFSes or for porting SQLite to new operating systems. 189 other VFSes or for porting SQLite to new operating systems.