Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Documentation updates for version 3.1.4. (CVS 2375) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
a7261f1590367932db23f5c8d6d78588 |
User & Date: | drh 2005-03-11 04:39:58.000 |
Context
2005-03-11
| ||
04:40 | Increase the version number to 3.1.4. (CVS 2376) (check-in: e438b65cf9 user: drh tags: trunk) | |
04:39 | Documentation updates for version 3.1.4. (CVS 2375) (check-in: a7261f1590 user: drh tags: trunk) | |
2005-03-10
| ||
17:06 | Another case of returning SQLITE_CORRUPT when a corrupt database file is detected. (CVS 2374) (check-in: 8710192797 user: drh tags: trunk) | |
Changes
Changes to www/capi3.tcl.
|
| | > > > > | > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | set rcsid {$Id: capi3.tcl,v 1.9 2005/03/11 04:39:58 drh Exp $} source common.tcl header {C/C++ Interface For SQLite Version 3} proc AddHyperlinks {txt} { regsub -all {([^:alnum:>])(sqlite3_\w+)(\([^\)]*\))} $txt \ {\1<a href="capi3ref.html#\2">\2</a>\3} t2 puts $t2 } AddHyperlinks { <h2>C/C++ Interface For SQLite Version 3</h2> <h3>1.0 Overview</h3> <p> SQLite version 3.0 is a new version of SQLite, derived from the SQLite 2.8.13 code base, but with an incompatible file format |
︙ | ︙ | |||
189 190 191 192 193 194 195 | All prepared statements must be finalized before the database can be closed. The sqlite3_reset() routine resets a prepared SQL statement so that it can be executed again. </p> <p> | | > | | | | < | | 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 | All prepared statements must be finalized before the database can be closed. The sqlite3_reset() routine resets a prepared SQL statement so that it can be executed again. </p> <p> The SQL statement may contain tokens of the form "?" or "?nnn" or ":aaa" where "nnn" is an integer and "aaa" is an identifier. Such tokens represent unspecified literal values (or "wildcards") to be filled in later by the <a href="capi3ref.html#sqlite3_bind_blob">sqlite3_bind</a> interface. Each wildcard has an associated number which is its sequence in the statement or the "nnn" in the case of a "?nnn" form. It is allowed for the same wildcard to occur more than once in the same SQL statement, in which case all instance of that wildcard will be filled in with the same value. Unbound wildcards have a value of NULL. </p> <blockquote><pre> int sqlite3_bind_blob(sqlite3_stmt*, int, const void*, int n, void(*)(void*)); |
︙ | ︙ | |||
269 270 271 272 273 274 275 | works similarly to sqlite3_column_count() except that it only works following sqlite3_step(). If the previous call to sqlite3_step() returned SQLITE_DONE or an error code, then sqlite3_data_count() will return 0 whereas sqlite3_column_count() will continue to return the number of columns in the result set. </p> | | | 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 | works similarly to sqlite3_column_count() except that it only works following sqlite3_step(). If the previous call to sqlite3_step() returned SQLITE_DONE or an error code, then sqlite3_data_count() will return 0 whereas sqlite3_column_count() will continue to return the number of columns in the result set. </p> <p>Returned data is examined using the other sqlite3_column_***() functions, all of which take a column number as their second parameter. Columns are zero-indexed from left to right. Note that this is different to parameters, which are indexed starting at one. </p> <p> The sqlite3_column_type() function returns the |
︙ | ︙ |
Changes to www/capi3ref.tcl.
|
| | | 1 2 3 4 5 6 7 8 | set rcsid {$Id: capi3ref.tcl,v 1.18 2005/03/11 04:39:58 drh Exp $} source common.tcl header {C/C++ Interface For SQLite Version 3} puts { <h2>C/C++ Interface For SQLite Version 3</h2> } proc api {name prototype desc {notused x}} { |
︙ | ︙ | |||
147 148 149 150 151 152 153 | If there is no parameter with the given name, return 0. The string zName is always in the UTF-8 encoding. } api {} { int sqlite3_busy_handler(sqlite3*, int(*)(void*,int), void*); } { | | | | | > | | | > | | > > > > > > > > > > > > > > > | 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 | If there is no parameter with the given name, return 0. The string zName is always in the UTF-8 encoding. } api {} { int sqlite3_busy_handler(sqlite3*, int(*)(void*,int), void*); } { This routine identifies a callback function that might be invoked whenever an attempt is made to open a database table that another thread or process has locked. If the busy callback is NULL, then SQLITE_BUSY is returned immediately upon encountering the lock. If the busy callback is not NULL, then the callback might invoked with two arguments. The second argument is the number of prior calls to the busy callback for the same lock. If the busy callback returns 0, then no additional attempts are made to access the database and SQLITE_BUSY is returned. If the callback returns non-zero, then another attempt is made to open the database for reading and the cycle repeats. That a busy handler is registered does not guarantee that it will be invoked when there is lock contention. If SQLite determines that invoking the busy handler could result in a deadlock, it will return SQLITE_BUSY instead. Consider a scenario where one process is holding a read lock that it is trying to promote to a reserved lock and a second process is holding a reserved lock that it is trying to promote to an exclusive lock. The first process cannot proceed because it is blocked by the second and the second process cannot proceed because it is blocked by the first. If both processes invoke the busy handlers, neither will make any progress. Therefore, SQLite returns SQLITE_BUSY for the first process, hoping that this will induce the first process to release its read lock and allow the second process to proceed. The default busy callback is NULL. Sqlite is re-entrant, so the busy handler may start a new query. (It is not clear why anyone would every want to do this, but it is allowed, in theory.) But the busy handler may not close the database. Closing the database from a busy handler will delete |
︙ | ︙ |
Changes to www/changes.tcl.
︙ | ︙ | |||
16 17 18 19 20 21 22 23 24 25 26 27 28 29 | } proc chng {date desc} { puts "<DT><B>$date</B></DT>" puts "<DD><P><UL>$desc</UL></P></DD>" } chng {2005 February 19 (3.1.3)} { <li>Fix a problem with VACUUM on databases from which tables containing AUTOINCREMENT have been dropped.</li> <li>Add forward compatibility to the future version 3.2 database file format.</li> <li>Documentation updates</li> | > > > > > > > > > > > > > > > > | 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 | } proc chng {date desc} { puts "<DT><B>$date</B></DT>" puts "<DD><P><UL>$desc</UL></P></DD>" } chng {2005 February 19 (3.1.4)} { <li>Fix a bug in autovacuum that could cause database corruption if a CREATE UNIQUE INDEX fails because of a constraint violation. This problem only occurs if the new autovacuum feature introduced in version 3.1 is turned on.</li> <li>The F_FULLSYNC ioctl (currently only supported on OS-X) is disabled if the synchronous pragma is set to something other than "full".</li> <li>Add additional forward compatibility to the future version 3.2 database file format.</li> <li>Fix a bug in WHERE clauses of the form (rowid<'2')</li> <li>New SQLITE_OMIT_... compile-time options added</li> <li>Updates to the man page</li> <li>Remove the use of strcasecmp() from the shell</li> <li>Windows DLL exports symbols Tclsqlite_Init and Sqlite_Init</li> } chng {2005 February 19 (3.1.3)} { <li>Fix a problem with VACUUM on databases from which tables containing AUTOINCREMENT have been dropped.</li> <li>Add forward compatibility to the future version 3.2 database file format.</li> <li>Documentation updates</li> |
︙ | ︙ |
Changes to www/index.tcl.
︙ | ︙ | |||
25 26 27 28 29 30 31 | <li>Supports databases up to 2 terabytes (2<sup><small>41</small></sup> bytes) in size.</li> <li>Sizes of strings and BLOBs limited only by available memory.</li> <li>Small code footprint: less than 30K lines of C code, less than 250KB code space (gcc on i486)</li> <li><a href="speed.html">Faster</a> than popular client/server database engines for most common operations.</li> | | | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <li>Supports databases up to 2 terabytes (2<sup><small>41</small></sup> bytes) in size.</li> <li>Sizes of strings and BLOBs limited only by available memory.</li> <li>Small code footprint: less than 30K lines of C code, less than 250KB code space (gcc on i486)</li> <li><a href="speed.html">Faster</a> than popular client/server database engines for most common operations.</li> <li>Simple, easy to use <a href="capi3.html">API</a>.</li> <li><a href="tclsqlite.html">TCL bindings</a> included. Bindings for many other languages <a href="http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers"> available separately.</a></li> <li>Well-commented source code with over 95% test coverage.</li> <li>Self-contained: no external dependencies.</li> <li>Sources are in the <a href="copyright.html">public domain</a>. |
︙ | ︙ | |||
56 57 58 59 60 61 62 63 64 65 66 67 68 69 | proc newsitem {date title text} { puts "<h3>$date - $title</h3>" regsub -all "\n( *\n)+" $text "</p>\n\n<p>" txt puts "<p>$txt</p>" puts "<hr width=\"50%\">" } newsitem {2005-Feb-19} {Version 3.1.3 Released} { Version 3.1.3 cleans up some minor issues discovered in version 3.1.2. } newsitem {2005-Feb-15} {Versions 2.8.16 and 3.1.2 Released} { A critical bug in the VACUUM command that can lead to database | > > > > > > > > > > > > | 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | proc newsitem {date title text} { puts "<h3>$date - $title</h3>" regsub -all "\n( *\n)+" $text "</p>\n\n<p>" txt puts "<p>$txt</p>" puts "<hr width=\"50%\">" } newsitem {2005-Mar-10} {Version 3.1.4 Released} { Version 3.1.4 fixes a critical bug that could cause database corruption if the autovacuum mode of version 3.1.0 is turned on (it is off by default) and a CREATE UNIQUE INDEX is executed within a transaction but fails because the indexed columns are not unique. Anyone using the autovacuum feature and unique indices should upgrade. Other changes in version 3.1.4 include the ability to disable the F_FULLSYNC ioctl() by setting "PRAGMA synchronous=on" instead of the default "PRAGMA synchronous=full". } newsitem {2005-Feb-19} {Version 3.1.3 Released} { Version 3.1.3 cleans up some minor issues discovered in version 3.1.2. } newsitem {2005-Feb-15} {Versions 2.8.16 and 3.1.2 Released} { A critical bug in the VACUUM command that can lead to database |
︙ | ︙ | |||
103 104 105 106 107 108 109 | } puts { <p align="right"><a href="oldnews.html">Old news...</a></p> </td></tr></table> } | | | 115 116 117 118 119 120 121 122 | } puts { <p align="right"><a href="oldnews.html">Old news...</a></p> </td></tr></table> } footer {$Id: index.tcl,v 1.109 2005/03/11 04:39:58 drh Exp $} |