extralite-bundle 2.13 → 2.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +1 -1
- data/ext/extralite/database.c +11 -12
- data/ext/sqlite3/sqlite3.c +4333 -1280
- data/ext/sqlite3/sqlite3.h +304 -111
- data/gemspec.rb +4 -4
- data/lib/extralite/version.rb +1 -1
- metadata +10 -10
data/ext/sqlite3/sqlite3.h
CHANGED
|
@@ -146,9 +146,12 @@ extern "C" {
|
|
|
146
146
|
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
|
|
147
147
|
** [sqlite_version()] and [sqlite_source_id()].
|
|
148
148
|
*/
|
|
149
|
-
#define SQLITE_VERSION "3.
|
|
150
|
-
#define SQLITE_VERSION_NUMBER
|
|
151
|
-
#define SQLITE_SOURCE_ID "
|
|
149
|
+
#define SQLITE_VERSION "3.51.2"
|
|
150
|
+
#define SQLITE_VERSION_NUMBER 3051002
|
|
151
|
+
#define SQLITE_SOURCE_ID "2026-01-09 17:27:48 b270f8339eb13b504d0b2ba154ebca966b7dde08e40c3ed7d559749818cb2075"
|
|
152
|
+
#define SQLITE_SCM_BRANCH "branch-3.51"
|
|
153
|
+
#define SQLITE_SCM_TAGS "release version-3.51.2"
|
|
154
|
+
#define SQLITE_SCM_DATETIME "2026-01-09T17:27:48.405Z"
|
|
152
155
|
|
|
153
156
|
/*
|
|
154
157
|
** CAPI3REF: Run-Time Library Version Numbers
|
|
@@ -168,9 +171,9 @@ extern "C" {
|
|
|
168
171
|
** assert( strcmp(sqlite3_libversion(),SQLITE_VERSION)==0 );
|
|
169
172
|
** </pre></blockquote>)^
|
|
170
173
|
**
|
|
171
|
-
** ^The sqlite3_version[] string constant contains the text of
|
|
172
|
-
** macro. ^The sqlite3_libversion() function returns a
|
|
173
|
-
** to the sqlite3_version[] string constant. The sqlite3_libversion()
|
|
174
|
+
** ^The sqlite3_version[] string constant contains the text of the
|
|
175
|
+
** [SQLITE_VERSION] macro. ^The sqlite3_libversion() function returns a
|
|
176
|
+
** pointer to the sqlite3_version[] string constant. The sqlite3_libversion()
|
|
174
177
|
** function is provided for use in DLLs since DLL users usually do not have
|
|
175
178
|
** direct access to string constants within the DLL. ^The
|
|
176
179
|
** sqlite3_libversion_number() function returns an integer equal to
|
|
@@ -370,7 +373,7 @@ typedef int (*sqlite3_callback)(void*,int,char**, char**);
|
|
|
370
373
|
** without having to use a lot of C code.
|
|
371
374
|
**
|
|
372
375
|
** ^The sqlite3_exec() interface runs zero or more UTF-8 encoded,
|
|
373
|
-
** semicolon-
|
|
376
|
+
** semicolon-separated SQL statements passed into its 2nd argument,
|
|
374
377
|
** in the context of the [database connection] passed in as its 1st
|
|
375
378
|
** argument. ^If the callback function of the 3rd argument to
|
|
376
379
|
** sqlite3_exec() is not NULL, then it is invoked for each result row
|
|
@@ -403,7 +406,7 @@ typedef int (*sqlite3_callback)(void*,int,char**, char**);
|
|
|
403
406
|
** result row is NULL then the corresponding string pointer for the
|
|
404
407
|
** sqlite3_exec() callback is a NULL pointer. ^The 4th argument to the
|
|
405
408
|
** sqlite3_exec() callback is an array of pointers to strings where each
|
|
406
|
-
** entry represents the name of corresponding result column as obtained
|
|
409
|
+
** entry represents the name of a corresponding result column as obtained
|
|
407
410
|
** from [sqlite3_column_name()].
|
|
408
411
|
**
|
|
409
412
|
** ^If the 2nd parameter to sqlite3_exec() is a NULL pointer, a pointer
|
|
@@ -497,6 +500,9 @@ SQLITE_API int sqlite3_exec(
|
|
|
497
500
|
#define SQLITE_ERROR_MISSING_COLLSEQ (SQLITE_ERROR | (1<<8))
|
|
498
501
|
#define SQLITE_ERROR_RETRY (SQLITE_ERROR | (2<<8))
|
|
499
502
|
#define SQLITE_ERROR_SNAPSHOT (SQLITE_ERROR | (3<<8))
|
|
503
|
+
#define SQLITE_ERROR_RESERVESIZE (SQLITE_ERROR | (4<<8))
|
|
504
|
+
#define SQLITE_ERROR_KEY (SQLITE_ERROR | (5<<8))
|
|
505
|
+
#define SQLITE_ERROR_UNABLE (SQLITE_ERROR | (6<<8))
|
|
500
506
|
#define SQLITE_IOERR_READ (SQLITE_IOERR | (1<<8))
|
|
501
507
|
#define SQLITE_IOERR_SHORT_READ (SQLITE_IOERR | (2<<8))
|
|
502
508
|
#define SQLITE_IOERR_WRITE (SQLITE_IOERR | (3<<8))
|
|
@@ -531,6 +537,8 @@ SQLITE_API int sqlite3_exec(
|
|
|
531
537
|
#define SQLITE_IOERR_DATA (SQLITE_IOERR | (32<<8))
|
|
532
538
|
#define SQLITE_IOERR_CORRUPTFS (SQLITE_IOERR | (33<<8))
|
|
533
539
|
#define SQLITE_IOERR_IN_PAGE (SQLITE_IOERR | (34<<8))
|
|
540
|
+
#define SQLITE_IOERR_BADKEY (SQLITE_IOERR | (35<<8))
|
|
541
|
+
#define SQLITE_IOERR_CODEC (SQLITE_IOERR | (36<<8))
|
|
534
542
|
#define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8))
|
|
535
543
|
#define SQLITE_LOCKED_VTAB (SQLITE_LOCKED | (2<<8))
|
|
536
544
|
#define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8))
|
|
@@ -589,7 +597,7 @@ SQLITE_API int sqlite3_exec(
|
|
|
589
597
|
** Note in particular that passing the SQLITE_OPEN_EXCLUSIVE flag into
|
|
590
598
|
** [sqlite3_open_v2()] does *not* cause the underlying database file
|
|
591
599
|
** to be opened using O_EXCL. Passing SQLITE_OPEN_EXCLUSIVE into
|
|
592
|
-
** [sqlite3_open_v2()] has historically
|
|
600
|
+
** [sqlite3_open_v2()] has historically been a no-op and might become an
|
|
593
601
|
** error in future versions of SQLite.
|
|
594
602
|
*/
|
|
595
603
|
#define SQLITE_OPEN_READONLY 0x00000001 /* Ok for sqlite3_open_v2() */
|
|
@@ -683,7 +691,7 @@ SQLITE_API int sqlite3_exec(
|
|
|
683
691
|
** SQLite uses one of these integer values as the second
|
|
684
692
|
** argument to calls it makes to the xLock() and xUnlock() methods
|
|
685
693
|
** of an [sqlite3_io_methods] object. These values are ordered from
|
|
686
|
-
**
|
|
694
|
+
** least restrictive to most restrictive.
|
|
687
695
|
**
|
|
688
696
|
** The argument to xLock() is always SHARED or higher. The argument to
|
|
689
697
|
** xUnlock is either SHARED or NONE.
|
|
@@ -924,7 +932,7 @@ struct sqlite3_io_methods {
|
|
|
924
932
|
** connection. See also [SQLITE_FCNTL_FILE_POINTER].
|
|
925
933
|
**
|
|
926
934
|
** <li>[[SQLITE_FCNTL_SYNC_OMITTED]]
|
|
927
|
-
**
|
|
935
|
+
** The SQLITE_FCNTL_SYNC_OMITTED file-control is no longer used.
|
|
928
936
|
**
|
|
929
937
|
** <li>[[SQLITE_FCNTL_SYNC]]
|
|
930
938
|
** The [SQLITE_FCNTL_SYNC] opcode is generated internally by SQLite and
|
|
@@ -999,7 +1007,7 @@ struct sqlite3_io_methods {
|
|
|
999
1007
|
**
|
|
1000
1008
|
** <li>[[SQLITE_FCNTL_VFSNAME]]
|
|
1001
1009
|
** ^The [SQLITE_FCNTL_VFSNAME] opcode can be used to obtain the names of
|
|
1002
|
-
** all [VFSes] in the VFS stack. The names
|
|
1010
|
+
** all [VFSes] in the VFS stack. The names of all VFS shims and the
|
|
1003
1011
|
** final bottom-level VFS are written into memory obtained from
|
|
1004
1012
|
** [sqlite3_malloc()] and the result is stored in the char* variable
|
|
1005
1013
|
** that the fourth parameter of [sqlite3_file_control()] points to.
|
|
@@ -1013,7 +1021,7 @@ struct sqlite3_io_methods {
|
|
|
1013
1021
|
** ^The [SQLITE_FCNTL_VFS_POINTER] opcode finds a pointer to the top-level
|
|
1014
1022
|
** [VFSes] currently in use. ^(The argument X in
|
|
1015
1023
|
** sqlite3_file_control(db,SQLITE_FCNTL_VFS_POINTER,X) must be
|
|
1016
|
-
** of type "[sqlite3_vfs] **". This
|
|
1024
|
+
** of type "[sqlite3_vfs] **". This opcode will set *X
|
|
1017
1025
|
** to a pointer to the top-level VFS.)^
|
|
1018
1026
|
** ^When there are multiple VFS shims in the stack, this opcode finds the
|
|
1019
1027
|
** upper-most shim only.
|
|
@@ -1203,7 +1211,7 @@ struct sqlite3_io_methods {
|
|
|
1203
1211
|
** <li>[[SQLITE_FCNTL_EXTERNAL_READER]]
|
|
1204
1212
|
** The EXPERIMENTAL [SQLITE_FCNTL_EXTERNAL_READER] opcode is used to detect
|
|
1205
1213
|
** whether or not there is a database client in another process with a wal-mode
|
|
1206
|
-
** transaction open on the database or not. It is only available on unix.The
|
|
1214
|
+
** transaction open on the database or not. It is only available on unix. The
|
|
1207
1215
|
** (void*) argument passed with this file-control should be a pointer to a
|
|
1208
1216
|
** value of type (int). The integer value is set to 1 if the database is a wal
|
|
1209
1217
|
** mode database and there exists at least one client in another process that
|
|
@@ -1221,6 +1229,15 @@ struct sqlite3_io_methods {
|
|
|
1221
1229
|
** database is not a temp db, then the [SQLITE_FCNTL_RESET_CACHE] file-control
|
|
1222
1230
|
** purges the contents of the in-memory page cache. If there is an open
|
|
1223
1231
|
** transaction, or if the db is a temp-db, this opcode is a no-op, not an error.
|
|
1232
|
+
**
|
|
1233
|
+
** <li>[[SQLITE_FCNTL_FILESTAT]]
|
|
1234
|
+
** The [SQLITE_FCNTL_FILESTAT] opcode returns low-level diagnostic information
|
|
1235
|
+
** about the [sqlite3_file] objects used access the database and journal files
|
|
1236
|
+
** for the given schema. The fourth parameter to [sqlite3_file_control()]
|
|
1237
|
+
** should be an initialized [sqlite3_str] pointer. JSON text describing
|
|
1238
|
+
** various aspects of the sqlite3_file object is appended to the sqlite3_str.
|
|
1239
|
+
** The SQLITE_FCNTL_FILESTAT opcode is usually a no-op, unless compile-time
|
|
1240
|
+
** options are used to enable it.
|
|
1224
1241
|
** </ul>
|
|
1225
1242
|
*/
|
|
1226
1243
|
#define SQLITE_FCNTL_LOCKSTATE 1
|
|
@@ -1266,6 +1283,7 @@ struct sqlite3_io_methods {
|
|
|
1266
1283
|
#define SQLITE_FCNTL_RESET_CACHE 42
|
|
1267
1284
|
#define SQLITE_FCNTL_NULL_IO 43
|
|
1268
1285
|
#define SQLITE_FCNTL_BLOCK_ON_CONNECT 44
|
|
1286
|
+
#define SQLITE_FCNTL_FILESTAT 45
|
|
1269
1287
|
|
|
1270
1288
|
/* deprecated names */
|
|
1271
1289
|
#define SQLITE_GET_LOCKPROXYFILE SQLITE_FCNTL_GET_LOCKPROXYFILE
|
|
@@ -1628,7 +1646,7 @@ struct sqlite3_vfs {
|
|
|
1628
1646
|
** SQLite interfaces so that an application usually does not need to
|
|
1629
1647
|
** invoke sqlite3_initialize() directly. For example, [sqlite3_open()]
|
|
1630
1648
|
** calls sqlite3_initialize() so the SQLite library will be automatically
|
|
1631
|
-
** initialized when [sqlite3_open()] is called if it has not
|
|
1649
|
+
** initialized when [sqlite3_open()] is called if it has not been initialized
|
|
1632
1650
|
** already. ^However, if SQLite is compiled with the [SQLITE_OMIT_AUTOINIT]
|
|
1633
1651
|
** compile-time option, then the automatic calls to sqlite3_initialize()
|
|
1634
1652
|
** are omitted and the application must call sqlite3_initialize() directly
|
|
@@ -1885,21 +1903,21 @@ struct sqlite3_mem_methods {
|
|
|
1885
1903
|
** The [sqlite3_mem_methods]
|
|
1886
1904
|
** structure is filled with the currently defined memory allocation routines.)^
|
|
1887
1905
|
** This option can be used to overload the default memory allocation
|
|
1888
|
-
** routines with a wrapper that
|
|
1906
|
+
** routines with a wrapper that simulates memory allocation failure or
|
|
1889
1907
|
** tracks memory usage, for example. </dd>
|
|
1890
1908
|
**
|
|
1891
1909
|
** [[SQLITE_CONFIG_SMALL_MALLOC]] <dt>SQLITE_CONFIG_SMALL_MALLOC</dt>
|
|
1892
|
-
** <dd> ^The SQLITE_CONFIG_SMALL_MALLOC option takes single argument of
|
|
1910
|
+
** <dd> ^The SQLITE_CONFIG_SMALL_MALLOC option takes a single argument of
|
|
1893
1911
|
** type int, interpreted as a boolean, which if true provides a hint to
|
|
1894
1912
|
** SQLite that it should avoid large memory allocations if possible.
|
|
1895
1913
|
** SQLite will run faster if it is free to make large memory allocations,
|
|
1896
|
-
** but some
|
|
1914
|
+
** but some applications might prefer to run slower in exchange for
|
|
1897
1915
|
** guarantees about memory fragmentation that are possible if large
|
|
1898
1916
|
** allocations are avoided. This hint is normally off.
|
|
1899
1917
|
** </dd>
|
|
1900
1918
|
**
|
|
1901
1919
|
** [[SQLITE_CONFIG_MEMSTATUS]] <dt>SQLITE_CONFIG_MEMSTATUS</dt>
|
|
1902
|
-
** <dd> ^The SQLITE_CONFIG_MEMSTATUS option takes single argument of type int,
|
|
1920
|
+
** <dd> ^The SQLITE_CONFIG_MEMSTATUS option takes a single argument of type int,
|
|
1903
1921
|
** interpreted as a boolean, which enables or disables the collection of
|
|
1904
1922
|
** memory allocation statistics. ^(When memory allocation statistics are
|
|
1905
1923
|
** disabled, the following SQLite interfaces become non-operational:
|
|
@@ -1944,7 +1962,7 @@ struct sqlite3_mem_methods {
|
|
|
1944
1962
|
** ^If pMem is NULL and N is non-zero, then each database connection
|
|
1945
1963
|
** does an initial bulk allocation for page cache memory
|
|
1946
1964
|
** from [sqlite3_malloc()] sufficient for N cache lines if N is positive or
|
|
1947
|
-
** of -1024*N bytes if N is negative
|
|
1965
|
+
** of -1024*N bytes if N is negative. ^If additional
|
|
1948
1966
|
** page cache memory is needed beyond what is provided by the initial
|
|
1949
1967
|
** allocation, then SQLite goes to [sqlite3_malloc()] separately for each
|
|
1950
1968
|
** additional cache line. </dd>
|
|
@@ -1973,7 +1991,7 @@ struct sqlite3_mem_methods {
|
|
|
1973
1991
|
** <dd> ^(The SQLITE_CONFIG_MUTEX option takes a single argument which is a
|
|
1974
1992
|
** pointer to an instance of the [sqlite3_mutex_methods] structure.
|
|
1975
1993
|
** The argument specifies alternative low-level mutex routines to be used
|
|
1976
|
-
** in place the mutex routines built into SQLite.)^ ^SQLite makes a copy of
|
|
1994
|
+
** in place of the mutex routines built into SQLite.)^ ^SQLite makes a copy of
|
|
1977
1995
|
** the content of the [sqlite3_mutex_methods] structure before the call to
|
|
1978
1996
|
** [sqlite3_config()] returns. ^If SQLite is compiled with
|
|
1979
1997
|
** the [SQLITE_THREADSAFE | SQLITE_THREADSAFE=0] compile-time option then
|
|
@@ -2015,7 +2033,7 @@ struct sqlite3_mem_methods {
|
|
|
2015
2033
|
**
|
|
2016
2034
|
** [[SQLITE_CONFIG_GETPCACHE2]] <dt>SQLITE_CONFIG_GETPCACHE2</dt>
|
|
2017
2035
|
** <dd> ^(The SQLITE_CONFIG_GETPCACHE2 option takes a single argument which
|
|
2018
|
-
** is a pointer to an [sqlite3_pcache_methods2] object. SQLite copies
|
|
2036
|
+
** is a pointer to an [sqlite3_pcache_methods2] object. SQLite copies off
|
|
2019
2037
|
** the current page cache implementation into that object.)^ </dd>
|
|
2020
2038
|
**
|
|
2021
2039
|
** [[SQLITE_CONFIG_LOG]] <dt>SQLITE_CONFIG_LOG</dt>
|
|
@@ -2032,7 +2050,7 @@ struct sqlite3_mem_methods {
|
|
|
2032
2050
|
** the logger function is a copy of the first parameter to the corresponding
|
|
2033
2051
|
** [sqlite3_log()] call and is intended to be a [result code] or an
|
|
2034
2052
|
** [extended result code]. ^The third parameter passed to the logger is
|
|
2035
|
-
** log message after formatting via [sqlite3_snprintf()].
|
|
2053
|
+
** a log message after formatting via [sqlite3_snprintf()].
|
|
2036
2054
|
** The SQLite logging interface is not reentrant; the logger function
|
|
2037
2055
|
** supplied by the application must not invoke any SQLite interface.
|
|
2038
2056
|
** In a multi-threaded application, the application-defined logger
|
|
@@ -2223,7 +2241,7 @@ struct sqlite3_mem_methods {
|
|
|
2223
2241
|
** These constants are the available integer configuration options that
|
|
2224
2242
|
** can be passed as the second parameter to the [sqlite3_db_config()] interface.
|
|
2225
2243
|
**
|
|
2226
|
-
** The [sqlite3_db_config()] interface is a var-args
|
|
2244
|
+
** The [sqlite3_db_config()] interface is a var-args function. It takes a
|
|
2227
2245
|
** variable number of parameters, though always at least two. The number of
|
|
2228
2246
|
** parameters passed into sqlite3_db_config() depends on which of these
|
|
2229
2247
|
** constants is given as the second parameter. This documentation page
|
|
@@ -2335,17 +2353,20 @@ struct sqlite3_mem_methods {
|
|
|
2335
2353
|
**
|
|
2336
2354
|
** [[SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER]]
|
|
2337
2355
|
** <dt>SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER</dt>
|
|
2338
|
-
** <dd> ^This option is used to enable or disable the
|
|
2339
|
-
** [fts3_tokenizer()] function
|
|
2340
|
-
**
|
|
2341
|
-
** There must be two additional arguments.
|
|
2342
|
-
**
|
|
2343
|
-
**
|
|
2344
|
-
**
|
|
2345
|
-
**
|
|
2346
|
-
**
|
|
2347
|
-
**
|
|
2348
|
-
**
|
|
2356
|
+
** <dd> ^This option is used to enable or disable using the
|
|
2357
|
+
** [fts3_tokenizer()] function - part of the [FTS3] full-text search engine
|
|
2358
|
+
** extension - without using bound parameters as the parameters. Doing so
|
|
2359
|
+
** is disabled by default. There must be two additional arguments. The first
|
|
2360
|
+
** argument is an integer. If it is passed 0, then using fts3_tokenizer()
|
|
2361
|
+
** without bound parameters is disabled. If it is passed a positive value,
|
|
2362
|
+
** then calling fts3_tokenizer without bound parameters is enabled. If it
|
|
2363
|
+
** is passed a negative value, this setting is not modified - this can be
|
|
2364
|
+
** used to query for the current setting. The second parameter is a pointer
|
|
2365
|
+
** to an integer into which is written 0 or 1 to indicate the current value
|
|
2366
|
+
** of this setting (after it is modified, if applicable). The second
|
|
2367
|
+
** parameter may be a NULL pointer, in which case the value of the setting
|
|
2368
|
+
** is not reported back. Refer to [FTS3] documentation for further details.
|
|
2369
|
+
** </dd>
|
|
2349
2370
|
**
|
|
2350
2371
|
** [[SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION]]
|
|
2351
2372
|
** <dt>SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION</dt>
|
|
@@ -2357,8 +2378,8 @@ struct sqlite3_mem_methods {
|
|
|
2357
2378
|
** When the first argument to this interface is 1, then only the C-API is
|
|
2358
2379
|
** enabled and the SQL function remains disabled. If the first argument to
|
|
2359
2380
|
** this interface is 0, then both the C-API and the SQL function are disabled.
|
|
2360
|
-
** If the first argument is -1, then no changes are made to state of either
|
|
2361
|
-
** C-API or the SQL function.
|
|
2381
|
+
** If the first argument is -1, then no changes are made to the state of either
|
|
2382
|
+
** the C-API or the SQL function.
|
|
2362
2383
|
** The second parameter is a pointer to an integer into which
|
|
2363
2384
|
** is written 0 or 1 to indicate whether [sqlite3_load_extension()] interface
|
|
2364
2385
|
** is disabled or enabled following this call. The second parameter may
|
|
@@ -2476,7 +2497,7 @@ struct sqlite3_mem_methods {
|
|
|
2476
2497
|
** [[SQLITE_DBCONFIG_LEGACY_ALTER_TABLE]]
|
|
2477
2498
|
** <dt>SQLITE_DBCONFIG_LEGACY_ALTER_TABLE</dt>
|
|
2478
2499
|
** <dd>The SQLITE_DBCONFIG_LEGACY_ALTER_TABLE option activates or deactivates
|
|
2479
|
-
** the legacy behavior of the [ALTER TABLE RENAME] command such it
|
|
2500
|
+
** the legacy behavior of the [ALTER TABLE RENAME] command such that it
|
|
2480
2501
|
** behaves as it did prior to [version 3.24.0] (2018-06-04). See the
|
|
2481
2502
|
** "Compatibility Notice" on the [ALTER TABLE RENAME documentation] for
|
|
2482
2503
|
** additional information. This feature can also be turned on and off
|
|
@@ -2525,7 +2546,7 @@ struct sqlite3_mem_methods {
|
|
|
2525
2546
|
** <dt>SQLITE_DBCONFIG_LEGACY_FILE_FORMAT</dt>
|
|
2526
2547
|
** <dd>The SQLITE_DBCONFIG_LEGACY_FILE_FORMAT option activates or deactivates
|
|
2527
2548
|
** the legacy file format flag. When activated, this flag causes all newly
|
|
2528
|
-
** created database
|
|
2549
|
+
** created database files to have a schema format version number (the 4-byte
|
|
2529
2550
|
** integer found at offset 44 into the database header) of 1. This in turn
|
|
2530
2551
|
** means that the resulting database file will be readable and writable by
|
|
2531
2552
|
** any SQLite version back to 3.0.0 ([dateof:3.0.0]). Without this setting,
|
|
@@ -2552,7 +2573,7 @@ struct sqlite3_mem_methods {
|
|
|
2552
2573
|
** the database handle both when the SQL statement is prepared and when it
|
|
2553
2574
|
** is stepped. The flag is set (collection of statistics is enabled)
|
|
2554
2575
|
** by default. <p>This option takes two arguments: an integer and a pointer to
|
|
2555
|
-
** an integer
|
|
2576
|
+
** an integer. The first argument is 1, 0, or -1 to enable, disable, or
|
|
2556
2577
|
** leave unchanged the statement scanstatus option. If the second argument
|
|
2557
2578
|
** is not NULL, then the value of the statement scanstatus setting after
|
|
2558
2579
|
** processing the first argument is written into the integer that the second
|
|
@@ -2595,8 +2616,8 @@ struct sqlite3_mem_methods {
|
|
|
2595
2616
|
** <dd>The SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE option enables or disables the
|
|
2596
2617
|
** ability of the [ATTACH DATABASE] SQL command to open a database for writing.
|
|
2597
2618
|
** This capability is enabled by default. Applications can disable or
|
|
2598
|
-
** reenable this capability using the current DBCONFIG option. If
|
|
2599
|
-
**
|
|
2619
|
+
** reenable this capability using the current DBCONFIG option. If
|
|
2620
|
+
** this capability is disabled, the [ATTACH] command will still work,
|
|
2600
2621
|
** but the database will be opened read-only. If this option is disabled,
|
|
2601
2622
|
** then the ability to create a new database using [ATTACH] is also disabled,
|
|
2602
2623
|
** regardless of the value of the [SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE]
|
|
@@ -2630,7 +2651,7 @@ struct sqlite3_mem_methods {
|
|
|
2630
2651
|
**
|
|
2631
2652
|
** <p>Most of the SQLITE_DBCONFIG options take two arguments, so that the
|
|
2632
2653
|
** overall call to [sqlite3_db_config()] has a total of four parameters.
|
|
2633
|
-
** The first argument (the third parameter to sqlite3_db_config()) is
|
|
2654
|
+
** The first argument (the third parameter to sqlite3_db_config()) is an integer.
|
|
2634
2655
|
** The second argument is a pointer to an integer. If the first argument is 1,
|
|
2635
2656
|
** then the option becomes enabled. If the first integer argument is 0, then the
|
|
2636
2657
|
** option is disabled. If the first argument is -1, then the option setting
|
|
@@ -2920,7 +2941,7 @@ SQLITE_API int sqlite3_is_interrupted(sqlite3*);
|
|
|
2920
2941
|
** ^These routines return 0 if the statement is incomplete. ^If a
|
|
2921
2942
|
** memory allocation fails, then SQLITE_NOMEM is returned.
|
|
2922
2943
|
**
|
|
2923
|
-
** ^These routines do not parse the SQL statements thus
|
|
2944
|
+
** ^These routines do not parse the SQL statements and thus
|
|
2924
2945
|
** will not detect syntactically incorrect SQL.
|
|
2925
2946
|
**
|
|
2926
2947
|
** ^(If SQLite has not been initialized using [sqlite3_initialize()] prior
|
|
@@ -3037,7 +3058,7 @@ SQLITE_API int sqlite3_busy_timeout(sqlite3*, int ms);
|
|
|
3037
3058
|
** indefinitely if possible. The results of passing any other negative value
|
|
3038
3059
|
** are undefined.
|
|
3039
3060
|
**
|
|
3040
|
-
** Internally, each SQLite database handle
|
|
3061
|
+
** Internally, each SQLite database handle stores two timeout values - the
|
|
3041
3062
|
** busy-timeout (used for rollback mode databases, or if the VFS does not
|
|
3042
3063
|
** support blocking locks) and the setlk-timeout (used for blocking locks
|
|
3043
3064
|
** on wal-mode databases). The sqlite3_busy_timeout() method sets both
|
|
@@ -3067,7 +3088,7 @@ SQLITE_API int sqlite3_setlk_timeout(sqlite3*, int ms, int flags);
|
|
|
3067
3088
|
** This is a legacy interface that is preserved for backwards compatibility.
|
|
3068
3089
|
** Use of this interface is not recommended.
|
|
3069
3090
|
**
|
|
3070
|
-
** Definition: A <b>result table</b> is memory data structure created by the
|
|
3091
|
+
** Definition: A <b>result table</b> is a memory data structure created by the
|
|
3071
3092
|
** [sqlite3_get_table()] interface. A result table records the
|
|
3072
3093
|
** complete query results from one or more queries.
|
|
3073
3094
|
**
|
|
@@ -3210,7 +3231,7 @@ SQLITE_API char *sqlite3_vsnprintf(int,char*,const char*, va_list);
|
|
|
3210
3231
|
** ^Calling sqlite3_free() with a pointer previously returned
|
|
3211
3232
|
** by sqlite3_malloc() or sqlite3_realloc() releases that memory so
|
|
3212
3233
|
** that it might be reused. ^The sqlite3_free() routine is
|
|
3213
|
-
** a no-op if is called with a NULL pointer. Passing a NULL pointer
|
|
3234
|
+
** a no-op if it is called with a NULL pointer. Passing a NULL pointer
|
|
3214
3235
|
** to sqlite3_free() is harmless. After being freed, memory
|
|
3215
3236
|
** should neither be read nor written. Even reading previously freed
|
|
3216
3237
|
** memory might result in a segmentation fault or other severe error.
|
|
@@ -3228,13 +3249,13 @@ SQLITE_API char *sqlite3_vsnprintf(int,char*,const char*, va_list);
|
|
|
3228
3249
|
** sqlite3_free(X).
|
|
3229
3250
|
** ^sqlite3_realloc(X,N) returns a pointer to a memory allocation
|
|
3230
3251
|
** of at least N bytes in size or NULL if insufficient memory is available.
|
|
3231
|
-
** ^If M is the size of the prior allocation, then min(N,M) bytes
|
|
3232
|
-
**
|
|
3252
|
+
** ^If M is the size of the prior allocation, then min(N,M) bytes of the
|
|
3253
|
+
** prior allocation are copied into the beginning of the buffer returned
|
|
3233
3254
|
** by sqlite3_realloc(X,N) and the prior allocation is freed.
|
|
3234
3255
|
** ^If sqlite3_realloc(X,N) returns NULL and N is positive, then the
|
|
3235
3256
|
** prior allocation is not freed.
|
|
3236
3257
|
**
|
|
3237
|
-
** ^The sqlite3_realloc64(X,N)
|
|
3258
|
+
** ^The sqlite3_realloc64(X,N) interface works the same as
|
|
3238
3259
|
** sqlite3_realloc(X,N) except that N is a 64-bit unsigned integer instead
|
|
3239
3260
|
** of a 32-bit signed integer.
|
|
3240
3261
|
**
|
|
@@ -3284,7 +3305,7 @@ SQLITE_API sqlite3_uint64 sqlite3_msize(void*);
|
|
|
3284
3305
|
** was last reset. ^The values returned by [sqlite3_memory_used()] and
|
|
3285
3306
|
** [sqlite3_memory_highwater()] include any overhead
|
|
3286
3307
|
** added by SQLite in its implementation of [sqlite3_malloc()],
|
|
3287
|
-
** but not overhead added by
|
|
3308
|
+
** but not overhead added by any underlying system library
|
|
3288
3309
|
** routines that [sqlite3_malloc()] may call.
|
|
3289
3310
|
**
|
|
3290
3311
|
** ^The memory high-water mark is reset to the current value of
|
|
@@ -3736,7 +3757,7 @@ SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);
|
|
|
3736
3757
|
** there is no harm in trying.)
|
|
3737
3758
|
**
|
|
3738
3759
|
** ^(<dt>[SQLITE_OPEN_SHAREDCACHE]</dt>
|
|
3739
|
-
** <dd>The database is opened [shared cache] enabled, overriding
|
|
3760
|
+
** <dd>The database is opened with [shared cache] enabled, overriding
|
|
3740
3761
|
** the default shared cache setting provided by
|
|
3741
3762
|
** [sqlite3_enable_shared_cache()].)^
|
|
3742
3763
|
** The [use of shared cache mode is discouraged] and hence shared cache
|
|
@@ -3744,7 +3765,7 @@ SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);
|
|
|
3744
3765
|
** this option is a no-op.
|
|
3745
3766
|
**
|
|
3746
3767
|
** ^(<dt>[SQLITE_OPEN_PRIVATECACHE]</dt>
|
|
3747
|
-
** <dd>The database is opened [shared cache] disabled, overriding
|
|
3768
|
+
** <dd>The database is opened with [shared cache] disabled, overriding
|
|
3748
3769
|
** the default shared cache setting provided by
|
|
3749
3770
|
** [sqlite3_enable_shared_cache()].)^
|
|
3750
3771
|
**
|
|
@@ -4162,7 +4183,7 @@ SQLITE_API void sqlite3_free_filename(sqlite3_filename);
|
|
|
4162
4183
|
** subsequent calls to other SQLite interface functions.)^
|
|
4163
4184
|
**
|
|
4164
4185
|
** ^The sqlite3_errstr(E) interface returns the English-language text
|
|
4165
|
-
** that describes the [result code] E, as UTF-8, or NULL if E is not
|
|
4186
|
+
** that describes the [result code] E, as UTF-8, or NULL if E is not a
|
|
4166
4187
|
** result code for which a text error message is available.
|
|
4167
4188
|
** ^(Memory to hold the error message string is managed internally
|
|
4168
4189
|
** and must not be freed by the application)^.
|
|
@@ -4170,7 +4191,7 @@ SQLITE_API void sqlite3_free_filename(sqlite3_filename);
|
|
|
4170
4191
|
** ^If the most recent error references a specific token in the input
|
|
4171
4192
|
** SQL, the sqlite3_error_offset() interface returns the byte offset
|
|
4172
4193
|
** of the start of that token. ^The byte offset returned by
|
|
4173
|
-
** sqlite3_error_offset() assumes that the input SQL is
|
|
4194
|
+
** sqlite3_error_offset() assumes that the input SQL is UTF-8.
|
|
4174
4195
|
** ^If the most recent error does not reference a specific token in the input
|
|
4175
4196
|
** SQL, then the sqlite3_error_offset() function returns -1.
|
|
4176
4197
|
**
|
|
@@ -4195,6 +4216,34 @@ SQLITE_API const void *sqlite3_errmsg16(sqlite3*);
|
|
|
4195
4216
|
SQLITE_API const char *sqlite3_errstr(int);
|
|
4196
4217
|
SQLITE_API int sqlite3_error_offset(sqlite3 *db);
|
|
4197
4218
|
|
|
4219
|
+
/*
|
|
4220
|
+
** CAPI3REF: Set Error Codes And Message
|
|
4221
|
+
** METHOD: sqlite3
|
|
4222
|
+
**
|
|
4223
|
+
** Set the error code of the database handle passed as the first argument
|
|
4224
|
+
** to errcode, and the error message to a copy of nul-terminated string
|
|
4225
|
+
** zErrMsg. If zErrMsg is passed NULL, then the error message is set to
|
|
4226
|
+
** the default message associated with the supplied error code. Subsequent
|
|
4227
|
+
** calls to [sqlite3_errcode()] and [sqlite3_errmsg()] and similar will
|
|
4228
|
+
** return the values set by this routine in place of what was previously
|
|
4229
|
+
** set by SQLite itself.
|
|
4230
|
+
**
|
|
4231
|
+
** This function returns SQLITE_OK if the error code and error message are
|
|
4232
|
+
** successfully set, SQLITE_NOMEM if an OOM occurs, and SQLITE_MISUSE if
|
|
4233
|
+
** the database handle is NULL or invalid.
|
|
4234
|
+
**
|
|
4235
|
+
** The error code and message set by this routine remains in effect until
|
|
4236
|
+
** they are changed, either by another call to this routine or until they are
|
|
4237
|
+
** changed to by SQLite itself to reflect the result of some subsquent
|
|
4238
|
+
** API call.
|
|
4239
|
+
**
|
|
4240
|
+
** This function is intended for use by SQLite extensions or wrappers. The
|
|
4241
|
+
** idea is that an extension or wrapper can use this routine to set error
|
|
4242
|
+
** messages and error codes and thus behave more like a core SQLite
|
|
4243
|
+
** feature from the point of view of an application.
|
|
4244
|
+
*/
|
|
4245
|
+
SQLITE_API int sqlite3_set_errmsg(sqlite3 *db, int errcode, const char *zErrMsg);
|
|
4246
|
+
|
|
4198
4247
|
/*
|
|
4199
4248
|
** CAPI3REF: Prepared Statement Object
|
|
4200
4249
|
** KEYWORDS: {prepared statement} {prepared statements}
|
|
@@ -4269,8 +4318,8 @@ SQLITE_API int sqlite3_limit(sqlite3*, int id, int newVal);
|
|
|
4269
4318
|
**
|
|
4270
4319
|
** These constants define various performance limits
|
|
4271
4320
|
** that can be lowered at run-time using [sqlite3_limit()].
|
|
4272
|
-
**
|
|
4273
|
-
**
|
|
4321
|
+
** A concise description of these limits follows, and additional information
|
|
4322
|
+
** is available at [limits | Limits in SQLite].
|
|
4274
4323
|
**
|
|
4275
4324
|
** <dl>
|
|
4276
4325
|
** [[SQLITE_LIMIT_LENGTH]] ^(<dt>SQLITE_LIMIT_LENGTH</dt>
|
|
@@ -4335,7 +4384,7 @@ SQLITE_API int sqlite3_limit(sqlite3*, int id, int newVal);
|
|
|
4335
4384
|
/*
|
|
4336
4385
|
** CAPI3REF: Prepare Flags
|
|
4337
4386
|
**
|
|
4338
|
-
** These constants define various flags that can be passed into
|
|
4387
|
+
** These constants define various flags that can be passed into the
|
|
4339
4388
|
** "prepFlags" parameter of the [sqlite3_prepare_v3()] and
|
|
4340
4389
|
** [sqlite3_prepare16_v3()] interfaces.
|
|
4341
4390
|
**
|
|
@@ -4422,7 +4471,7 @@ SQLITE_API int sqlite3_limit(sqlite3*, int id, int newVal);
|
|
|
4422
4471
|
** there is a small performance advantage to passing an nByte parameter that
|
|
4423
4472
|
** is the number of bytes in the input string <i>including</i>
|
|
4424
4473
|
** the nul-terminator.
|
|
4425
|
-
** Note that nByte
|
|
4474
|
+
** Note that nByte measures the length of the input in bytes, not
|
|
4426
4475
|
** characters, even for the UTF-16 interfaces.
|
|
4427
4476
|
**
|
|
4428
4477
|
** ^If pzTail is not NULL then *pzTail is made to point to the first byte
|
|
@@ -4556,7 +4605,7 @@ SQLITE_API int sqlite3_prepare16_v3(
|
|
|
4556
4605
|
**
|
|
4557
4606
|
** ^The sqlite3_expanded_sql() interface returns NULL if insufficient memory
|
|
4558
4607
|
** is available to hold the result, or if the result would exceed the
|
|
4559
|
-
**
|
|
4608
|
+
** maximum string length determined by the [SQLITE_LIMIT_LENGTH].
|
|
4560
4609
|
**
|
|
4561
4610
|
** ^The [SQLITE_TRACE_SIZE_LIMIT] compile-time option limits the size of
|
|
4562
4611
|
** bound parameter expansions. ^The [SQLITE_OMIT_TRACE] compile-time
|
|
@@ -4744,7 +4793,7 @@ typedef struct sqlite3_value sqlite3_value;
|
|
|
4744
4793
|
**
|
|
4745
4794
|
** The context in which an SQL function executes is stored in an
|
|
4746
4795
|
** sqlite3_context object. ^A pointer to an sqlite3_context object
|
|
4747
|
-
** is always first parameter to [application-defined SQL functions].
|
|
4796
|
+
** is always the first parameter to [application-defined SQL functions].
|
|
4748
4797
|
** The application-defined SQL function implementation will pass this
|
|
4749
4798
|
** pointer through into calls to [sqlite3_result_int | sqlite3_result()],
|
|
4750
4799
|
** [sqlite3_aggregate_context()], [sqlite3_user_data()],
|
|
@@ -4868,9 +4917,11 @@ typedef struct sqlite3_context sqlite3_context;
|
|
|
4868
4917
|
** associated with the pointer P of type T. ^D is either a NULL pointer or
|
|
4869
4918
|
** a pointer to a destructor function for P. ^SQLite will invoke the
|
|
4870
4919
|
** destructor D with a single argument of P when it is finished using
|
|
4871
|
-
** P
|
|
4872
|
-
**
|
|
4873
|
-
**
|
|
4920
|
+
** P, even if the call to sqlite3_bind_pointer() fails. Due to a
|
|
4921
|
+
** historical design quirk, results are undefined if D is
|
|
4922
|
+
** SQLITE_TRANSIENT. The T parameter should be a static string,
|
|
4923
|
+
** preferably a string literal. The sqlite3_bind_pointer() routine is
|
|
4924
|
+
** part of the [pointer passing interface] added for SQLite 3.20.0.
|
|
4874
4925
|
**
|
|
4875
4926
|
** ^If any of the sqlite3_bind_*() routines are called with a NULL pointer
|
|
4876
4927
|
** for the [prepared statement] or with a prepared statement for which
|
|
@@ -5481,7 +5532,7 @@ SQLITE_API int sqlite3_column_type(sqlite3_stmt*, int iCol);
|
|
|
5481
5532
|
**
|
|
5482
5533
|
** ^The sqlite3_finalize() function is called to delete a [prepared statement].
|
|
5483
5534
|
** ^If the most recent evaluation of the statement encountered no errors
|
|
5484
|
-
** or if the statement
|
|
5535
|
+
** or if the statement has never been evaluated, then sqlite3_finalize() returns
|
|
5485
5536
|
** SQLITE_OK. ^If the most recent evaluation of statement S failed, then
|
|
5486
5537
|
** sqlite3_finalize(S) returns the appropriate [error code] or
|
|
5487
5538
|
** [extended error code].
|
|
@@ -5713,7 +5764,7 @@ SQLITE_API int sqlite3_create_window_function(
|
|
|
5713
5764
|
/*
|
|
5714
5765
|
** CAPI3REF: Text Encodings
|
|
5715
5766
|
**
|
|
5716
|
-
** These
|
|
5767
|
+
** These constants define integer codes that represent the various
|
|
5717
5768
|
** text encodings supported by SQLite.
|
|
5718
5769
|
*/
|
|
5719
5770
|
#define SQLITE_UTF8 1 /* IMP: R-37514-35566 */
|
|
@@ -5805,7 +5856,7 @@ SQLITE_API int sqlite3_create_window_function(
|
|
|
5805
5856
|
** result.
|
|
5806
5857
|
** Every function that invokes [sqlite3_result_subtype()] should have this
|
|
5807
5858
|
** property. If it does not, then the call to [sqlite3_result_subtype()]
|
|
5808
|
-
** might become a no-op if the function is used as term in an
|
|
5859
|
+
** might become a no-op if the function is used as a term in an
|
|
5809
5860
|
** [expression index]. On the other hand, SQL functions that never invoke
|
|
5810
5861
|
** [sqlite3_result_subtype()] should avoid setting this property, as the
|
|
5811
5862
|
** purpose of this property is to disable certain optimizations that are
|
|
@@ -5932,7 +5983,7 @@ SQLITE_API SQLITE_DEPRECATED int sqlite3_memory_alarm(void(*)(void*,sqlite3_int6
|
|
|
5932
5983
|
** sqlite3_value_nochange(X) interface returns true if and only if
|
|
5933
5984
|
** the column corresponding to X is unchanged by the UPDATE operation
|
|
5934
5985
|
** that the xUpdate method call was invoked to implement and if
|
|
5935
|
-
**
|
|
5986
|
+
** the prior [xColumn] method call that was invoked to extract
|
|
5936
5987
|
** the value for that column returned without setting a result (probably
|
|
5937
5988
|
** because it queried [sqlite3_vtab_nochange()] and found that the column
|
|
5938
5989
|
** was unchanging). ^Within an [xUpdate] method, any value for which
|
|
@@ -6205,6 +6256,7 @@ SQLITE_API void sqlite3_set_auxdata(sqlite3_context*, int N, void*, void (*)(voi
|
|
|
6205
6256
|
** or a NULL pointer if there were no prior calls to
|
|
6206
6257
|
** sqlite3_set_clientdata() with the same values of D and N.
|
|
6207
6258
|
** Names are compared using strcmp() and are thus case sensitive.
|
|
6259
|
+
** It returns 0 on success and SQLITE_NOMEM on allocation failure.
|
|
6208
6260
|
**
|
|
6209
6261
|
** If P and X are both non-NULL, then the destructor X is invoked with
|
|
6210
6262
|
** argument P on the first of the following occurrences:
|
|
@@ -8881,9 +8933,18 @@ SQLITE_API int sqlite3_status64(
|
|
|
8881
8933
|
** ^The sqlite3_db_status() routine returns SQLITE_OK on success and a
|
|
8882
8934
|
** non-zero [error code] on failure.
|
|
8883
8935
|
**
|
|
8936
|
+
** ^The sqlite3_db_status64(D,O,C,H,R) routine works exactly the same
|
|
8937
|
+
** way as sqlite3_db_status(D,O,C,H,R) routine except that the C and H
|
|
8938
|
+
** parameters are pointer to 64-bit integers (type: sqlite3_int64) instead
|
|
8939
|
+
** of pointers to 32-bit integers, which allows larger status values
|
|
8940
|
+
** to be returned. If a status value exceeds 2,147,483,647 then
|
|
8941
|
+
** sqlite3_db_status() will truncate the value whereas sqlite3_db_status64()
|
|
8942
|
+
** will return the full value.
|
|
8943
|
+
**
|
|
8884
8944
|
** See also: [sqlite3_status()] and [sqlite3_stmt_status()].
|
|
8885
8945
|
*/
|
|
8886
8946
|
SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int resetFlg);
|
|
8947
|
+
SQLITE_API int sqlite3_db_status64(sqlite3*,int,sqlite3_int64*,sqlite3_int64*,int);
|
|
8887
8948
|
|
|
8888
8949
|
/*
|
|
8889
8950
|
** CAPI3REF: Status Parameters for database connections
|
|
@@ -8980,6 +9041,10 @@ SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int r
|
|
|
8980
9041
|
** If an IO or other error occurs while writing a page to disk, the effect
|
|
8981
9042
|
** on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is undefined.)^ ^The
|
|
8982
9043
|
** highwater mark associated with SQLITE_DBSTATUS_CACHE_WRITE is always 0.
|
|
9044
|
+
** <p>
|
|
9045
|
+
** ^(There is overlap between the quantities measured by this parameter
|
|
9046
|
+
** (SQLITE_DBSTATUS_CACHE_WRITE) and SQLITE_DBSTATUS_TEMPBUF_SPILL.
|
|
9047
|
+
** Resetting one will reduce the other.)^
|
|
8983
9048
|
** </dd>
|
|
8984
9049
|
**
|
|
8985
9050
|
** [[SQLITE_DBSTATUS_CACHE_SPILL]] ^(<dt>SQLITE_DBSTATUS_CACHE_SPILL</dt>
|
|
@@ -8995,6 +9060,18 @@ SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int r
|
|
|
8995
9060
|
** <dd>This parameter returns zero for the current value if and only if
|
|
8996
9061
|
** all foreign key constraints (deferred or immediate) have been
|
|
8997
9062
|
** resolved.)^ ^The highwater mark is always 0.
|
|
9063
|
+
**
|
|
9064
|
+
** [[SQLITE_DBSTATUS_TEMPBUF_SPILL] ^(<dt>SQLITE_DBSTATUS_TEMPBUF_SPILL</dt>
|
|
9065
|
+
** <dd>^(This parameter returns the number of bytes written to temporary
|
|
9066
|
+
** files on disk that could have been kept in memory had sufficient memory
|
|
9067
|
+
** been available. This value includes writes to intermediate tables that
|
|
9068
|
+
** are part of complex queries, external sorts that spill to disk, and
|
|
9069
|
+
** writes to TEMP tables.)^
|
|
9070
|
+
** ^The highwater mark is always 0.
|
|
9071
|
+
** <p>
|
|
9072
|
+
** ^(There is overlap between the quantities measured by this parameter
|
|
9073
|
+
** (SQLITE_DBSTATUS_TEMPBUF_SPILL) and SQLITE_DBSTATUS_CACHE_WRITE.
|
|
9074
|
+
** Resetting one will reduce the other.)^
|
|
8998
9075
|
** </dd>
|
|
8999
9076
|
** </dl>
|
|
9000
9077
|
*/
|
|
@@ -9011,7 +9088,8 @@ SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int r
|
|
|
9011
9088
|
#define SQLITE_DBSTATUS_DEFERRED_FKS 10
|
|
9012
9089
|
#define SQLITE_DBSTATUS_CACHE_USED_SHARED 11
|
|
9013
9090
|
#define SQLITE_DBSTATUS_CACHE_SPILL 12
|
|
9014
|
-
#define
|
|
9091
|
+
#define SQLITE_DBSTATUS_TEMPBUF_SPILL 13
|
|
9092
|
+
#define SQLITE_DBSTATUS_MAX 13 /* Largest defined DBSTATUS */
|
|
9015
9093
|
|
|
9016
9094
|
|
|
9017
9095
|
/*
|
|
@@ -9776,7 +9854,7 @@ SQLITE_API void sqlite3_log(int iErrCode, const char *zFormat, ...);
|
|
|
9776
9854
|
** is the number of pages currently in the write-ahead log file,
|
|
9777
9855
|
** including those that were just committed.
|
|
9778
9856
|
**
|
|
9779
|
-
** The callback function should normally return [SQLITE_OK]. ^If an error
|
|
9857
|
+
** ^The callback function should normally return [SQLITE_OK]. ^If an error
|
|
9780
9858
|
** code is returned, that error will propagate back up through the
|
|
9781
9859
|
** SQLite code base to cause the statement that provoked the callback
|
|
9782
9860
|
** to report an error, though the commit will have still occurred. If the
|
|
@@ -9784,13 +9862,26 @@ SQLITE_API void sqlite3_log(int iErrCode, const char *zFormat, ...);
|
|
|
9784
9862
|
** that does not correspond to any valid SQLite error code, the results
|
|
9785
9863
|
** are undefined.
|
|
9786
9864
|
**
|
|
9787
|
-
** A single database handle may have at most a single write-ahead log
|
|
9788
|
-
** registered at one time. ^Calling [sqlite3_wal_hook()]
|
|
9789
|
-
** previously registered write-ahead
|
|
9790
|
-
**
|
|
9791
|
-
**
|
|
9792
|
-
**
|
|
9793
|
-
**
|
|
9865
|
+
** ^A single database handle may have at most a single write-ahead log
|
|
9866
|
+
** callback registered at one time. ^Calling [sqlite3_wal_hook()]
|
|
9867
|
+
** replaces the default behavior or previously registered write-ahead
|
|
9868
|
+
** log callback.
|
|
9869
|
+
**
|
|
9870
|
+
** ^The return value is a copy of the third parameter from the
|
|
9871
|
+
** previous call, if any, or 0.
|
|
9872
|
+
**
|
|
9873
|
+
** ^The [sqlite3_wal_autocheckpoint()] interface and the
|
|
9874
|
+
** [wal_autocheckpoint pragma] both invoke [sqlite3_wal_hook()] and
|
|
9875
|
+
** will overwrite any prior [sqlite3_wal_hook()] settings.
|
|
9876
|
+
**
|
|
9877
|
+
** ^If a write-ahead log callback is set using this function then
|
|
9878
|
+
** [sqlite3_wal_checkpoint_v2()] or [PRAGMA wal_checkpoint]
|
|
9879
|
+
** should be invoked periodically to keep the write-ahead log file
|
|
9880
|
+
** from growing without bound.
|
|
9881
|
+
**
|
|
9882
|
+
** ^Passing a NULL pointer for the callback disables automatic
|
|
9883
|
+
** checkpointing entirely. To re-enable the default behavior, call
|
|
9884
|
+
** sqlite3_wal_autocheckpoint(db,1000) or use [PRAGMA wal_checkpoint].
|
|
9794
9885
|
*/
|
|
9795
9886
|
SQLITE_API void *sqlite3_wal_hook(
|
|
9796
9887
|
sqlite3*,
|
|
@@ -9807,7 +9898,7 @@ SQLITE_API void *sqlite3_wal_hook(
|
|
|
9807
9898
|
** to automatically [checkpoint]
|
|
9808
9899
|
** after committing a transaction if there are N or
|
|
9809
9900
|
** more frames in the [write-ahead log] file. ^Passing zero or
|
|
9810
|
-
** a negative value as the
|
|
9901
|
+
** a negative value as the N parameter disables automatic
|
|
9811
9902
|
** checkpoints entirely.
|
|
9812
9903
|
**
|
|
9813
9904
|
** ^The callback registered by this function replaces any existing callback
|
|
@@ -9823,9 +9914,10 @@ SQLITE_API void *sqlite3_wal_hook(
|
|
|
9823
9914
|
**
|
|
9824
9915
|
** ^Every new [database connection] defaults to having the auto-checkpoint
|
|
9825
9916
|
** enabled with a threshold of 1000 or [SQLITE_DEFAULT_WAL_AUTOCHECKPOINT]
|
|
9826
|
-
** pages.
|
|
9827
|
-
**
|
|
9828
|
-
**
|
|
9917
|
+
** pages.
|
|
9918
|
+
**
|
|
9919
|
+
** ^The use of this interface is only necessary if the default setting
|
|
9920
|
+
** is found to be suboptimal for a particular application.
|
|
9829
9921
|
*/
|
|
9830
9922
|
SQLITE_API int sqlite3_wal_autocheckpoint(sqlite3 *db, int N);
|
|
9831
9923
|
|
|
@@ -9890,6 +9982,11 @@ SQLITE_API int sqlite3_wal_checkpoint(sqlite3 *db, const char *zDb);
|
|
|
9890
9982
|
** ^This mode works the same way as SQLITE_CHECKPOINT_RESTART with the
|
|
9891
9983
|
** addition that it also truncates the log file to zero bytes just prior
|
|
9892
9984
|
** to a successful return.
|
|
9985
|
+
**
|
|
9986
|
+
** <dt>SQLITE_CHECKPOINT_NOOP<dd>
|
|
9987
|
+
** ^This mode always checkpoints zero frames. The only reason to invoke
|
|
9988
|
+
** a NOOP checkpoint is to access the values returned by
|
|
9989
|
+
** sqlite3_wal_checkpoint_v2() via output parameters *pnLog and *pnCkpt.
|
|
9893
9990
|
** </dl>
|
|
9894
9991
|
**
|
|
9895
9992
|
** ^If pnLog is not NULL, then *pnLog is set to the total number of frames in
|
|
@@ -9960,6 +10057,7 @@ SQLITE_API int sqlite3_wal_checkpoint_v2(
|
|
|
9960
10057
|
** See the [sqlite3_wal_checkpoint_v2()] documentation for details on the
|
|
9961
10058
|
** meaning of each of these checkpoint modes.
|
|
9962
10059
|
*/
|
|
10060
|
+
#define SQLITE_CHECKPOINT_NOOP -1 /* Do no work at all */
|
|
9963
10061
|
#define SQLITE_CHECKPOINT_PASSIVE 0 /* Do as much as possible w/o blocking */
|
|
9964
10062
|
#define SQLITE_CHECKPOINT_FULL 1 /* Wait for writers, then checkpoint */
|
|
9965
10063
|
#define SQLITE_CHECKPOINT_RESTART 2 /* Like FULL but wait for readers */
|
|
@@ -10328,7 +10426,7 @@ SQLITE_API int sqlite3_vtab_in(sqlite3_index_info*, int iCons, int bHandle);
|
|
|
10328
10426
|
** ){
|
|
10329
10427
|
** // do something with pVal
|
|
10330
10428
|
** }
|
|
10331
|
-
** if( rc!=
|
|
10429
|
+
** if( rc!=SQLITE_DONE ){
|
|
10332
10430
|
** // an error has occurred
|
|
10333
10431
|
** }
|
|
10334
10432
|
** </pre></blockquote>)^
|
|
@@ -10787,7 +10885,7 @@ typedef struct sqlite3_snapshot {
|
|
|
10787
10885
|
** The [sqlite3_snapshot_get()] interface is only available when the
|
|
10788
10886
|
** [SQLITE_ENABLE_SNAPSHOT] compile-time option is used.
|
|
10789
10887
|
*/
|
|
10790
|
-
SQLITE_API
|
|
10888
|
+
SQLITE_API int sqlite3_snapshot_get(
|
|
10791
10889
|
sqlite3 *db,
|
|
10792
10890
|
const char *zSchema,
|
|
10793
10891
|
sqlite3_snapshot **ppSnapshot
|
|
@@ -10836,7 +10934,7 @@ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_get(
|
|
|
10836
10934
|
** The [sqlite3_snapshot_open()] interface is only available when the
|
|
10837
10935
|
** [SQLITE_ENABLE_SNAPSHOT] compile-time option is used.
|
|
10838
10936
|
*/
|
|
10839
|
-
SQLITE_API
|
|
10937
|
+
SQLITE_API int sqlite3_snapshot_open(
|
|
10840
10938
|
sqlite3 *db,
|
|
10841
10939
|
const char *zSchema,
|
|
10842
10940
|
sqlite3_snapshot *pSnapshot
|
|
@@ -10853,7 +10951,7 @@ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_open(
|
|
|
10853
10951
|
** The [sqlite3_snapshot_free()] interface is only available when the
|
|
10854
10952
|
** [SQLITE_ENABLE_SNAPSHOT] compile-time option is used.
|
|
10855
10953
|
*/
|
|
10856
|
-
SQLITE_API
|
|
10954
|
+
SQLITE_API void sqlite3_snapshot_free(sqlite3_snapshot*);
|
|
10857
10955
|
|
|
10858
10956
|
/*
|
|
10859
10957
|
** CAPI3REF: Compare the ages of two snapshot handles.
|
|
@@ -10880,7 +10978,7 @@ SQLITE_API SQLITE_EXPERIMENTAL void sqlite3_snapshot_free(sqlite3_snapshot*);
|
|
|
10880
10978
|
** This interface is only available if SQLite is compiled with the
|
|
10881
10979
|
** [SQLITE_ENABLE_SNAPSHOT] option.
|
|
10882
10980
|
*/
|
|
10883
|
-
SQLITE_API
|
|
10981
|
+
SQLITE_API int sqlite3_snapshot_cmp(
|
|
10884
10982
|
sqlite3_snapshot *p1,
|
|
10885
10983
|
sqlite3_snapshot *p2
|
|
10886
10984
|
);
|
|
@@ -10908,7 +11006,7 @@ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_cmp(
|
|
|
10908
11006
|
** This interface is only available if SQLite is compiled with the
|
|
10909
11007
|
** [SQLITE_ENABLE_SNAPSHOT] option.
|
|
10910
11008
|
*/
|
|
10911
|
-
SQLITE_API
|
|
11009
|
+
SQLITE_API int sqlite3_snapshot_recover(sqlite3 *db, const char *zDb);
|
|
10912
11010
|
|
|
10913
11011
|
/*
|
|
10914
11012
|
** CAPI3REF: Serialize a database
|
|
@@ -10982,12 +11080,13 @@ SQLITE_API unsigned char *sqlite3_serialize(
|
|
|
10982
11080
|
**
|
|
10983
11081
|
** The sqlite3_deserialize(D,S,P,N,M,F) interface causes the
|
|
10984
11082
|
** [database connection] D to disconnect from database S and then
|
|
10985
|
-
** reopen S as an in-memory database based on the serialization
|
|
10986
|
-
** in P.
|
|
10987
|
-
**
|
|
10988
|
-
** the
|
|
10989
|
-
**
|
|
10990
|
-
**
|
|
11083
|
+
** reopen S as an in-memory database based on the serialization
|
|
11084
|
+
** contained in P. If S is a NULL pointer, the main database is
|
|
11085
|
+
** used. The serialized database P is N bytes in size. M is the size
|
|
11086
|
+
** of the buffer P, which might be larger than N. If M is larger than
|
|
11087
|
+
** N, and the SQLITE_DESERIALIZE_READONLY bit is not set in F, then
|
|
11088
|
+
** SQLite is permitted to add content to the in-memory database as
|
|
11089
|
+
** long as the total size does not exceed M bytes.
|
|
10991
11090
|
**
|
|
10992
11091
|
** If the SQLITE_DESERIALIZE_FREEONCLOSE bit is set in F, then SQLite will
|
|
10993
11092
|
** invoke sqlite3_free() on the serialization buffer when the database
|
|
@@ -11054,6 +11153,54 @@ SQLITE_API int sqlite3_deserialize(
|
|
|
11054
11153
|
#define SQLITE_DESERIALIZE_RESIZEABLE 2 /* Resize using sqlite3_realloc64() */
|
|
11055
11154
|
#define SQLITE_DESERIALIZE_READONLY 4 /* Database is read-only */
|
|
11056
11155
|
|
|
11156
|
+
/*
|
|
11157
|
+
** CAPI3REF: Bind array values to the CARRAY table-valued function
|
|
11158
|
+
**
|
|
11159
|
+
** The sqlite3_carray_bind(S,I,P,N,F,X) interface binds an array value to
|
|
11160
|
+
** one of the first argument of the [carray() table-valued function]. The
|
|
11161
|
+
** S parameter is a pointer to the [prepared statement] that uses the carray()
|
|
11162
|
+
** functions. I is the parameter index to be bound. P is a pointer to the
|
|
11163
|
+
** array to be bound, and N is the number of eements in the array. The
|
|
11164
|
+
** F argument is one of constants [SQLITE_CARRAY_INT32], [SQLITE_CARRAY_INT64],
|
|
11165
|
+
** [SQLITE_CARRAY_DOUBLE], [SQLITE_CARRAY_TEXT], or [SQLITE_CARRAY_BLOB] to
|
|
11166
|
+
** indicate the datatype of the array being bound. The X argument is not a
|
|
11167
|
+
** NULL pointer, then SQLite will invoke the function X on the P parameter
|
|
11168
|
+
** after it has finished using P, even if the call to
|
|
11169
|
+
** sqlite3_carray_bind() fails. The special-case finalizer
|
|
11170
|
+
** SQLITE_TRANSIENT has no effect here.
|
|
11171
|
+
*/
|
|
11172
|
+
SQLITE_API int sqlite3_carray_bind(
|
|
11173
|
+
sqlite3_stmt *pStmt, /* Statement to be bound */
|
|
11174
|
+
int i, /* Parameter index */
|
|
11175
|
+
void *aData, /* Pointer to array data */
|
|
11176
|
+
int nData, /* Number of data elements */
|
|
11177
|
+
int mFlags, /* CARRAY flags */
|
|
11178
|
+
void (*xDel)(void*) /* Destructor for aData */
|
|
11179
|
+
);
|
|
11180
|
+
|
|
11181
|
+
/*
|
|
11182
|
+
** CAPI3REF: Datatypes for the CARRAY table-valued function
|
|
11183
|
+
**
|
|
11184
|
+
** The fifth argument to the [sqlite3_carray_bind()] interface musts be
|
|
11185
|
+
** one of the following constants, to specify the datatype of the array
|
|
11186
|
+
** that is being bound into the [carray table-valued function].
|
|
11187
|
+
*/
|
|
11188
|
+
#define SQLITE_CARRAY_INT32 0 /* Data is 32-bit signed integers */
|
|
11189
|
+
#define SQLITE_CARRAY_INT64 1 /* Data is 64-bit signed integers */
|
|
11190
|
+
#define SQLITE_CARRAY_DOUBLE 2 /* Data is doubles */
|
|
11191
|
+
#define SQLITE_CARRAY_TEXT 3 /* Data is char* */
|
|
11192
|
+
#define SQLITE_CARRAY_BLOB 4 /* Data is struct iovec */
|
|
11193
|
+
|
|
11194
|
+
/*
|
|
11195
|
+
** Versions of the above #defines that omit the initial SQLITE_, for
|
|
11196
|
+
** legacy compatibility.
|
|
11197
|
+
*/
|
|
11198
|
+
#define CARRAY_INT32 0 /* Data is 32-bit signed integers */
|
|
11199
|
+
#define CARRAY_INT64 1 /* Data is 64-bit signed integers */
|
|
11200
|
+
#define CARRAY_DOUBLE 2 /* Data is doubles */
|
|
11201
|
+
#define CARRAY_TEXT 3 /* Data is char* */
|
|
11202
|
+
#define CARRAY_BLOB 4 /* Data is struct iovec */
|
|
11203
|
+
|
|
11057
11204
|
/*
|
|
11058
11205
|
** Undo the hack that converts floating point types to integer for
|
|
11059
11206
|
** builds on processors without floating point support.
|
|
@@ -12313,14 +12460,32 @@ SQLITE_API void sqlite3changegroup_delete(sqlite3_changegroup*);
|
|
|
12313
12460
|
** update the "main" database attached to handle db with the changes found in
|
|
12314
12461
|
** the changeset passed via the second and third arguments.
|
|
12315
12462
|
**
|
|
12463
|
+
** All changes made by these functions are enclosed in a savepoint transaction.
|
|
12464
|
+
** If any other error (aside from a constraint failure when attempting to
|
|
12465
|
+
** write to the target database) occurs, then the savepoint transaction is
|
|
12466
|
+
** rolled back, restoring the target database to its original state, and an
|
|
12467
|
+
** SQLite error code returned. Additionally, starting with version 3.51.0,
|
|
12468
|
+
** an error code and error message that may be accessed using the
|
|
12469
|
+
** [sqlite3_errcode()] and [sqlite3_errmsg()] APIs are left in the database
|
|
12470
|
+
** handle.
|
|
12471
|
+
**
|
|
12316
12472
|
** The fourth argument (xFilter) passed to these functions is the "filter
|
|
12317
|
-
** callback".
|
|
12318
|
-
**
|
|
12319
|
-
**
|
|
12320
|
-
**
|
|
12321
|
-
**
|
|
12322
|
-
**
|
|
12323
|
-
**
|
|
12473
|
+
** callback". This may be passed NULL, in which case all changes in the
|
|
12474
|
+
** changeset are applied to the database. For sqlite3changeset_apply() and
|
|
12475
|
+
** sqlite3_changeset_apply_v2(), if it is not NULL, then it is invoked once
|
|
12476
|
+
** for each table affected by at least one change in the changeset. In this
|
|
12477
|
+
** case the table name is passed as the second argument, and a copy of
|
|
12478
|
+
** the context pointer passed as the sixth argument to apply() or apply_v2()
|
|
12479
|
+
** as the first. If the "filter callback" returns zero, then no attempt is
|
|
12480
|
+
** made to apply any changes to the table. Otherwise, if the return value is
|
|
12481
|
+
** non-zero, all changes related to the table are attempted.
|
|
12482
|
+
**
|
|
12483
|
+
** For sqlite3_changeset_apply_v3(), the xFilter callback is invoked once
|
|
12484
|
+
** per change. The second argument in this case is an sqlite3_changeset_iter
|
|
12485
|
+
** that may be queried using the usual APIs for the details of the current
|
|
12486
|
+
** change. If the "filter callback" returns zero in this case, then no attempt
|
|
12487
|
+
** is made to apply the current change. If it returns non-zero, the change
|
|
12488
|
+
** is applied.
|
|
12324
12489
|
**
|
|
12325
12490
|
** For each table that is not excluded by the filter callback, this function
|
|
12326
12491
|
** tests that the target database contains a compatible table. A table is
|
|
@@ -12341,11 +12506,11 @@ SQLITE_API void sqlite3changegroup_delete(sqlite3_changegroup*);
|
|
|
12341
12506
|
** one such warning is issued for each table in the changeset.
|
|
12342
12507
|
**
|
|
12343
12508
|
** For each change for which there is a compatible table, an attempt is made
|
|
12344
|
-
** to modify the table contents according to
|
|
12345
|
-
** change. If a change cannot be
|
|
12346
|
-
** function passed as the fifth argument
|
|
12347
|
-
** invoked. A description of exactly when
|
|
12348
|
-
** each type of change is below.
|
|
12509
|
+
** to modify the table contents according to each UPDATE, INSERT or DELETE
|
|
12510
|
+
** change that is not excluded by a filter callback. If a change cannot be
|
|
12511
|
+
** applied cleanly, the conflict handler function passed as the fifth argument
|
|
12512
|
+
** to sqlite3changeset_apply() may be invoked. A description of exactly when
|
|
12513
|
+
** the conflict handler is invoked for each type of change is below.
|
|
12349
12514
|
**
|
|
12350
12515
|
** Unlike the xFilter argument, xConflict may not be passed NULL. The results
|
|
12351
12516
|
** of passing anything other than a valid function pointer as the xConflict
|
|
@@ -12441,12 +12606,6 @@ SQLITE_API void sqlite3changegroup_delete(sqlite3_changegroup*);
|
|
|
12441
12606
|
** This can be used to further customize the application's conflict
|
|
12442
12607
|
** resolution strategy.
|
|
12443
12608
|
**
|
|
12444
|
-
** All changes made by these functions are enclosed in a savepoint transaction.
|
|
12445
|
-
** If any other error (aside from a constraint failure when attempting to
|
|
12446
|
-
** write to the target database) occurs, then the savepoint transaction is
|
|
12447
|
-
** rolled back, restoring the target database to its original state, and an
|
|
12448
|
-
** SQLite error code returned.
|
|
12449
|
-
**
|
|
12450
12609
|
** If the output parameters (ppRebase) and (pnRebase) are non-NULL and
|
|
12451
12610
|
** the input is a changeset (not a patchset), then sqlite3changeset_apply_v2()
|
|
12452
12611
|
** may set (*ppRebase) to point to a "rebase" that may be used with the
|
|
@@ -12496,6 +12655,23 @@ SQLITE_API int sqlite3changeset_apply_v2(
|
|
|
12496
12655
|
void **ppRebase, int *pnRebase, /* OUT: Rebase data */
|
|
12497
12656
|
int flags /* SESSION_CHANGESETAPPLY_* flags */
|
|
12498
12657
|
);
|
|
12658
|
+
SQLITE_API int sqlite3changeset_apply_v3(
|
|
12659
|
+
sqlite3 *db, /* Apply change to "main" db of this handle */
|
|
12660
|
+
int nChangeset, /* Size of changeset in bytes */
|
|
12661
|
+
void *pChangeset, /* Changeset blob */
|
|
12662
|
+
int(*xFilter)(
|
|
12663
|
+
void *pCtx, /* Copy of sixth arg to _apply() */
|
|
12664
|
+
sqlite3_changeset_iter *p /* Handle describing change */
|
|
12665
|
+
),
|
|
12666
|
+
int(*xConflict)(
|
|
12667
|
+
void *pCtx, /* Copy of sixth arg to _apply() */
|
|
12668
|
+
int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
|
|
12669
|
+
sqlite3_changeset_iter *p /* Handle describing change and conflict */
|
|
12670
|
+
),
|
|
12671
|
+
void *pCtx, /* First argument passed to xConflict */
|
|
12672
|
+
void **ppRebase, int *pnRebase, /* OUT: Rebase data */
|
|
12673
|
+
int flags /* SESSION_CHANGESETAPPLY_* flags */
|
|
12674
|
+
);
|
|
12499
12675
|
|
|
12500
12676
|
/*
|
|
12501
12677
|
** CAPI3REF: Flags for sqlite3changeset_apply_v2
|
|
@@ -12915,6 +13091,23 @@ SQLITE_API int sqlite3changeset_apply_v2_strm(
|
|
|
12915
13091
|
void **ppRebase, int *pnRebase,
|
|
12916
13092
|
int flags
|
|
12917
13093
|
);
|
|
13094
|
+
SQLITE_API int sqlite3changeset_apply_v3_strm(
|
|
13095
|
+
sqlite3 *db, /* Apply change to "main" db of this handle */
|
|
13096
|
+
int (*xInput)(void *pIn, void *pData, int *pnData), /* Input function */
|
|
13097
|
+
void *pIn, /* First arg for xInput */
|
|
13098
|
+
int(*xFilter)(
|
|
13099
|
+
void *pCtx, /* Copy of sixth arg to _apply() */
|
|
13100
|
+
sqlite3_changeset_iter *p
|
|
13101
|
+
),
|
|
13102
|
+
int(*xConflict)(
|
|
13103
|
+
void *pCtx, /* Copy of sixth arg to _apply() */
|
|
13104
|
+
int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
|
|
13105
|
+
sqlite3_changeset_iter *p /* Handle describing change and conflict */
|
|
13106
|
+
),
|
|
13107
|
+
void *pCtx, /* First argument passed to xConflict */
|
|
13108
|
+
void **ppRebase, int *pnRebase,
|
|
13109
|
+
int flags
|
|
13110
|
+
);
|
|
12918
13111
|
SQLITE_API int sqlite3changeset_concat_strm(
|
|
12919
13112
|
int (*xInputA)(void *pIn, void *pData, int *pnData),
|
|
12920
13113
|
void *pInA,
|