|
@@ -115,7 +115,9 @@ extern "C" {
|
|
|
** a string which identifies a particular check-in of SQLite
|
|
** a string which identifies a particular check-in of SQLite
|
|
|
** within its configuration management system. ^The SQLITE_SOURCE_ID
|
|
** within its configuration management system. ^The SQLITE_SOURCE_ID
|
|
|
** string contains the date and time of the check-in (UTC) and a SHA1
|
|
** string contains the date and time of the check-in (UTC) and a SHA1
|
|
|
-** or SHA3-256 hash of the entire source tree.
|
|
|
|
|
|
|
+** or SHA3-256 hash of the entire source tree. If the source code has
|
|
|
|
|
+** been edited in any way since it was last checked in, then the last
|
|
|
|
|
+** four hexadecimal digits of the hash may be modified.
|
|
|
**
|
|
**
|
|
|
** See also: [sqlite3_libversion()],
|
|
** See also: [sqlite3_libversion()],
|
|
|
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
|
|
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
|
|
@@ -123,7 +125,7 @@ extern "C" {
|
|
|
*/
|
|
*/
|
|
|
#define SQLITE_VERSION "3.21.0"
|
|
#define SQLITE_VERSION "3.21.0"
|
|
|
#define SQLITE_VERSION_NUMBER 3021000
|
|
#define SQLITE_VERSION_NUMBER 3021000
|
|
|
-#define SQLITE_SOURCE_ID "2017-08-21 02:20:57 56d19f9fd7b01d4ed5c3e7309977b43fedffee168c9760d3e3b7e885790f781e"
|
|
|
|
|
|
|
+#define SQLITE_SOURCE_ID "2017-09-05 20:16:19 6293ee25cf6c93ece8d477e9d3e315a2fc5e003a075f8bcf91c94694eebaalt1"
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
|
** CAPI3REF: Run-Time Library Version Numbers
|
|
** CAPI3REF: Run-Time Library Version Numbers
|
|
@@ -139,7 +141,7 @@ extern "C" {
|
|
|
**
|
|
**
|
|
|
** <blockquote><pre>
|
|
** <blockquote><pre>
|
|
|
** assert( sqlite3_libversion_number()==SQLITE_VERSION_NUMBER );
|
|
** assert( sqlite3_libversion_number()==SQLITE_VERSION_NUMBER );
|
|
|
-** assert( strcmp(sqlite3_sourceid(),SQLITE_SOURCE_ID)==0 );
|
|
|
|
|
|
|
+** assert( strncmp(sqlite3_sourceid(),SQLITE_SOURCE_ID,80)==0 );
|
|
|
** assert( strcmp(sqlite3_libversion(),SQLITE_VERSION)==0 );
|
|
** assert( strcmp(sqlite3_libversion(),SQLITE_VERSION)==0 );
|
|
|
** </pre></blockquote>)^
|
|
** </pre></blockquote>)^
|
|
|
**
|
|
**
|
|
@@ -149,9 +151,11 @@ extern "C" {
|
|
|
** function is provided for use in DLLs since DLL users usually do not have
|
|
** function is provided for use in DLLs since DLL users usually do not have
|
|
|
** direct access to string constants within the DLL. ^The
|
|
** direct access to string constants within the DLL. ^The
|
|
|
** sqlite3_libversion_number() function returns an integer equal to
|
|
** sqlite3_libversion_number() function returns an integer equal to
|
|
|
-** [SQLITE_VERSION_NUMBER]. ^The sqlite3_sourceid() function returns
|
|
|
|
|
|
|
+** [SQLITE_VERSION_NUMBER]. ^(The sqlite3_sourceid() function returns
|
|
|
** a pointer to a string constant whose value is the same as the
|
|
** a pointer to a string constant whose value is the same as the
|
|
|
-** [SQLITE_SOURCE_ID] C preprocessor macro.
|
|
|
|
|
|
|
+** [SQLITE_SOURCE_ID] C preprocessor macro. Except if SQLite is built
|
|
|
|
|
+** using an edited copy of [the amalgamation], then the last four characters
|
|
|
|
|
+** of the hash might be different from [SQLITE_SOURCE_ID].)^
|
|
|
**
|
|
**
|
|
|
** See also: [sqlite_version()] and [sqlite_source_id()].
|
|
** See also: [sqlite_version()] and [sqlite_source_id()].
|
|
|
*/
|
|
*/
|
|
@@ -1675,6 +1679,16 @@ struct sqlite3_mem_methods {
|
|
|
** routines with a wrapper that simulations memory allocation failure or
|
|
** routines with a wrapper that simulations memory allocation failure or
|
|
|
** tracks memory usage, for example. </dd>
|
|
** tracks memory usage, for example. </dd>
|
|
|
**
|
|
**
|
|
|
|
|
+** [[SQLITE_CONFIG_SMALL_MALLOC]] <dt>SQLITE_CONFIG_SMALL_MALLOC</dt>
|
|
|
|
|
+** <dd> ^The SQLITE_CONFIG_SMALL_MALLOC option takes single argument of
|
|
|
|
|
+** type int, interpreted as a boolean, which if true provides a hint to
|
|
|
|
|
+** SQLite that it should avoid large memory allocations if possible.
|
|
|
|
|
+** SQLite will run faster if it is free to make large memory allocations,
|
|
|
|
|
+** but some application might prefer to run slower in exchange for
|
|
|
|
|
+** guarantees about memory fragmentation that are possible if large
|
|
|
|
|
+** allocations are avoided. This hint is normally off.
|
|
|
|
|
+** </dd>
|
|
|
|
|
+**
|
|
|
** [[SQLITE_CONFIG_MEMSTATUS]] <dt>SQLITE_CONFIG_MEMSTATUS</dt>
|
|
** [[SQLITE_CONFIG_MEMSTATUS]] <dt>SQLITE_CONFIG_MEMSTATUS</dt>
|
|
|
** <dd> ^The SQLITE_CONFIG_MEMSTATUS option takes single argument of type int,
|
|
** <dd> ^The SQLITE_CONFIG_MEMSTATUS option takes single argument of type int,
|
|
|
** interpreted as a boolean, which enables or disables the collection of
|
|
** interpreted as a boolean, which enables or disables the collection of
|
|
@@ -1692,25 +1706,7 @@ struct sqlite3_mem_methods {
|
|
|
** </dd>
|
|
** </dd>
|
|
|
**
|
|
**
|
|
|
** [[SQLITE_CONFIG_SCRATCH]] <dt>SQLITE_CONFIG_SCRATCH</dt>
|
|
** [[SQLITE_CONFIG_SCRATCH]] <dt>SQLITE_CONFIG_SCRATCH</dt>
|
|
|
-** <dd> ^The SQLITE_CONFIG_SCRATCH option specifies a static memory buffer
|
|
|
|
|
-** that SQLite can use for scratch memory. ^(There are three arguments
|
|
|
|
|
-** to SQLITE_CONFIG_SCRATCH: A pointer an 8-byte
|
|
|
|
|
-** aligned memory buffer from which the scratch allocations will be
|
|
|
|
|
-** drawn, the size of each scratch allocation (sz),
|
|
|
|
|
-** and the maximum number of scratch allocations (N).)^
|
|
|
|
|
-** The first argument must be a pointer to an 8-byte aligned buffer
|
|
|
|
|
-** of at least sz*N bytes of memory.
|
|
|
|
|
-** ^SQLite will not use more than one scratch buffers per thread.
|
|
|
|
|
-** ^SQLite will never request a scratch buffer that is more than 6
|
|
|
|
|
-** times the database page size.
|
|
|
|
|
-** ^If SQLite needs needs additional
|
|
|
|
|
-** scratch memory beyond what is provided by this configuration option, then
|
|
|
|
|
-** [sqlite3_malloc()] will be used to obtain the memory needed.<p>
|
|
|
|
|
-** ^When the application provides any amount of scratch memory using
|
|
|
|
|
-** SQLITE_CONFIG_SCRATCH, SQLite avoids unnecessary large
|
|
|
|
|
-** [sqlite3_malloc|heap allocations].
|
|
|
|
|
-** This can help [Robson proof|prevent memory allocation failures] due to heap
|
|
|
|
|
-** fragmentation in low-memory embedded systems.
|
|
|
|
|
|
|
+** <dd> The SQLITE_CONFIG_SCRATCH option is no longer used.
|
|
|
** </dd>
|
|
** </dd>
|
|
|
**
|
|
**
|
|
|
** [[SQLITE_CONFIG_PAGECACHE]] <dt>SQLITE_CONFIG_PAGECACHE</dt>
|
|
** [[SQLITE_CONFIG_PAGECACHE]] <dt>SQLITE_CONFIG_PAGECACHE</dt>
|
|
@@ -1746,8 +1742,7 @@ struct sqlite3_mem_methods {
|
|
|
** [[SQLITE_CONFIG_HEAP]] <dt>SQLITE_CONFIG_HEAP</dt>
|
|
** [[SQLITE_CONFIG_HEAP]] <dt>SQLITE_CONFIG_HEAP</dt>
|
|
|
** <dd> ^The SQLITE_CONFIG_HEAP option specifies a static memory buffer
|
|
** <dd> ^The SQLITE_CONFIG_HEAP option specifies a static memory buffer
|
|
|
** that SQLite will use for all of its dynamic memory allocation needs
|
|
** that SQLite will use for all of its dynamic memory allocation needs
|
|
|
-** beyond those provided for by [SQLITE_CONFIG_SCRATCH] and
|
|
|
|
|
-** [SQLITE_CONFIG_PAGECACHE].
|
|
|
|
|
|
|
+** beyond those provided for by [SQLITE_CONFIG_PAGECACHE].
|
|
|
** ^The SQLITE_CONFIG_HEAP option is only available if SQLite is compiled
|
|
** ^The SQLITE_CONFIG_HEAP option is only available if SQLite is compiled
|
|
|
** with either [SQLITE_ENABLE_MEMSYS3] or [SQLITE_ENABLE_MEMSYS5] and returns
|
|
** with either [SQLITE_ENABLE_MEMSYS3] or [SQLITE_ENABLE_MEMSYS5] and returns
|
|
|
** [SQLITE_ERROR] if invoked otherwise.
|
|
** [SQLITE_ERROR] if invoked otherwise.
|
|
@@ -1940,7 +1935,7 @@ struct sqlite3_mem_methods {
|
|
|
#define SQLITE_CONFIG_SERIALIZED 3 /* nil */
|
|
#define SQLITE_CONFIG_SERIALIZED 3 /* nil */
|
|
|
#define SQLITE_CONFIG_MALLOC 4 /* sqlite3_mem_methods* */
|
|
#define SQLITE_CONFIG_MALLOC 4 /* sqlite3_mem_methods* */
|
|
|
#define SQLITE_CONFIG_GETMALLOC 5 /* sqlite3_mem_methods* */
|
|
#define SQLITE_CONFIG_GETMALLOC 5 /* sqlite3_mem_methods* */
|
|
|
-#define SQLITE_CONFIG_SCRATCH 6 /* void*, int sz, int N */
|
|
|
|
|
|
|
+#define SQLITE_CONFIG_SCRATCH 6 /* No longer used */
|
|
|
#define SQLITE_CONFIG_PAGECACHE 7 /* void*, int sz, int N */
|
|
#define SQLITE_CONFIG_PAGECACHE 7 /* void*, int sz, int N */
|
|
|
#define SQLITE_CONFIG_HEAP 8 /* void*, int nByte, int min */
|
|
#define SQLITE_CONFIG_HEAP 8 /* void*, int nByte, int min */
|
|
|
#define SQLITE_CONFIG_MEMSTATUS 9 /* boolean */
|
|
#define SQLITE_CONFIG_MEMSTATUS 9 /* boolean */
|
|
@@ -1961,6 +1956,7 @@ struct sqlite3_mem_methods {
|
|
|
#define SQLITE_CONFIG_PCACHE_HDRSZ 24 /* int *psz */
|
|
#define SQLITE_CONFIG_PCACHE_HDRSZ 24 /* int *psz */
|
|
|
#define SQLITE_CONFIG_PMASZ 25 /* unsigned int szPma */
|
|
#define SQLITE_CONFIG_PMASZ 25 /* unsigned int szPma */
|
|
|
#define SQLITE_CONFIG_STMTJRNL_SPILL 26 /* int nByte */
|
|
#define SQLITE_CONFIG_STMTJRNL_SPILL 26 /* int nByte */
|
|
|
|
|
+#define SQLITE_CONFIG_SMALL_MALLOC 27 /* boolean */
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
|
** CAPI3REF: Database Connection Configuration Options
|
|
** CAPI3REF: Database Connection Configuration Options
|
|
@@ -3177,10 +3173,10 @@ SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);
|
|
|
** ^If [URI filename] interpretation is enabled, and the filename argument
|
|
** ^If [URI filename] interpretation is enabled, and the filename argument
|
|
|
** begins with "file:", then the filename is interpreted as a URI. ^URI
|
|
** begins with "file:", then the filename is interpreted as a URI. ^URI
|
|
|
** filename interpretation is enabled if the [SQLITE_OPEN_URI] flag is
|
|
** filename interpretation is enabled if the [SQLITE_OPEN_URI] flag is
|
|
|
-** set in the fourth argument to sqlite3_open_v2(), or if it has
|
|
|
|
|
|
|
+** set in the third argument to sqlite3_open_v2(), or if it has
|
|
|
** been enabled globally using the [SQLITE_CONFIG_URI] option with the
|
|
** been enabled globally using the [SQLITE_CONFIG_URI] option with the
|
|
|
** [sqlite3_config()] method or by the [SQLITE_USE_URI] compile-time option.
|
|
** [sqlite3_config()] method or by the [SQLITE_USE_URI] compile-time option.
|
|
|
-** As of SQLite version 3.7.7, URI filename interpretation is turned off
|
|
|
|
|
|
|
+** URI filename interpretation is turned off
|
|
|
** by default, but future releases of SQLite might enable URI filename
|
|
** by default, but future releases of SQLite might enable URI filename
|
|
|
** interpretation by default. See "[URI filenames]" for additional
|
|
** interpretation by default. See "[URI filenames]" for additional
|
|
|
** information.
|
|
** information.
|
|
@@ -3857,8 +3853,9 @@ SQLITE_API int sqlite3_stmt_busy(sqlite3_stmt*);
|
|
|
** implementation of [application-defined SQL functions] are protected.
|
|
** implementation of [application-defined SQL functions] are protected.
|
|
|
** ^The sqlite3_value object returned by
|
|
** ^The sqlite3_value object returned by
|
|
|
** [sqlite3_column_value()] is unprotected.
|
|
** [sqlite3_column_value()] is unprotected.
|
|
|
-** Unprotected sqlite3_value objects may only be used with
|
|
|
|
|
-** [sqlite3_result_value()] and [sqlite3_bind_value()].
|
|
|
|
|
|
|
+** Unprotected sqlite3_value objects may only be used as arguments
|
|
|
|
|
+** to [sqlite3_result_value()], [sqlite3_bind_value()], and
|
|
|
|
|
+** [sqlite3_value_dup()].
|
|
|
** The [sqlite3_value_blob | sqlite3_value_type()] family of
|
|
** The [sqlite3_value_blob | sqlite3_value_type()] family of
|
|
|
** interfaces require protected sqlite3_value objects.
|
|
** interfaces require protected sqlite3_value objects.
|
|
|
*/
|
|
*/
|
|
@@ -7049,7 +7046,7 @@ SQLITE_API int sqlite3_test_control(int op, ...);
|
|
|
#define SQLITE_TESTCTRL_RESERVE 14
|
|
#define SQLITE_TESTCTRL_RESERVE 14
|
|
|
#define SQLITE_TESTCTRL_OPTIMIZATIONS 15
|
|
#define SQLITE_TESTCTRL_OPTIMIZATIONS 15
|
|
|
#define SQLITE_TESTCTRL_ISKEYWORD 16
|
|
#define SQLITE_TESTCTRL_ISKEYWORD 16
|
|
|
-#define SQLITE_TESTCTRL_SCRATCHMALLOC 17
|
|
|
|
|
|
|
+#define SQLITE_TESTCTRL_SCRATCHMALLOC 17 /* NOT USED */
|
|
|
#define SQLITE_TESTCTRL_LOCALTIME_FAULT 18
|
|
#define SQLITE_TESTCTRL_LOCALTIME_FAULT 18
|
|
|
#define SQLITE_TESTCTRL_EXPLAIN_STMT 19 /* NOT USED */
|
|
#define SQLITE_TESTCTRL_EXPLAIN_STMT 19 /* NOT USED */
|
|
|
#define SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD 19
|
|
#define SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD 19
|
|
@@ -7108,8 +7105,7 @@ SQLITE_API int sqlite3_status64(
|
|
|
** <dd>This parameter is the current amount of memory checked out
|
|
** <dd>This parameter is the current amount of memory checked out
|
|
|
** using [sqlite3_malloc()], either directly or indirectly. The
|
|
** using [sqlite3_malloc()], either directly or indirectly. The
|
|
|
** figure includes calls made to [sqlite3_malloc()] by the application
|
|
** figure includes calls made to [sqlite3_malloc()] by the application
|
|
|
-** and internal memory usage by the SQLite library. Scratch memory
|
|
|
|
|
-** controlled by [SQLITE_CONFIG_SCRATCH] and auxiliary page-cache
|
|
|
|
|
|
|
+** and internal memory usage by the SQLite library. Auxiliary page-cache
|
|
|
** memory controlled by [SQLITE_CONFIG_PAGECACHE] is not included in
|
|
** memory controlled by [SQLITE_CONFIG_PAGECACHE] is not included in
|
|
|
** this parameter. The amount returned is the sum of the allocation
|
|
** this parameter. The amount returned is the sum of the allocation
|
|
|
** sizes as reported by the xSize method in [sqlite3_mem_methods].</dd>)^
|
|
** sizes as reported by the xSize method in [sqlite3_mem_methods].</dd>)^
|
|
@@ -7147,29 +7143,14 @@ SQLITE_API int sqlite3_status64(
|
|
|
** *pHighwater parameter to [sqlite3_status()] is of interest.
|
|
** *pHighwater parameter to [sqlite3_status()] is of interest.
|
|
|
** The value written into the *pCurrent parameter is undefined.</dd>)^
|
|
** The value written into the *pCurrent parameter is undefined.</dd>)^
|
|
|
**
|
|
**
|
|
|
-** [[SQLITE_STATUS_SCRATCH_USED]] ^(<dt>SQLITE_STATUS_SCRATCH_USED</dt>
|
|
|
|
|
-** <dd>This parameter returns the number of allocations used out of the
|
|
|
|
|
-** [scratch memory allocator] configured using
|
|
|
|
|
-** [SQLITE_CONFIG_SCRATCH]. The value returned is in allocations, not
|
|
|
|
|
-** in bytes. Since a single thread may only have one scratch allocation
|
|
|
|
|
-** outstanding at time, this parameter also reports the number of threads
|
|
|
|
|
-** using scratch memory at the same time.</dd>)^
|
|
|
|
|
|
|
+** [[SQLITE_STATUS_SCRATCH_USED]] <dt>SQLITE_STATUS_SCRATCH_USED</dt>
|
|
|
|
|
+** <dd>No longer used.</dd>
|
|
|
**
|
|
**
|
|
|
** [[SQLITE_STATUS_SCRATCH_OVERFLOW]] ^(<dt>SQLITE_STATUS_SCRATCH_OVERFLOW</dt>
|
|
** [[SQLITE_STATUS_SCRATCH_OVERFLOW]] ^(<dt>SQLITE_STATUS_SCRATCH_OVERFLOW</dt>
|
|
|
-** <dd>This parameter returns the number of bytes of scratch memory
|
|
|
|
|
-** allocation which could not be satisfied by the [SQLITE_CONFIG_SCRATCH]
|
|
|
|
|
-** buffer and where forced to overflow to [sqlite3_malloc()]. The values
|
|
|
|
|
-** returned include overflows because the requested allocation was too
|
|
|
|
|
-** larger (that is, because the requested allocation was larger than the
|
|
|
|
|
-** "sz" parameter to [SQLITE_CONFIG_SCRATCH]) and because no scratch buffer
|
|
|
|
|
-** slots were available.
|
|
|
|
|
-** </dd>)^
|
|
|
|
|
-**
|
|
|
|
|
-** [[SQLITE_STATUS_SCRATCH_SIZE]] ^(<dt>SQLITE_STATUS_SCRATCH_SIZE</dt>
|
|
|
|
|
-** <dd>This parameter records the largest memory allocation request
|
|
|
|
|
-** handed to [scratch memory allocator]. Only the value returned in the
|
|
|
|
|
-** *pHighwater parameter to [sqlite3_status()] is of interest.
|
|
|
|
|
-** The value written into the *pCurrent parameter is undefined.</dd>)^
|
|
|
|
|
|
|
+** <dd>No longer used.</dd>
|
|
|
|
|
+**
|
|
|
|
|
+** [[SQLITE_STATUS_SCRATCH_SIZE]] <dt>SQLITE_STATUS_SCRATCH_SIZE</dt>
|
|
|
|
|
+** <dd>No longer used.</dd>
|
|
|
**
|
|
**
|
|
|
** [[SQLITE_STATUS_PARSER_STACK]] ^(<dt>SQLITE_STATUS_PARSER_STACK</dt>
|
|
** [[SQLITE_STATUS_PARSER_STACK]] ^(<dt>SQLITE_STATUS_PARSER_STACK</dt>
|
|
|
** <dd>The *pHighwater parameter records the deepest parser stack.
|
|
** <dd>The *pHighwater parameter records the deepest parser stack.
|
|
@@ -7182,12 +7163,12 @@ SQLITE_API int sqlite3_status64(
|
|
|
#define SQLITE_STATUS_MEMORY_USED 0
|
|
#define SQLITE_STATUS_MEMORY_USED 0
|
|
|
#define SQLITE_STATUS_PAGECACHE_USED 1
|
|
#define SQLITE_STATUS_PAGECACHE_USED 1
|
|
|
#define SQLITE_STATUS_PAGECACHE_OVERFLOW 2
|
|
#define SQLITE_STATUS_PAGECACHE_OVERFLOW 2
|
|
|
-#define SQLITE_STATUS_SCRATCH_USED 3
|
|
|
|
|
-#define SQLITE_STATUS_SCRATCH_OVERFLOW 4
|
|
|
|
|
|
|
+#define SQLITE_STATUS_SCRATCH_USED 3 /* NOT USED */
|
|
|
|
|
+#define SQLITE_STATUS_SCRATCH_OVERFLOW 4 /* NOT USED */
|
|
|
#define SQLITE_STATUS_MALLOC_SIZE 5
|
|
#define SQLITE_STATUS_MALLOC_SIZE 5
|
|
|
#define SQLITE_STATUS_PARSER_STACK 6
|
|
#define SQLITE_STATUS_PARSER_STACK 6
|
|
|
#define SQLITE_STATUS_PAGECACHE_SIZE 7
|
|
#define SQLITE_STATUS_PAGECACHE_SIZE 7
|
|
|
-#define SQLITE_STATUS_SCRATCH_SIZE 8
|
|
|
|
|
|
|
+#define SQLITE_STATUS_SCRATCH_SIZE 8 /* NOT USED */
|
|
|
#define SQLITE_STATUS_MALLOC_COUNT 9
|
|
#define SQLITE_STATUS_MALLOC_COUNT 9
|
|
|
|
|
|
|
|
/*
|
|
/*
|