Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Changes capi3ref.html references to c3ref/ pages everywhere. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
c3a14fe2c718582c3fa007d67268e694 |
User & Date: | drh 2007-11-14 03:14:29.000 |
Context
2007-11-14
| ||
03:21 | Fix bugs in the compile.in webpage. Still need to update the content. (check-in: 2eb8090314 user: drh tags: trunk) | |
03:14 | Changes capi3ref.html references to c3ref/ pages everywhere. (check-in: c3a14fe2c7 user: drh tags: trunk) | |
02:58 | The FAQ links to c3ref/ pages instead of capi3ref.html. (check-in: fe967c2c85 user: drh tags: trunk) | |
Changes
Changes to pages/atomiccommit.in.
︙ | ︙ | |||
556 557 558 559 560 561 562 | automatically and transparently, it appears to the program using SQLite as if the aborted transaction had never begun.</p> <br clear="both"> <h2>5.0 Multi-file Commit</h2> <p>SQLite allows a single | | | 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 | automatically and transparently, it appears to the program using SQLite as if the aborted transaction had never begun.</p> <br clear="both"> <h2>5.0 Multi-file Commit</h2> <p>SQLite allows a single <a href="c3ref/sqlite3.html">database connection</a> to talk to two or more database files simultaneously through the use of the <a href="/lang_attach.html">ATTACH DATABASE</a> command. When multiple database files are modified within a single transaction, all files are updated atomically. In other words, either all of the database files are updated or else none of them are. Achieving an atomic commit across multiple database files is |
︙ | ︙ | |||
602 603 604 605 606 607 608 | <h3>5.2 The Master Journal File</h3> <img src="images/ac/multi-1.gif" align="right" hspace="15"> <p>The next step in a multi-file commit is the creation of a "master journal" file. The name of the master journal file is the same name as the original database filename (the database that was opened using the | | | 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 | <h3>5.2 The Master Journal File</h3> <img src="images/ac/multi-1.gif" align="right" hspace="15"> <p>The next step in a multi-file commit is the creation of a "master journal" file. The name of the master journal file is the same name as the original database filename (the database that was opened using the <a href="c3ref/open.html">sqlite3_open()</a> interface, not one of the <a href="lang_attach.html">ATTACHed</a> auxiliary databases) with the text "<b>-mj</b><i>HHHHHHHH</i>" appended where <i>HHHHHHHH</i> is a random 32-bit hexadecimal number. The random <i>HHHHHHHH</i> suffix changes for every new master journal.</p> <p><i>(Nota bene: The formula for computing the master journal filename given in the previous paragraph corresponds to the implementation as |
︙ | ︙ |
Changes to pages/changes.in.
︙ | ︙ | |||
79 80 81 82 83 84 85 | } chng {2007 Sep 04 (3.5.0) alpha} { <li>Redesign the OS interface layer. See <a href="34to35.html">34to35.html</a> for details. <font color="red">*** Potentially incompatible change ***</font> | | | | | | | | 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | } chng {2007 Sep 04 (3.5.0) alpha} { <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. } chng {2007 August 13 (3.4.2)} { <li>Fix a database corruption bug that might occur if a ROLLBACK command is executed in <a href="pragma.html#pragma_auto_vacuum">auto-vacuum mode</a> and a very small <a href="c3ref/soft_heap_limit.html"> 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">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. |
︙ | ︙ | |||
169 170 171 172 173 174 175 | <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> | | | | | | 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 | <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">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="c3ref/column_blob.html">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="c3ref/mprintf.html">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 |
︙ | ︙ | |||
321 322 323 324 325 326 327 | <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 | | | | | 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 | <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="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 included in the WHERE clause an IS NULL constraint for the right table of the LEFT JOIN.</li> <li>Make AreFileApisANSI() a no-op macro in winCE since winCE does not support this function.</li> } chng {2007 January 9 (3.3.10)} { <li>Fix bugs in the implementation of the new <a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> API that 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-character database 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 two processes both try to recover a hot journal at the same instant</li> <li>Added the <a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> API.</li> <li>Fixed the ".dump" command in the command-line shell to show indices, triggers and views again.</li> <li>Change the table_info pragma so that it returns NULL for the default value if there is no default value</li> <li>Support for non-ASCII characters in win95 filenames</li> <li>Query optimizer enhancements: |
︙ | ︙ | |||
404 405 406 407 408 409 410 | <li>Added support for <a href="http://www.sqlite.org/cvstrac/wiki?p=VirtualTables">virtual tables</a> (beta)</li> <li>Added support for <a href="http://www.sqlite.org/cvstrac/wiki?p=LoadableExtensions"> dynamically loaded extensions</a> (beta)</li> <li>The | | | 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 | <li>Added support for <a href="http://www.sqlite.org/cvstrac/wiki?p=VirtualTables">virtual tables</a> (beta)</li> <li>Added support for <a href="http://www.sqlite.org/cvstrac/wiki?p=LoadableExtensions"> dynamically loaded extensions</a> (beta)</li> <li>The <a href="c3ref/interrupt.html">sqlite3_interrupt()</a> routine can be called for a different thread</li> <li>Added the <a href="lang_expr.html#match">MATCH</a> operator.</li> <li>The default file format is now 1. } chng {2006 June 6 (3.3.6)} { <li>Plays better with virus scanners on windows</li> |
︙ | ︙ |
Changes to pages/compile.in.
︙ | ︙ | |||
82 83 84 85 86 87 88 | When this option is defined, the <a href="lang_altertable.html">ALTER TABLE</a> command is not included in the library. Executing an ALTER TABLE statement causes a parse error. </p> <p><b>SQLITE_OMIT_AUTHORIZATION</b><br> Defining this option omits the authorization callback feature from the | | | 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | When this option is defined, the <a href="lang_altertable.html">ALTER TABLE</a> command is not included in the library. Executing an ALTER TABLE statement causes a parse error. </p> <p><b>SQLITE_OMIT_AUTHORIZATION</b><br> Defining this option omits the authorization callback feature from the library. The <a href="c3ref/set_authorizer.html"> sqlite3_set_authorizer()</a> API function is not present in the library. </p> <p><b>SQLITE_OMIT_AUTOVACUUM</b><br> If this option is defined, the library cannot create or write to databases that support <a href="pragma.html#pragma_auto_vacuum">auto-vacuum</a>. Executing a |
︙ | ︙ | |||
117 118 119 120 121 122 123 | #that contain blobs, so disabling this functionality may render a database #unvacuumable. #</p> #<p><i>TODO: Need a link here - is that syntax documented anywhere?</i><p> puts { <p><b>SQLITE_OMIT_COMPLETE</b><br> | | | 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | #that contain blobs, so disabling this functionality may render a database #unvacuumable. #</p> #<p><i>TODO: Need a link here - is that syntax documented anywhere?</i><p> puts { <p><b>SQLITE_OMIT_COMPLETE</b><br> This option causes the <a href="c3ref/complete.html"> sqlite3_complete</a> API to be omitted. </p> <p><b>SQLITE_OMIT_COMPOUND_SELECT</b><br> This option is used to omit the compound SELECT functionality. <a href="lang_select.html">SELECT statements</a> that use the UNION, UNION ALL, INTERSECT or EXCEPT compound SELECT operators will |
︙ | ︙ | |||
192 193 194 195 196 197 198 | specific pragmas in addition to this, as they may also remove supporting code in other sub-systems. This macro removes the PRAGMA command only. </p> <p><b>SQLITE_OMIT_PROGRESS_CALLBACK</b><br> This option may be defined to omit the capability to issue "progress" callbacks during long-running SQL statements. The | | | 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 | specific pragmas in addition to this, as they may also remove supporting code in other sub-systems. This macro removes the PRAGMA command only. </p> <p><b>SQLITE_OMIT_PROGRESS_CALLBACK</b><br> This option may be defined to omit the capability to issue "progress" callbacks during long-running SQL statements. The <a href="c3ref/progress_handler.html">sqlite3_progress_handler()</a> API function is not present in the library. <p><b>SQLITE_OMIT_REINDEX</b><br> When this option is defined, the <a href="lang_reindex.html">REINDEX</a> command is not included in the library. Executing a REINDEX statement causes a parse error. </p> |
︙ | ︙ |
Changes to pages/different.in.
︙ | ︙ | |||
211 212 213 214 215 216 217 | <a href="lang_replace.html">REPLACE</a> and the <a href="lang_conflict.html">ON CONFLICT</a> clause that allow for added control over the resolution of constraint conflicts. SQLite supports <a href="lang_attach.html">ATTACH</a> and <a href="lang_detach.html">DETACH</a> commands that allow multiple independent databases to be used together in the same query. And SQLite defines APIs that allows the user to add new | | | | 211 212 213 214 215 216 217 218 219 220 221 222 | <a href="lang_replace.html">REPLACE</a> and the <a href="lang_conflict.html">ON CONFLICT</a> clause that allow for added control over the resolution of constraint conflicts. SQLite supports <a href="lang_attach.html">ATTACH</a> and <a href="lang_detach.html">DETACH</a> commands that allow multiple independent databases to be used together in the same query. And SQLite defines APIs that allows the user to add new <a href="c3ref/create_function.html">SQL functions</a> and <a href="c3ref/create_collation.html">collating sequences</a>. } </tcl> |
Changes to pages/lang.in.
︙ | ︙ | |||
335 336 337 338 339 340 341 | For all of these errors, SQLite attempts to undo just the one statement it was working on and leave changes from prior statements within the same transaction intact and continue with the transaction. However, depending on the statement being evaluated and the point at which the error occurs, it might be necessary for SQLite to rollback and cancel the transaction. An application can tell which course of action SQLite took by using the | | | 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 | For all of these errors, SQLite attempts to undo just the one statement it was working on and leave changes from prior statements within the same transaction intact and continue with the transaction. However, depending on the statement being evaluated and the point at which the error occurs, it might be necessary for SQLite to rollback and cancel the transaction. An application can tell which course of action SQLite took by using the <a href="c3ref/get_autocommit.html">sqlite3_get_autocommit()</a> C-language interface.</p> <p>It is recommended that applications respond to the errors listed above by explicitly issuing a ROLLBACK command. If the transaction has already been rolled back automatically by the error response, then the ROLLBACK command will fail with an error, but no harm is caused by this.</p> |
︙ | ︙ | |||
784 785 786 787 788 789 790 | with an ordinary table, except that you cannot create triggers on a virtual table. Some virtual table implementations might impose additional restrictions. For example, many virtual tables are read-only.</p> <p>The <module-name> is the name of an object that implements the virtual table. The <module-name> must be registered with the SQLite database connection using | | | 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 | with an ordinary table, except that you cannot create triggers on a virtual table. Some virtual table implementations might impose additional restrictions. For example, many virtual tables are read-only.</p> <p>The <module-name> is the name of an object that implements the virtual table. The <module-name> must be registered with the SQLite database connection using sqlite3_create_module() prior to issuing the CREATE VIRTUAL TABLE statement. The module takes zero or more comma-separated arguments. The arguments can be just about any text as long as it has balanced parentheses. The argument syntax is sufficiently general that the arguments can be made to appear as column definitions in a traditional <a href="#createtable">CREATE TABLE</a> statement. SQLite passes the module arguments directly |
︙ | ︙ | |||
1036 1037 1038 1039 1040 1041 1042 | <p> A literal value can also be the token "NULL". </p> <p> A parameter specifies a placeholder in the expression for a literal value that is filled in at runtime using the | | | 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 | <p> A literal value can also be the token "NULL". </p> <p> A parameter specifies a placeholder in the expression for a literal value that is filled in at runtime using the <a href="c3ref/bind_blob.html">sqlite3_bind</a> API. Parameters can take several forms: </p <blockquote> <table class="pdf_functions"> <tr> <td align="right" valign="top"><b>?</b><i>NNN</i></td><td width="20"></td> |
︙ | ︙ | |||
1075 1076 1077 1078 1079 1080 1081 | any text at all. This syntax is the form of a variable name in the Tcl programming language.</td> </tr> </table> </blockquote> <p>Parameters that are not assigned values using | | | 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 | any text at all. This syntax is the form of a variable name in the Tcl programming language.</td> </tr> </table> </blockquote> <p>Parameters that are not assigned values using <a href="c3ref/bind_blob.html">sqlite3_bind</a> are treated as NULL.</p> <a name="like"></a> <p>The LIKE operator does a pattern matching comparison. The operand to the right contains the pattern, the left hand operand contains the string to match against the pattern. |
︙ | ︙ | |||
1198 1199 1200 1201 1202 1203 1204 | their result across all rows of the result set.</p> <a name="corefunctions"></a> <b>Core Functions</b> <p>The core functions shown below are available by default. Additional functions may be written in C and added to the database engine using | | | 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 | their result across all rows of the result set.</p> <a name="corefunctions"></a> <b>Core Functions</b> <p>The core functions shown below are available by default. Additional functions may be written in C and added to the database engine using the <a href="c3ref/create_function.html">sqlite3_create_function()</a> API.</p> <table border=0 cellpadding=10 class="pdf_functions"> <tr> <td valign="top" align="right" width=120>abs(<i>X</i>)</td> <td valign="top">Return the absolute value of argument <i>X</i>.</td> </tr> |
︙ | ︙ | |||
1220 1221 1222 1223 1224 1225 1226 | <tr> <td valign="top" align="right"> <a name="globFunc"></a> glob(<i>X</i>,<i>Y</i>)</td> <td valign="top">This function is used to implement the "<b>X GLOB Y</b>" syntax of SQLite. The | | | 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 | <tr> <td valign="top" align="right"> <a name="globFunc"></a> glob(<i>X</i>,<i>Y</i>)</td> <td valign="top">This function is used to implement the "<b>X GLOB Y</b>" syntax of SQLite. The <a href="c3ref/create_function.html">sqlite3_create_function()</a> interface can be used to override this function and thereby change the operation of the <a href="#globFunc">GLOB</a> operator.</td> </tr> <tr> <td valign="top" align="right">ifnull(<i>X</i>,<i>Y</i>)</td> |
︙ | ︙ | |||
1266 1267 1268 1269 1270 1271 1272 | like(<i>X</i>,<i>Y</i>)<br> like(<i>X</i>,<i>Y</i>,<i>Z</i>)</td> <td valign="top"> This function is used to implement the "<b>X LIKE Y [ESCAPE Z]</b>" syntax of SQL. If the optional ESCAPE clause is present, then the user-function is invoked with three arguments. Otherwise, it is invoked with two arguments only. The | | | 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 | like(<i>X</i>,<i>Y</i>)<br> like(<i>X</i>,<i>Y</i>,<i>Z</i>)</td> <td valign="top"> This function is used to implement the "<b>X LIKE Y [ESCAPE Z]</b>" syntax of SQL. If the optional ESCAPE clause is present, then the user-function is invoked with three arguments. Otherwise, it is invoked with two arguments only. The <a href="c3ref/create_function.html"> sqlite_create_function()</a> interface can be used to override this function and thereby change the operation of the <a href= "#like">LIKE</a> operator. When doing this, it may be important to override both the two and three argument versions of the like() function. Otherwise, different code may be called to implement the LIKE operator depending on whether or not an ESCAPE clause was specified.</td> |
︙ | ︙ | |||
1292 1293 1294 1295 1296 1297 1298 | <p>This function will fail if the extension attempts to modify or delete a SQL function or collating sequence. The extension can add new functions or collating sequences, but cannot modify or delete existing functions or collating sequences because those functions and/or collating sequences might be used elsewhere in the currently running SQL statement. To load an extension that changes or deletes functions or collating sequences, use the | | | 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 | <p>This function will fail if the extension attempts to modify or delete a SQL function or collating sequence. The extension can add new functions or collating sequences, but cannot modify or delete existing functions or collating sequences because those functions and/or collating sequences might be used elsewhere in the currently running SQL statement. To load an extension that changes or deletes functions or collating sequences, use the <a href="c3ref/load_extension.html">sqlite3_load_extension()</a> C-language API.</p> </tr> <tr> <td valign="top" align="right">lower(<i>X</i>)</td> <td valign="top">Return a copy of string <i>X</i> will all characters converted to lower case. The C library <b>tolower()</b> routine is used |
︙ | ︙ | |||
1450 1451 1452 1453 1454 1455 1456 | <tr> <td valign="top" align="right">zeroblob(<i>N</i>)</td> <td valign="top"><a name="zeroblob"></a> Return a BLOB consisting of N bytes of 0x00. SQLite manages these zeroblobs very efficiently. Zeroblobs can be used to reserve space for a BLOB that is later written using | | | | 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 | <tr> <td valign="top" align="right">zeroblob(<i>N</i>)</td> <td valign="top"><a name="zeroblob"></a> Return a BLOB consisting of N bytes of 0x00. SQLite manages these zeroblobs very efficiently. Zeroblobs can be used to reserve space for a BLOB that is later written using <a href="c3ref/blob_open.html">incremental BLOB I/O</a>.</td> </tr> </table> <b>Date And Time Functions</b> <p>Date and time functions are documented in the <a href="http://www.sqlite.org/cvstrac/wiki?p=DateAndTimeFunctions"> SQLite Wiki</a>.</p> <a name="aggregatefunctions"></a> <b>Aggregate Functions</b> <p> The aggregate functions shown below are available by default. Additional aggregate functions written in C may be added using the <a href="c3ref/create_function.html">sqlite3_create_function()</a> API.</p> <p> In any aggregate function that takes a single argument, that argument can be preceeded by the keyword DISTINCT. In such cases, duplicate elements are filtered before being passed into the aggregate function. For example, the function "count(distinct X)" will return the number |
︙ | ︙ |
Changes to pages/limits.in.
︙ | ︙ | |||
107 108 109 110 111 112 113 | <p> In most applications, the number of columns is small - a few dozen. There are places in the SQLite code generator that use algorithms that are O(N²) where N is the number of columns. So if you redefine SQLITE_MAX_COLUMN to be a really huge number and you generate SQL that uses a large number of columns, you may find that | | | 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | <p> In most applications, the number of columns is small - a few dozen. There are places in the SQLite code generator that use algorithms that are O(N²) where N is the number of columns. So if you redefine SQLITE_MAX_COLUMN to be a really huge number and you generate SQL that uses a large number of columns, you may find that <a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> runs slowly. } limititem {Maximum Length Of An SQL Statement} { <p> The maximum number of bytes in the text of an SQL statement is limited to SQLITE_MAX_SQL_LENGTH which defaults to 1000000. You |
︙ | ︙ | |||
133 134 135 136 137 138 139 | <blockquote> INSERT INTO tab1 VALUES(?,?,?); </blockquote> <p> Then use the | | | 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | <blockquote> INSERT INTO tab1 VALUES(?,?,?); </blockquote> <p> Then use the <a href="c3ref/bind_blob.html">sqlite3_bind_XXXX()</a> functions to bind your large string values to the SQL statement. The use of binding obviates the need to escape quote characters in the string, reducing the risk of SQL injection attacks. It is also runs faster since the large string does not need to be parsed or copied as much. </p> } |
︙ | ︙ | |||
217 218 219 220 221 222 223 | </p> } limititem {Maximum Number Of Host Parameters In A Single SQL Statement} { <p> A host parameter is a place-holder in an SQL statement that is filled in using one of the | | | 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 | </p> } limititem {Maximum Number Of Host Parameters In A Single SQL Statement} { <p> A host parameter is a place-holder in an SQL statement that is filled in using one of the <a href="c3ref/bind_blob.html">sqlite3_bind_XXXX()</a> interfaces. Many SQL programmers are familiar with using a question mark ("?") as a host parameter. SQLite also supports named host parameters prefaced by ":", "$", or "@" and numbered host parameters of the form "?123". </p> <p> Each host parameter in an SQLite statement is assigned a number. The |
︙ | ︙ |
Changes to pages/oldnews.in.
︙ | ︙ | |||
8 9 10 11 12 13 14 | regsub -all "\n( *\n)+" $text "</p>\n\n<p>" txt puts "<p>$txt</p>" puts "<hr width=\"50%\">" } newsitem {2007-Aug-13} {Version 3.4.2} { While stress-testing the | | | | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | regsub -all "\n( *\n)+" $text "</p>\n\n<p>" txt puts "<p>$txt</p>" puts "<hr width=\"50%\">" } newsitem {2007-Aug-13} {Version 3.4.2} { While stress-testing the <a href="c3ref/soft_heap_limit.html">soft_heap_limit</a> feature, a bug that could lead to <a href="http://www.sqlite.org/cvstrac/wiki?p=DatabaseCorruption">database corruption</a> was <a href="http://www.sqlite.org/cvstrac/tktview?tn=2565"> discovered and fixed</a>. Though the consequences of this bug are severe, the chances of hitting it in a typical application are remote. Upgrading is recommended only if you use the <a href="c3ref/soft_heap_limit.html">sqlite3_soft_heap_limit</a> interface. } newsitem {2007-Jly-20} {Version 3.4.1} { This release fixes 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>. The bug was introduced in version |
︙ | ︙ | |||
50 51 52 53 54 55 56 | use excessively large strings, BLOBs, tables, or SQL statements. The new limits can be increased at compile-time to work around any problems that arise. Nevertheless, the version number of this release is 3.4.0 instead of 3.3.18 in order to call attention to the possible incompatibility. </p> There are also new features, including | | | 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | use excessively large strings, BLOBs, tables, or SQL statements. The new limits can be increased at compile-time to work around any problems that arise. Nevertheless, the version number of this release is 3.4.0 instead of 3.3.18 in order to call attention to the possible incompatibility. </p> There are also new features, including <a href="c3ref/blob_open.html">incremental BLOB I/O</a> and <a href="pragma.html#pragma_incremental_vacuum">incremental vacuum</a>. See the <a href="changes.html#version_3_4_0">change log</a> for additional information. } newsitem {2007-Apr-25} {Version 3.3.17} { This version fixes a bug in the forwards-compatibility logic of SQLite |
︙ | ︙ | |||
118 119 120 121 122 123 124 | newsitem {2007-Jan-4} {Version 3.3.9} { Version 3.3.9 fixes bugs that can lead to database corruption under obscure and difficult to reproduce circumstances. See <a href="http://www.sqlite.org/cvstrac/wiki?p=DatabaseCorruption"> DatabaseCorruption</a> in the <a href="http://www.sqlite.org/cvstrac/wiki">wiki</a> for details. This release also adds the new | | | 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | newsitem {2007-Jan-4} {Version 3.3.9} { Version 3.3.9 fixes bugs that can lead to database corruption under obscure and difficult to reproduce circumstances. See <a href="http://www.sqlite.org/cvstrac/wiki?p=DatabaseCorruption"> DatabaseCorruption</a> in the <a href="http://www.sqlite.org/cvstrac/wiki">wiki</a> for details. This release also adds the new <a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> API and includes important bug fixes in the command-line shell and enhancements to the query optimizer. Upgrading is recommended. } newsitem {2006-Oct-9} {Version 3.3.8} { Version 3.3.8 adds support for full-text search using the |
︙ | ︙ |
Changes to pages/pragma.in.
︙ | ︙ | |||
343 344 345 346 347 348 349 | <li><p><b>PRAGMA read_uncommitted; <br>PRAGMA read_uncommitted = </b><i>0 | 1</i><b>;</b></p> <p>Query, set, or clear READ UNCOMMITTED isolation. The default isolation level for SQLite is SERIALIZABLE. Any process or thread can select READ UNCOMMITTED isolation, but SERIALIZABLE will still be used except between connections that share a common page and schema cache. Cache sharing is enabled using the | | | 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 | <li><p><b>PRAGMA read_uncommitted; <br>PRAGMA read_uncommitted = </b><i>0 | 1</i><b>;</b></p> <p>Query, set, or clear READ UNCOMMITTED isolation. The default isolation level for SQLite is SERIALIZABLE. Any process or thread can select READ UNCOMMITTED isolation, but SERIALIZABLE will still be used except between connections that share a common page and schema cache. Cache sharing is enabled using the <a href="c3ref/enable_shared_cache.html"> sqlite3_enable_shared_cache()</a> API and is only available between connections running the same thread. Cache sharing is off by default. </p> </li> <a name="pragma_short_column_names"></a> <li><p><b>PRAGMA short_column_names; |
︙ | ︙ |
Changes to pages/tclsqlite.in.
︙ | ︙ | |||
292 293 294 295 296 297 298 | } ############################################################################## METHOD cache { <p> The "eval" method described <a href="#eval">above</a> keeps a cache of | | | | | 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 | } ############################################################################## METHOD cache { <p> The "eval" method described <a href="#eval">above</a> keeps a cache of <a href="c3ref/prepare.html">prepared statements</a> for recently evaluated SQL commands. The "cache" method is used to control this cache. The first form of this command is:</p> <blockquote> <i>dbcmd</i> <b>cache size</b> <i>N</i> </blockquote> <p>This sets the maximum number of statements that can be cached. The upper limit is 100. The default is 10. If you set the cache size to 0, no caching is done.</p> <p>The second form of the command is this:</p> <blockquote> <i>dbcmd</i> <b>cache flush</b> </blockquote> <p>The cache-flush method <a href="c3ref/finalize.html">finalizes</a> all prepared statements currently in the cache.</p> } ############################################################################## METHOD complete { <p> The "complete" method takes a string of supposed SQL as its only argument. It returns TRUE if the string is a complete statement of SQL and FALSE if there is more to be entered.</p> <p>The "complete" method is useful when building interactive applications in order to know when the user has finished entering a line of SQL code. This is really just an interface to the <a href="c3ref/complete.html"><b>sqlite3_complete()</b></a> C function. } ############################################################################## METHOD copy { <p> |
︙ | ︙ | |||
529 530 531 532 533 534 535 | current database connection was first opened.</p> } ############################################################################## METHOD authorizer { <p>The "authorizer" method provides access to the | | | 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 | current database connection was first opened.</p> } ############################################################################## METHOD authorizer { <p>The "authorizer" method provides access to the <a href="c3ref/set_authorizer.html">sqlite3_set_authorizer</a> C/C++ interface. The argument to authorizer is the name of a procedure that is called when SQL statements are being compiled in order to authorize certain operations. The callback procedure takes 5 arguments which describe the operation being coded. If the callback returns the text string "SQLITE_OK", then the operation is allowed. If it returns "SQLITE_IGNORE", then the operation is silently disabled. If the return is "SQLITE_DENY" then the compilation fails with an error. |
︙ | ︙ | |||
632 633 634 635 636 637 638 | <i>dbcmd</i> <b>incrblob</b> <b>?-readonly??</b> <i>?DB? TABLE COLUMN ROWID</i> </blockquote> <p> The command returns a new TCL channel for reading or writing to the BLOB. The channel is opened using the underlying | | | 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 | <i>dbcmd</i> <b>incrblob</b> <b>?-readonly??</b> <i>?DB? TABLE COLUMN ROWID</i> </blockquote> <p> The command returns a new TCL channel for reading or writing to the BLOB. The channel is opened using the underlying <a href="c3ref/blob_open.html">sqlite3_blob_open()</a> C-langauge interface. Close the channel using the <b>close</b> command of TCL. </p> } ############################################################################## METHOD errorcode { |
︙ | ︙ |