Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Pickup the SQLite core library 3.22.0 docs from upstream. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
ab8e95045772a0fbb46939cfe58333c3 |
User & Date: | mistachkin 2018-01-22 20:04:26.878 |
Context
2018-01-22
| ||
22:28 | Minor revisions to the test for ticket [0e48e80333]. check-in: 5017305c0d user: mistachkin tags: trunk | |
20:04 | Pickup the SQLite core library 3.22.0 docs from upstream. check-in: ab8e950457 user: mistachkin tags: trunk | |
20:01 | Update SQLite core library to the 3.22.0 release. check-in: 4089ea4f30 user: mistachkin tags: trunk | |
Changes
Changes to Doc/Extra/Core/lang_corefunc.html.
︙ | ︙ | |||
136 137 138 139 140 141 142 143 144 145 146 147 148 149 | {"u":"lang_corefunc.html#round","x":"round(X)","s":0}, {"u":"lang_corefunc.html#round","x":"round(X,Y)","s":0}, {"u":"lang_corefunc.html#rtrim","x":"rtrim(X)","s":0}, {"u":"lang_corefunc.html#rtrim","x":"rtrim(X,Y)","s":0}, {"u":"lang_corefunc.html#soundex","x":"soundex(X)","s":0}, {"u":"lang_corefunc.html#sqlite_compileoption_get","x":"sqlite_compileoption_get(N)","s":0}, {"u":"lang_corefunc.html#sqlite_compileoption_used","x":"sqlite_compileoption_used(X)","s":0}, {"u":"lang_corefunc.html#sqlite_source_id","x":"sqlite_source_id()","s":0}, {"u":"lang_corefunc.html#sqlite_version","x":"sqlite_version()","s":0}, {"u":"lang_corefunc.html#substr","x":"substr(X,Y)","s":0}, {"u":"lang_corefunc.html#substr","x":"substr(X,Y,Z)","s":0}, {"u":"lang_corefunc.html#total_changes","x":"total_changes()","s":0}, {"u":"lang_corefunc.html#trim","x":"trim(X)","s":0}, {"u":"lang_corefunc.html#trim","x":"trim(X,Y)","s":0}, | > | 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | {"u":"lang_corefunc.html#round","x":"round(X)","s":0}, {"u":"lang_corefunc.html#round","x":"round(X,Y)","s":0}, {"u":"lang_corefunc.html#rtrim","x":"rtrim(X)","s":0}, {"u":"lang_corefunc.html#rtrim","x":"rtrim(X,Y)","s":0}, {"u":"lang_corefunc.html#soundex","x":"soundex(X)","s":0}, {"u":"lang_corefunc.html#sqlite_compileoption_get","x":"sqlite_compileoption_get(N)","s":0}, {"u":"lang_corefunc.html#sqlite_compileoption_used","x":"sqlite_compileoption_used(X)","s":0}, {"u":"lang_corefunc.html#sqlite_offset","x":"sqlite_offset(X)","s":0}, {"u":"lang_corefunc.html#sqlite_source_id","x":"sqlite_source_id()","s":0}, {"u":"lang_corefunc.html#sqlite_version","x":"sqlite_version()","s":0}, {"u":"lang_corefunc.html#substr","x":"substr(X,Y)","s":0}, {"u":"lang_corefunc.html#substr","x":"substr(X,Y,Z)","s":0}, {"u":"lang_corefunc.html#total_changes","x":"total_changes()","s":0}, {"u":"lang_corefunc.html#trim","x":"trim(X)","s":0}, {"u":"lang_corefunc.html#trim","x":"trim(X,Y)","s":0}, |
︙ | ︙ | |||
460 461 462 463 464 465 466 467 468 469 470 471 472 473 | The sqlite_compileoption_used() SQL function is a wrapper around the <a href="c3ref/compileoption_get.html">sqlite3_compileoption_used()</a> C/C++ function. When the argument X to sqlite_compileoption_used(X) is a string which is the name of a compile-time option, this routine returns true (1) or false (0) depending on whether or not that option was used during the build. </dd> <a name="sqlite_source_id"></a> <dt><p><b>sqlite_source_id()</b></dt><dd><p> The sqlite_source_id() function returns a string that identifies the specific version of the source code that was used to build the SQLite library. The string returned by sqlite_source_id() is the date and time that the source code was checked in followed by the SHA1 hash for that check-in. This function is | > > > > > > > > > > > > > > > | 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 | The sqlite_compileoption_used() SQL function is a wrapper around the <a href="c3ref/compileoption_get.html">sqlite3_compileoption_used()</a> C/C++ function. When the argument X to sqlite_compileoption_used(X) is a string which is the name of a compile-time option, this routine returns true (1) or false (0) depending on whether or not that option was used during the build. </dd> <a name="sqlite_offset"></a> <dt><p><b>sqlite_offset(<i>X</i>)</b></dt><dd><p> The sqlite_offset(X) function returns the byte offset in the database file for the beginning of the record from which value would be read. If X is not a column in an ordinary table, then sqlite_offset(X) returns NULL. The value returned by sqlite_offset(X) might reference either the original table or an index, depending on the query. If the value X would normally be extracted from an index, the sqlite_offset(X) returns the offset to the corresponding index record. If the value X would be extracted from the original table, then sqlite_offset(X) returns the offset to the table record. <p>The sqlite_offset(X) SQL function is only available if SQLite is built using the <a href="compile.html#enable_offset_sql_func">-DSQLITE_ENABLE_OFFSET_SQL_FUNC</a> compile-time option. </dd> <a name="sqlite_source_id"></a> <dt><p><b>sqlite_source_id()</b></dt><dd><p> The sqlite_source_id() function returns a string that identifies the specific version of the source code that was used to build the SQLite library. The string returned by sqlite_source_id() is the date and time that the source code was checked in followed by the SHA1 hash for that check-in. This function is |
︙ | ︙ |
Changes to Doc/Extra/Core/pragma.html.
︙ | ︙ | |||
274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 | {"u":"pragma.html#pragma_encoding","x":"encoding","s":0}, {"u":"pragma.html#pragma_foreign_key_check","x":"foreign_key_check","s":0}, {"u":"pragma.html#pragma_foreign_key_list","x":"foreign_key_list","s":0}, {"u":"pragma.html#pragma_foreign_keys","x":"foreign_keys","s":0}, {"u":"pragma.html#pragma_freelist_count","x":"freelist_count","s":0}, {"u":"pragma.html#pragma_full_column_names","x":"full_column_names","s":3}, {"u":"pragma.html#pragma_fullfsync","x":"fullfsync","s":0}, {"u":"pragma.html#pragma_ignore_check_constraints","x":"ignore_check_constraints","s":0}, {"u":"pragma.html#pragma_incremental_vacuum","x":"incremental_vacuum","s":0}, {"u":"pragma.html#pragma_index_info","x":"index_info","s":0}, {"u":"pragma.html#pragma_index_list","x":"index_list","s":0}, {"u":"pragma.html#pragma_index_xinfo","x":"index_xinfo","s":0}, {"u":"pragma.html#pragma_integrity_check","x":"integrity_check","s":0}, {"u":"pragma.html#pragma_journal_mode","x":"journal_mode","s":0}, {"u":"pragma.html#pragma_journal_size_limit","x":"journal_size_limit","s":0}, {"u":"pragma.html#pragma_legacy_file_format","x":"legacy_file_format","s":0}, {"u":"pragma.html#pragma_locking_mode","x":"locking_mode","s":0}, {"u":"pragma.html#pragma_max_page_count","x":"max_page_count","s":0}, {"u":"pragma.html#pragma_mmap_size","x":"mmap_size","s":0}, {"u":"pragma.html#pragma_optimize","x":"optimize","s":0}, {"u":"pragma.html#pragma_page_count","x":"page_count","s":0}, {"u":"pragma.html#pragma_page_size","x":"page_size","s":0}, {"u":"pragma.html#pragma_parser_trace","x":"parser_trace","s":4}, {"u":"pragma.html#pragma_query_only","x":"query_only","s":0}, {"u":"pragma.html#pragma_quick_check","x":"quick_check","s":0}, {"u":"pragma.html#pragma_read_uncommitted","x":"read_uncommitted","s":0}, {"u":"pragma.html#pragma_recursive_triggers","x":"recursive_triggers","s":0}, {"u":"pragma.html#pragma_reverse_unordered_selects","x":"reverse_unordered_selects","s":0}, {"u":"pragma.html#pragma_schema_version","x":"schema_version","s":5}, {"u":"pragma.html#pragma_secure_delete","x":"secure_delete","s":0}, | > > > | 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 | {"u":"pragma.html#pragma_encoding","x":"encoding","s":0}, {"u":"pragma.html#pragma_foreign_key_check","x":"foreign_key_check","s":0}, {"u":"pragma.html#pragma_foreign_key_list","x":"foreign_key_list","s":0}, {"u":"pragma.html#pragma_foreign_keys","x":"foreign_keys","s":0}, {"u":"pragma.html#pragma_freelist_count","x":"freelist_count","s":0}, {"u":"pragma.html#pragma_full_column_names","x":"full_column_names","s":3}, {"u":"pragma.html#pragma_fullfsync","x":"fullfsync","s":0}, {"u":"pragma.html#pragma_function_list","x":"function_list","s":4}, {"u":"pragma.html#pragma_ignore_check_constraints","x":"ignore_check_constraints","s":0}, {"u":"pragma.html#pragma_incremental_vacuum","x":"incremental_vacuum","s":0}, {"u":"pragma.html#pragma_index_info","x":"index_info","s":0}, {"u":"pragma.html#pragma_index_list","x":"index_list","s":0}, {"u":"pragma.html#pragma_index_xinfo","x":"index_xinfo","s":0}, {"u":"pragma.html#pragma_integrity_check","x":"integrity_check","s":0}, {"u":"pragma.html#pragma_journal_mode","x":"journal_mode","s":0}, {"u":"pragma.html#pragma_journal_size_limit","x":"journal_size_limit","s":0}, {"u":"pragma.html#pragma_legacy_file_format","x":"legacy_file_format","s":0}, {"u":"pragma.html#pragma_locking_mode","x":"locking_mode","s":0}, {"u":"pragma.html#pragma_max_page_count","x":"max_page_count","s":0}, {"u":"pragma.html#pragma_mmap_size","x":"mmap_size","s":0}, {"u":"pragma.html#pragma_module_list","x":"module_list","s":4}, {"u":"pragma.html#pragma_optimize","x":"optimize","s":0}, {"u":"pragma.html#pragma_page_count","x":"page_count","s":0}, {"u":"pragma.html#pragma_page_size","x":"page_size","s":0}, {"u":"pragma.html#pragma_parser_trace","x":"parser_trace","s":4}, {"u":"pragma.html#pragma_pragma_list","x":"pragma_list","s":4}, {"u":"pragma.html#pragma_query_only","x":"query_only","s":0}, {"u":"pragma.html#pragma_quick_check","x":"quick_check","s":0}, {"u":"pragma.html#pragma_read_uncommitted","x":"read_uncommitted","s":0}, {"u":"pragma.html#pragma_recursive_triggers","x":"recursive_triggers","s":0}, {"u":"pragma.html#pragma_reverse_unordered_selects","x":"reverse_unordered_selects","s":0}, {"u":"pragma.html#pragma_schema_version","x":"schema_version","s":5}, {"u":"pragma.html#pragma_secure_delete","x":"secure_delete","s":0}, |
︙ | ︙ | |||
352 353 354 355 356 357 358 | </script> <p>Notes: <ol> <li>Pragmas whose names are <s>struck through</s> are deprecated. Do not use them. They exist for historical compatibility. | | | | 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 | </script> <p>Notes: <ol> <li>Pragmas whose names are <s>struck through</s> are deprecated. Do not use them. They exist for historical compatibility. <li>These pragmas are only available in builds using non-standard compile-time options. <li>These pragmas are used for testing SQLite and are not recommended for use in application programs.</ol></p> <a name="pragma_application_id"></a> <h _id=pragma_application_id style="display:none"> PRAGMA application_id</h><hr> <p><b>PRAGMA </b><i>schema.</i><b>application_id; <br>PRAGMA </b><i>schema.</i><b>application_id = </b><i>integer </i><b>;</b> |
︙ | ︙ | |||
854 855 856 857 858 859 860 861 862 863 864 865 866 867 | <br>PRAGMA fullfsync = </b><i>boolean</i><b>;</b></p> <p>Query or change the fullfsync flag. This flag determines whether or not the F_FULLFSYNC syncing method is used on systems that support it. The default value of the fullfsync flag is off. Only Mac OS X supports F_FULLFSYNC.</p> <p>See also <a href="pragma.html#pragma_checkpoint_fullfsync">checkpoint_fullfsync</a>.</p> <a name="pragma_ignore_check_constraints"></a> <h _id=pragma_ignore_check_constraints style="display:none"> PRAGMA ignore_check_constraints</h><hr> <p><b>PRAGMA ignore_check_constraints = </b><i>boolean</i><b>;</b></p> <p>This pragma enables or disables the enforcement of CHECK constraints. The default setting is off, meaning that CHECK constraints are enforced by default.</p> | > > > > > > > > > > | 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 | <br>PRAGMA fullfsync = </b><i>boolean</i><b>;</b></p> <p>Query or change the fullfsync flag. This flag determines whether or not the F_FULLFSYNC syncing method is used on systems that support it. The default value of the fullfsync flag is off. Only Mac OS X supports F_FULLFSYNC.</p> <p>See also <a href="pragma.html#pragma_checkpoint_fullfsync">checkpoint_fullfsync</a>.</p> <a name="pragma_function_list"></a> <h _id=pragma_function_list style="display:none"> PRAGMA function_list</h><hr> <p><b>PRAGMA function_list;</b> <p>This pragma returns a list of SQL functions known to the database connection. <p style='background-color: #f0e0ff;'> This pragma is only available if SQLite is built using the <a href="compile.html#introspection_pragmas">-DSQLITE_INTROSPECTION_PRAGMAS</a> compile-time option. <a name="pragma_ignore_check_constraints"></a> <h _id=pragma_ignore_check_constraints style="display:none"> PRAGMA ignore_check_constraints</h><hr> <p><b>PRAGMA ignore_check_constraints = </b><i>boolean</i><b>;</b></p> <p>This pragma enables or disables the enforcement of CHECK constraints. The default setting is off, meaning that CHECK constraints are enforced by default.</p> |
︙ | ︙ | |||
1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 | <p>The size of the memory-mapped I/O region cannot be changed while the memory-mapped I/O region is in active use, to avoid unmapping memory out from under running SQL statements. For this reason, the mmap_size pragma may be a no-op if the prior mmap_size is non-zero and there are other SQL statements running concurrently on the same <a href="c3ref/sqlite3.html">database connection</a>.</p> <a name="pragma_optimize"></a> <h _id=pragma_optimize style="display:none"> PRAGMA optimize</h><hr> <p><b>PRAGMA optimize; <br>PRAGMA optimize(</b><i>MASK</i><b>); <br>PRAGMA </b><i>schema</i><b>.optimize; <br>PRAGMA </b><i>schema</i><b>.optimize(</b><i>MASK</i><b>);</b></p> <p>Attempt to optimize the database. All schemas are optimized in the | > > > > > > > > > > | 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 | <p>The size of the memory-mapped I/O region cannot be changed while the memory-mapped I/O region is in active use, to avoid unmapping memory out from under running SQL statements. For this reason, the mmap_size pragma may be a no-op if the prior mmap_size is non-zero and there are other SQL statements running concurrently on the same <a href="c3ref/sqlite3.html">database connection</a>.</p> <a name="pragma_module_list"></a> <h _id=pragma_module_list style="display:none"> PRAGMA module_list</h><hr> <p><b>PRAGMA module_list;</b> <p>This pragma returns a list of <a href="vtab.html">virtual table</a> modules registered with the database connection. <p style='background-color: #f0e0ff;'> This pragma is only available if SQLite is built using the <a href="compile.html#introspection_pragmas">-DSQLITE_INTROSPECTION_PRAGMAS</a> compile-time option. <a name="pragma_optimize"></a> <h _id=pragma_optimize style="display:none"> PRAGMA optimize</h><hr> <p><b>PRAGMA optimize; <br>PRAGMA optimize(</b><i>MASK</i><b>); <br>PRAGMA </b><i>schema</i><b>.optimize; <br>PRAGMA </b><i>schema</i><b>.optimize(</b><i>MASK</i><b>);</b></p> <p>Attempt to optimize the database. All schemas are optimized in the |
︙ | ︙ | |||
1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 | <p style='background-color: #f0e0ff;'> This pragma is intended for use when debugging SQLite itself. It is only available when the <a href="compile.html#debug">SQLITE_DEBUG</a> compile-time option is used.</p> <a name="pragma_query_only"></a> <h _id=pragma_query_only style="display:none"> PRAGMA query_only</h><hr> <p><b>PRAGMA query_only; <br>PRAGMA query_only = </b><i>boolean</i><b>;</b></p> <p>The query_only pragma prevents all changes to database files when enabled.</p> | > > > > > > > > > > | 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 | <p style='background-color: #f0e0ff;'> This pragma is intended for use when debugging SQLite itself. It is only available when the <a href="compile.html#debug">SQLITE_DEBUG</a> compile-time option is used.</p> <a name="pragma_pragma_list"></a> <h _id=pragma_pragma_list style="display:none"> PRAGMA pragma_list</h><hr> <p><b>PRAGMA pragma_list;</b> <p>This pragma returns a list of PRAGMA commands known to the database connection. <p style='background-color: #f0e0ff;'> This pragma is only available if SQLite is built using the <a href="compile.html#introspection_pragmas">-DSQLITE_INTROSPECTION_PRAGMAS</a> compile-time option. <a name="pragma_query_only"></a> <h _id=pragma_query_only style="display:none"> PRAGMA query_only</h><hr> <p><b>PRAGMA query_only; <br>PRAGMA query_only = </b><i>boolean</i><b>;</b></p> <p>The query_only pragma prevents all changes to database files when enabled.</p> |
︙ | ︙ |
Changes to Doc/Special/Core/vtab.html.
︙ | ︙ | |||
1273 1274 1275 1276 1277 1278 1279 | </p></dd><dt><b>argc > 1 <br> argv[0] = NULL</b> </dt><dd><p> A new row is inserted with column values taken from argv[2] and following. In a rowid virtual table, if argv[1] is an SQL NULL, then a new unique rowid is generated automatically. The argv[1] will be NULL for a <a href="vtab.html#worid">WITHOUT ROWID virtual table</a>, in which case the implementation should | | | 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 | </p></dd><dt><b>argc > 1 <br> argv[0] = NULL</b> </dt><dd><p> A new row is inserted with column values taken from argv[2] and following. In a rowid virtual table, if argv[1] is an SQL NULL, then a new unique rowid is generated automatically. The argv[1] will be NULL for a <a href="vtab.html#worid">WITHOUT ROWID virtual table</a>, in which case the implementation should take the PRIMARY KEY value from the appropriate column in argv[2] and following. </p></dd><dt><b>argc > 1 <br> argv[0] ≠ NULL <br> argv[0] = argv[1]</b> </dt><dd><p> The row with rowid or PRIMARY KEY argv[0] is updated with new values in argv[2] and following parameters. </p></dd><dt><b>argc > 1 <br> argv[0] ≠ NULL <br> argv[0] ≠ argv[1]</b> |
︙ | ︙ | |||
1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 | using functions such as <a href="c3ref/mprintf.html">sqlite3_mprintf()</a> or <a href="c3ref/free.html">sqlite3_malloc()</a>. </p><p>If the xUpdate method violates some constraint of the virtual table (including, but not limited to, attempting to store a value of the wrong datatype, attempting to store a value that is too large or too small, or attempting to change a read-only value) then the xUpdate must fail with an appropriate <a href="rescode.html">error code</a>. </p><p>There might be one or more <a href="c3ref/vtab_cursor.html">sqlite3_vtab_cursor</a> objects open and in use on the virtual table instance and perhaps even on the row of the virtual table when the xUpdate method is invoked. The implementation of xUpdate must be prepared for attempts to delete or modify rows of the table out from other existing cursors. If the virtual table cannot accommodate such changes, the xUpdate method must return an <a href="rescode.html">error code</a>. | > > > > > > > > > > > > > > > > > > > | 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 | using functions such as <a href="c3ref/mprintf.html">sqlite3_mprintf()</a> or <a href="c3ref/free.html">sqlite3_malloc()</a>. </p><p>If the xUpdate method violates some constraint of the virtual table (including, but not limited to, attempting to store a value of the wrong datatype, attempting to store a value that is too large or too small, or attempting to change a read-only value) then the xUpdate must fail with an appropriate <a href="rescode.html">error code</a>. </p><p>If the xUpdate method is performing an UPDATE, then <a href="c3ref/value_blob.html">sqlite3_value_nochange(X)</a> can be used to discover which columns of the virtual table were actually modified by the UPDATE statement. The <a href="c3ref/value_blob.html">sqlite3_value_nochange(X)</a> interface returns true for columns that do not change. On every UPDATE, SQLite will first invoke <a href="vtab.html#xcolumn">xColumn</a> separately for each unchanging column in the table to obtain the value for that column. The <a href="vtab.html#xcolumn">xColumn</a> method can check to see if the column is unchanged at the SQL level by invoking <a href="c3ref/vtab_nochange.html">sqlite3_vtab_nochange()</a>. If <a href="vtab.html#xcolumn">xColumn</a> sees that the column is not being modified, it should return without setting a result using one of the <a href="c3ref/result_blob.html">sqlite3_result_xxxxx()</a> interfaces. Only in that case <a href="c3ref/value_blob.html">sqlite3_value_nochange()</a> will be true within the xUpdate method. If <a href="vtab.html#xcolumn">xColumn</a> does invoke one or more <a href="c3ref/result_blob.html">sqlite3_result_xxxxx()</a> interfaces, then SQLite understands that as a change in the value of the column and the <a href="c3ref/value_blob.html">sqlite3_value_nochange()</a> call for that column within xUpdate will return false. </p><p>There might be one or more <a href="c3ref/vtab_cursor.html">sqlite3_vtab_cursor</a> objects open and in use on the virtual table instance and perhaps even on the row of the virtual table when the xUpdate method is invoked. The implementation of xUpdate must be prepared for attempts to delete or modify rows of the table out from other existing cursors. If the virtual table cannot accommodate such changes, the xUpdate method must return an <a href="rescode.html">error code</a>. |
︙ | ︙ |
Changes to System.Data.SQLite/ISQLiteNativeModule.cs.
︙ | ︙ | |||
1078 1079 1080 1081 1082 1083 1084 | /// No insert occurs. /// <![CDATA[</dd>]]><![CDATA[<dt>]]><![CDATA[<b>]]>argc > 1 <![CDATA[<br>]]> argv[0] = NULL<![CDATA[</b>]]> /// <![CDATA[</dt>]]><![CDATA[<dd>]]> /// A new row is inserted with column values taken from /// argv[2] and following. In a rowid virtual table, if argv[1] is an SQL NULL, /// then a new unique rowid is generated automatically. The argv[1] will be NULL /// for a WITHOUT ROWID virtual table, in which case the implementation should | | | 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 | /// No insert occurs. /// <![CDATA[</dd>]]><![CDATA[<dt>]]><![CDATA[<b>]]>argc > 1 <![CDATA[<br>]]> argv[0] = NULL<![CDATA[</b>]]> /// <![CDATA[</dt>]]><![CDATA[<dd>]]> /// A new row is inserted with column values taken from /// argv[2] and following. In a rowid virtual table, if argv[1] is an SQL NULL, /// then a new unique rowid is generated automatically. The argv[1] will be NULL /// for a WITHOUT ROWID virtual table, in which case the implementation should /// take the PRIMARY KEY value from the appropriate column in argv[2] and following. /// <![CDATA[</dd>]]><![CDATA[<dt>]]><![CDATA[<b>]]>argc > 1 <![CDATA[<br>]]> argv[0] ≠ NULL <![CDATA[<br>]]> argv[0] = argv[1]<![CDATA[</b>]]> /// <![CDATA[</dt>]]><![CDATA[<dd>]]> /// The row with rowid or PRIMARY KEY argv[0] is updated with new values /// in argv[2] and following parameters. /// <![CDATA[</dd>]]><![CDATA[<dt>]]><![CDATA[<b>]]>argc > 1 <![CDATA[<br>]]> argv[0] ≠ NULL <![CDATA[<br>]]> argv[0] ≠ argv[1]<![CDATA[</b>]]> /// <![CDATA[</dt>]]><![CDATA[<dd>]]> The row with rowid or PRIMARY KEY argv[0] is updated with /// the rowid or PRIMARY KEY in argv[1] |
︙ | ︙ | |||
1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 | /// <para> /// If the xUpdate method violates some constraint of the virtual table /// (including, but not limited to, attempting to store a value of the wrong /// datatype, attempting to store a value that is too /// large or too small, or attempting to change a read-only value) then the /// xUpdate must fail with an appropriate error code. /// </para> /// <para> /// There might be one or more sqlite3_vtab_cursor objects open and in use /// on the virtual table instance and perhaps even on the row of the virtual /// table when the xUpdate method is invoked. The implementation of /// xUpdate must be prepared for attempts to delete or modify rows of the table /// out from other existing cursors. If the virtual table cannot accommodate /// such changes, the xUpdate method must return an error code. | > > > > > > > > > > > > > > > > > > > > | 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 | /// <para> /// If the xUpdate method violates some constraint of the virtual table /// (including, but not limited to, attempting to store a value of the wrong /// datatype, attempting to store a value that is too /// large or too small, or attempting to change a read-only value) then the /// xUpdate must fail with an appropriate error code. /// </para> /// <para> /// If the xUpdate method is performing an UPDATE, then /// sqlite3_value_nochange(X) can be used to discover which columns /// of the virtual table were actually modified by the UPDATE /// statement. The sqlite3_value_nochange(X) interface returns /// true for columns that do not change. /// On every UPDATE, SQLite will first invoke /// xColumn separately for each unchanging column in the table to /// obtain the value for that column. The xColumn method can /// check to see if the column is unchanged at the SQL level /// by invoking sqlite3_vtab_nochange(). If xColumn sees that /// the column is not being modified, it should return without setting /// a result using one of the sqlite3_result_xxxxx() /// interfaces. Only in that case sqlite3_value_nochange() will be /// true within the xUpdate method. If xColumn does /// invoke one or more sqlite3_result_xxxxx() /// interfaces, then SQLite understands that as a change in the value /// of the column and the sqlite3_value_nochange() call for that /// column within xUpdate will return false. /// </para> /// <para> /// There might be one or more sqlite3_vtab_cursor objects open and in use /// on the virtual table instance and perhaps even on the row of the virtual /// table when the xUpdate method is invoked. The implementation of /// xUpdate must be prepared for attempts to delete or modify rows of the table /// out from other existing cursors. If the virtual table cannot accommodate /// such changes, the xUpdate method must return an error code. |
︙ | ︙ |