update: sqlite 3.50.2.
This commit is contained in:
@ -23,7 +23,7 @@ VERSION_NAME := This program kills fascists.
|
|||||||
|
|
||||||
IPHONEOS_VERSION_MIN=14.0
|
IPHONEOS_VERSION_MIN=14.0
|
||||||
|
|
||||||
SQLITE_URL := https://www.sqlite.org/2025/sqlite-amalgamation-3500100.zip
|
SQLITE_URL := https://www.sqlite.org/2025/sqlite-amalgamation-3500200.zip
|
||||||
BUNDLETOOL_URL := https://github.com/google/bundletool/releases/download/1.17.0/bundletool-all-1.17.0.jar
|
BUNDLETOOL_URL := https://github.com/google/bundletool/releases/download/1.17.0/bundletool-all-1.17.0.jar
|
||||||
APPIMAGETOOL_URL := https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
|
APPIMAGETOOL_URL := https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
|
||||||
APPIMAGETOOL_MD5 := e989fadfc4d685fd3d6aeeb9b525d74d out/appimagetool
|
APPIMAGETOOL_MD5 := e989fadfc4d685fd3d6aeeb9b525d74d out/appimagetool
|
||||||
|
15
deps/sqlite/shell.c
vendored
15
deps/sqlite/shell.c
vendored
@ -8027,13 +8027,14 @@ SQLITE_EXTENSION_INIT1
|
|||||||
# include <dirent.h>
|
# include <dirent.h>
|
||||||
# include <utime.h>
|
# include <utime.h>
|
||||||
# include <sys/time.h>
|
# include <sys/time.h>
|
||||||
|
# define STRUCT_STAT struct stat
|
||||||
#else
|
#else
|
||||||
# include "windows.h"
|
# include "windows.h"
|
||||||
# include <io.h>
|
# include <io.h>
|
||||||
# include <direct.h>
|
# include <direct.h>
|
||||||
/* # include "test_windirent.h" */
|
/* # include "test_windirent.h" */
|
||||||
# define dirent DIRENT
|
# define dirent DIRENT
|
||||||
# define stat _stat
|
# define STRUCT_STAT struct _stat
|
||||||
# define chmod(path,mode) fileio_chmod(path,mode)
|
# define chmod(path,mode) fileio_chmod(path,mode)
|
||||||
# define mkdir(path,mode) fileio_mkdir(path)
|
# define mkdir(path,mode) fileio_mkdir(path)
|
||||||
#endif
|
#endif
|
||||||
@ -8224,7 +8225,7 @@ LPWSTR utf8_to_utf16(const char *z){
|
|||||||
*/
|
*/
|
||||||
static void statTimesToUtc(
|
static void statTimesToUtc(
|
||||||
const char *zPath,
|
const char *zPath,
|
||||||
struct stat *pStatBuf
|
STRUCT_STAT *pStatBuf
|
||||||
){
|
){
|
||||||
HANDLE hFindFile;
|
HANDLE hFindFile;
|
||||||
WIN32_FIND_DATAW fd;
|
WIN32_FIND_DATAW fd;
|
||||||
@ -8252,7 +8253,7 @@ static void statTimesToUtc(
|
|||||||
*/
|
*/
|
||||||
static int fileStat(
|
static int fileStat(
|
||||||
const char *zPath,
|
const char *zPath,
|
||||||
struct stat *pStatBuf
|
STRUCT_STAT *pStatBuf
|
||||||
){
|
){
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
sqlite3_int64 sz = strlen(zPath);
|
sqlite3_int64 sz = strlen(zPath);
|
||||||
@ -8276,7 +8277,7 @@ static int fileStat(
|
|||||||
*/
|
*/
|
||||||
static int fileLinkStat(
|
static int fileLinkStat(
|
||||||
const char *zPath,
|
const char *zPath,
|
||||||
struct stat *pStatBuf
|
STRUCT_STAT *pStatBuf
|
||||||
){
|
){
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
return fileStat(zPath, pStatBuf);
|
return fileStat(zPath, pStatBuf);
|
||||||
@ -8309,7 +8310,7 @@ static int makeDirectory(
|
|||||||
int i = 1;
|
int i = 1;
|
||||||
|
|
||||||
while( rc==SQLITE_OK ){
|
while( rc==SQLITE_OK ){
|
||||||
struct stat sStat;
|
STRUCT_STAT sStat;
|
||||||
int rc2;
|
int rc2;
|
||||||
|
|
||||||
for(; zCopy[i]!='/' && i<nCopy; i++);
|
for(; zCopy[i]!='/' && i<nCopy; i++);
|
||||||
@ -8359,7 +8360,7 @@ static int writeFile(
|
|||||||
** be an error though - if there is already a directory at the same
|
** be an error though - if there is already a directory at the same
|
||||||
** path and either the permissions already match or can be changed
|
** path and either the permissions already match or can be changed
|
||||||
** to do so using chmod(), it is not an error. */
|
** to do so using chmod(), it is not an error. */
|
||||||
struct stat sStat;
|
STRUCT_STAT sStat;
|
||||||
if( errno!=EEXIST
|
if( errno!=EEXIST
|
||||||
|| 0!=fileStat(zFile, &sStat)
|
|| 0!=fileStat(zFile, &sStat)
|
||||||
|| !S_ISDIR(sStat.st_mode)
|
|| !S_ISDIR(sStat.st_mode)
|
||||||
@ -8561,7 +8562,7 @@ struct fsdir_cursor {
|
|||||||
const char *zBase;
|
const char *zBase;
|
||||||
int nBase;
|
int nBase;
|
||||||
|
|
||||||
struct stat sStat; /* Current lstat() results */
|
STRUCT_STAT sStat; /* Current lstat() results */
|
||||||
char *zPath; /* Path to current entry */
|
char *zPath; /* Path to current entry */
|
||||||
sqlite3_int64 iRowid; /* Current rowid */
|
sqlite3_int64 iRowid; /* Current rowid */
|
||||||
};
|
};
|
||||||
|
199
deps/sqlite/sqlite3.c
vendored
199
deps/sqlite/sqlite3.c
vendored
@ -1,6 +1,6 @@
|
|||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
** This file is an amalgamation of many separate C source files from SQLite
|
** This file is an amalgamation of many separate C source files from SQLite
|
||||||
** version 3.50.1. By combining all the individual C code files into this
|
** version 3.50.2. By combining all the individual C code files into this
|
||||||
** single large file, the entire code can be compiled as a single translation
|
** single large file, the entire code can be compiled as a single translation
|
||||||
** unit. This allows many compilers to do optimizations that would not be
|
** unit. This allows many compilers to do optimizations that would not be
|
||||||
** possible if the files were compiled separately. Performance improvements
|
** possible if the files were compiled separately. Performance improvements
|
||||||
@ -18,7 +18,7 @@
|
|||||||
** separate file. This file contains only code for the core SQLite library.
|
** separate file. This file contains only code for the core SQLite library.
|
||||||
**
|
**
|
||||||
** The content in this amalgamation comes from Fossil check-in
|
** The content in this amalgamation comes from Fossil check-in
|
||||||
** b77dc5e0f596d2140d9ac682b2893ff65d3a with changes in files:
|
** 2af157d77fb1304a74176eaee7fbc7c7e932 with changes in files:
|
||||||
**
|
**
|
||||||
**
|
**
|
||||||
*/
|
*/
|
||||||
@ -465,9 +465,9 @@ extern "C" {
|
|||||||
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
|
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
|
||||||
** [sqlite_version()] and [sqlite_source_id()].
|
** [sqlite_version()] and [sqlite_source_id()].
|
||||||
*/
|
*/
|
||||||
#define SQLITE_VERSION "3.50.1"
|
#define SQLITE_VERSION "3.50.2"
|
||||||
#define SQLITE_VERSION_NUMBER 3050001
|
#define SQLITE_VERSION_NUMBER 3050002
|
||||||
#define SQLITE_SOURCE_ID "2025-06-06 14:52:32 b77dc5e0f596d2140d9ac682b2893ff65d3a4140aa86067a3efebe29dc914c95"
|
#define SQLITE_SOURCE_ID "2025-06-28 14:00:48 2af157d77fb1304a74176eaee7fbc7c7e932d946bf25325e9c26c91db19e3079"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** CAPI3REF: Run-Time Library Version Numbers
|
** CAPI3REF: Run-Time Library Version Numbers
|
||||||
@ -4398,7 +4398,7 @@ SQLITE_API sqlite3_file *sqlite3_database_file_object(const char*);
|
|||||||
**
|
**
|
||||||
** The sqlite3_create_filename(D,J,W,N,P) allocates memory to hold a version of
|
** The sqlite3_create_filename(D,J,W,N,P) allocates memory to hold a version of
|
||||||
** database filename D with corresponding journal file J and WAL file W and
|
** database filename D with corresponding journal file J and WAL file W and
|
||||||
** with N URI parameters key/values pairs in the array P. The result from
|
** an array P of N URI Key/Value pairs. The result from
|
||||||
** sqlite3_create_filename(D,J,W,N,P) is a pointer to a database filename that
|
** sqlite3_create_filename(D,J,W,N,P) is a pointer to a database filename that
|
||||||
** is safe to pass to routines like:
|
** is safe to pass to routines like:
|
||||||
** <ul>
|
** <ul>
|
||||||
@ -5079,7 +5079,7 @@ typedef struct sqlite3_context sqlite3_context;
|
|||||||
** METHOD: sqlite3_stmt
|
** METHOD: sqlite3_stmt
|
||||||
**
|
**
|
||||||
** ^(In the SQL statement text input to [sqlite3_prepare_v2()] and its variants,
|
** ^(In the SQL statement text input to [sqlite3_prepare_v2()] and its variants,
|
||||||
** literals may be replaced by a [parameter] that matches one of following
|
** literals may be replaced by a [parameter] that matches one of the following
|
||||||
** templates:
|
** templates:
|
||||||
**
|
**
|
||||||
** <ul>
|
** <ul>
|
||||||
@ -5124,7 +5124,7 @@ typedef struct sqlite3_context sqlite3_context;
|
|||||||
**
|
**
|
||||||
** [[byte-order determination rules]] ^The byte-order of
|
** [[byte-order determination rules]] ^The byte-order of
|
||||||
** UTF16 input text is determined by the byte-order mark (BOM, U+FEFF)
|
** UTF16 input text is determined by the byte-order mark (BOM, U+FEFF)
|
||||||
** found in first character, which is removed, or in the absence of a BOM
|
** found in the first character, which is removed, or in the absence of a BOM
|
||||||
** the byte order is the native byte order of the host
|
** the byte order is the native byte order of the host
|
||||||
** machine for sqlite3_bind_text16() or the byte order specified in
|
** machine for sqlite3_bind_text16() or the byte order specified in
|
||||||
** the 6th parameter for sqlite3_bind_text64().)^
|
** the 6th parameter for sqlite3_bind_text64().)^
|
||||||
@ -5144,7 +5144,7 @@ typedef struct sqlite3_context sqlite3_context;
|
|||||||
** or sqlite3_bind_text16() or sqlite3_bind_text64() then
|
** or sqlite3_bind_text16() or sqlite3_bind_text64() then
|
||||||
** that parameter must be the byte offset
|
** that parameter must be the byte offset
|
||||||
** where the NUL terminator would occur assuming the string were NUL
|
** where the NUL terminator would occur assuming the string were NUL
|
||||||
** terminated. If any NUL characters occurs at byte offsets less than
|
** terminated. If any NUL characters occur at byte offsets less than
|
||||||
** the value of the fourth parameter then the resulting string value will
|
** the value of the fourth parameter then the resulting string value will
|
||||||
** contain embedded NULs. The result of expressions involving strings
|
** contain embedded NULs. The result of expressions involving strings
|
||||||
** with embedded NULs is undefined.
|
** with embedded NULs is undefined.
|
||||||
@ -5356,7 +5356,7 @@ SQLITE_API const void *sqlite3_column_name16(sqlite3_stmt*, int N);
|
|||||||
** METHOD: sqlite3_stmt
|
** METHOD: sqlite3_stmt
|
||||||
**
|
**
|
||||||
** ^These routines provide a means to determine the database, table, and
|
** ^These routines provide a means to determine the database, table, and
|
||||||
** table column that is the origin of a particular result column in
|
** table column that is the origin of a particular result column in a
|
||||||
** [SELECT] statement.
|
** [SELECT] statement.
|
||||||
** ^The name of the database or table or column can be returned as
|
** ^The name of the database or table or column can be returned as
|
||||||
** either a UTF-8 or UTF-16 string. ^The _database_ routines return
|
** either a UTF-8 or UTF-16 string. ^The _database_ routines return
|
||||||
@ -5925,8 +5925,8 @@ SQLITE_API int sqlite3_reset(sqlite3_stmt *pStmt);
|
|||||||
**
|
**
|
||||||
** For best security, the [SQLITE_DIRECTONLY] flag is recommended for
|
** For best security, the [SQLITE_DIRECTONLY] flag is recommended for
|
||||||
** all application-defined SQL functions that do not need to be
|
** all application-defined SQL functions that do not need to be
|
||||||
** used inside of triggers, view, CHECK constraints, or other elements of
|
** used inside of triggers, views, CHECK constraints, or other elements of
|
||||||
** the database schema. This flags is especially recommended for SQL
|
** the database schema. This flag is especially recommended for SQL
|
||||||
** functions that have side effects or reveal internal application state.
|
** functions that have side effects or reveal internal application state.
|
||||||
** Without this flag, an attacker might be able to modify the schema of
|
** Without this flag, an attacker might be able to modify the schema of
|
||||||
** a database file to include invocations of the function with parameters
|
** a database file to include invocations of the function with parameters
|
||||||
@ -5957,7 +5957,7 @@ SQLITE_API int sqlite3_reset(sqlite3_stmt *pStmt);
|
|||||||
** [user-defined window functions|available here].
|
** [user-defined window functions|available here].
|
||||||
**
|
**
|
||||||
** ^(If the final parameter to sqlite3_create_function_v2() or
|
** ^(If the final parameter to sqlite3_create_function_v2() or
|
||||||
** sqlite3_create_window_function() is not NULL, then it is destructor for
|
** sqlite3_create_window_function() is not NULL, then it is the destructor for
|
||||||
** the application data pointer. The destructor is invoked when the function
|
** the application data pointer. The destructor is invoked when the function
|
||||||
** is deleted, either by being overloaded or when the database connection
|
** is deleted, either by being overloaded or when the database connection
|
||||||
** closes.)^ ^The destructor is also invoked if the call to
|
** closes.)^ ^The destructor is also invoked if the call to
|
||||||
@ -6357,7 +6357,7 @@ SQLITE_API unsigned int sqlite3_value_subtype(sqlite3_value*);
|
|||||||
** METHOD: sqlite3_value
|
** METHOD: sqlite3_value
|
||||||
**
|
**
|
||||||
** ^The sqlite3_value_dup(V) interface makes a copy of the [sqlite3_value]
|
** ^The sqlite3_value_dup(V) interface makes a copy of the [sqlite3_value]
|
||||||
** object D and returns a pointer to that copy. ^The [sqlite3_value] returned
|
** object V and returns a pointer to that copy. ^The [sqlite3_value] returned
|
||||||
** is a [protected sqlite3_value] object even if the input is not.
|
** is a [protected sqlite3_value] object even if the input is not.
|
||||||
** ^The sqlite3_value_dup(V) interface returns NULL if V is NULL or if a
|
** ^The sqlite3_value_dup(V) interface returns NULL if V is NULL or if a
|
||||||
** memory allocation fails. ^If V is a [pointer value], then the result
|
** memory allocation fails. ^If V is a [pointer value], then the result
|
||||||
@ -6395,7 +6395,7 @@ SQLITE_API void sqlite3_value_free(sqlite3_value*);
|
|||||||
** allocation error occurs.
|
** allocation error occurs.
|
||||||
**
|
**
|
||||||
** ^(The amount of space allocated by sqlite3_aggregate_context(C,N) is
|
** ^(The amount of space allocated by sqlite3_aggregate_context(C,N) is
|
||||||
** determined by the N parameter on first successful call. Changing the
|
** determined by the N parameter on the first successful call. Changing the
|
||||||
** value of N in any subsequent call to sqlite3_aggregate_context() within
|
** value of N in any subsequent call to sqlite3_aggregate_context() within
|
||||||
** the same aggregate function instance will not resize the memory
|
** the same aggregate function instance will not resize the memory
|
||||||
** allocation.)^ Within the xFinal callback, it is customary to set
|
** allocation.)^ Within the xFinal callback, it is customary to set
|
||||||
@ -6557,7 +6557,7 @@ SQLITE_API void sqlite3_set_auxdata(sqlite3_context*, int N, void*, void (*)(voi
|
|||||||
**
|
**
|
||||||
** Security Warning: These interfaces should not be exposed in scripting
|
** Security Warning: These interfaces should not be exposed in scripting
|
||||||
** languages or in other circumstances where it might be possible for an
|
** languages or in other circumstances where it might be possible for an
|
||||||
** an attacker to invoke them. Any agent that can invoke these interfaces
|
** attacker to invoke them. Any agent that can invoke these interfaces
|
||||||
** can probably also take control of the process.
|
** can probably also take control of the process.
|
||||||
**
|
**
|
||||||
** Database connection client data is only available for SQLite
|
** Database connection client data is only available for SQLite
|
||||||
@ -6671,7 +6671,7 @@ typedef void (*sqlite3_destructor_type)(void*);
|
|||||||
** pointed to by the 2nd parameter are taken as the application-defined
|
** pointed to by the 2nd parameter are taken as the application-defined
|
||||||
** function result. If the 3rd parameter is non-negative, then it
|
** function result. If the 3rd parameter is non-negative, then it
|
||||||
** must be the byte offset into the string where the NUL terminator would
|
** must be the byte offset into the string where the NUL terminator would
|
||||||
** appear if the string where NUL terminated. If any NUL characters occur
|
** appear if the string were NUL terminated. If any NUL characters occur
|
||||||
** in the string at a byte offset that is less than the value of the 3rd
|
** in the string at a byte offset that is less than the value of the 3rd
|
||||||
** parameter, then the resulting string will contain embedded NULs and the
|
** parameter, then the resulting string will contain embedded NULs and the
|
||||||
** result of expressions operating on strings with embedded NULs is undefined.
|
** result of expressions operating on strings with embedded NULs is undefined.
|
||||||
@ -6729,7 +6729,7 @@ typedef void (*sqlite3_destructor_type)(void*);
|
|||||||
** string and preferably a string literal. The sqlite3_result_pointer()
|
** string and preferably a string literal. The sqlite3_result_pointer()
|
||||||
** routine is part of the [pointer passing interface] added for SQLite 3.20.0.
|
** routine is part of the [pointer passing interface] added for SQLite 3.20.0.
|
||||||
**
|
**
|
||||||
** If these routines are called from within the different thread
|
** If these routines are called from within a different thread
|
||||||
** than the one containing the application-defined function that received
|
** than the one containing the application-defined function that received
|
||||||
** the [sqlite3_context] pointer, the results are undefined.
|
** the [sqlite3_context] pointer, the results are undefined.
|
||||||
*/
|
*/
|
||||||
@ -7135,7 +7135,7 @@ SQLITE_API sqlite3 *sqlite3_db_handle(sqlite3_stmt*);
|
|||||||
** METHOD: sqlite3
|
** METHOD: sqlite3
|
||||||
**
|
**
|
||||||
** ^The sqlite3_db_name(D,N) interface returns a pointer to the schema name
|
** ^The sqlite3_db_name(D,N) interface returns a pointer to the schema name
|
||||||
** for the N-th database on database connection D, or a NULL pointer of N is
|
** for the N-th database on database connection D, or a NULL pointer if N is
|
||||||
** out of range. An N value of 0 means the main database file. An N of 1 is
|
** out of range. An N value of 0 means the main database file. An N of 1 is
|
||||||
** the "temp" schema. Larger values of N correspond to various ATTACH-ed
|
** the "temp" schema. Larger values of N correspond to various ATTACH-ed
|
||||||
** databases.
|
** databases.
|
||||||
@ -7230,7 +7230,7 @@ SQLITE_API int sqlite3_txn_state(sqlite3*,const char *zSchema);
|
|||||||
** <dd>The SQLITE_TXN_READ state means that the database is currently
|
** <dd>The SQLITE_TXN_READ state means that the database is currently
|
||||||
** in a read transaction. Content has been read from the database file
|
** in a read transaction. Content has been read from the database file
|
||||||
** but nothing in the database file has changed. The transaction state
|
** but nothing in the database file has changed. The transaction state
|
||||||
** will advanced to SQLITE_TXN_WRITE if any changes occur and there are
|
** will be advanced to SQLITE_TXN_WRITE if any changes occur and there are
|
||||||
** no other conflicting concurrent write transactions. The transaction
|
** no other conflicting concurrent write transactions. The transaction
|
||||||
** state will revert to SQLITE_TXN_NONE following a [ROLLBACK] or
|
** state will revert to SQLITE_TXN_NONE following a [ROLLBACK] or
|
||||||
** [COMMIT].</dd>
|
** [COMMIT].</dd>
|
||||||
@ -7239,7 +7239,7 @@ SQLITE_API int sqlite3_txn_state(sqlite3*,const char *zSchema);
|
|||||||
** <dd>The SQLITE_TXN_WRITE state means that the database is currently
|
** <dd>The SQLITE_TXN_WRITE state means that the database is currently
|
||||||
** in a write transaction. Content has been written to the database file
|
** in a write transaction. Content has been written to the database file
|
||||||
** but has not yet committed. The transaction state will change to
|
** but has not yet committed. The transaction state will change to
|
||||||
** to SQLITE_TXN_NONE at the next [ROLLBACK] or [COMMIT].</dd>
|
** SQLITE_TXN_NONE at the next [ROLLBACK] or [COMMIT].</dd>
|
||||||
*/
|
*/
|
||||||
#define SQLITE_TXN_NONE 0
|
#define SQLITE_TXN_NONE 0
|
||||||
#define SQLITE_TXN_READ 1
|
#define SQLITE_TXN_READ 1
|
||||||
@ -7520,7 +7520,7 @@ SQLITE_API int sqlite3_db_release_memory(sqlite3*);
|
|||||||
** CAPI3REF: Impose A Limit On Heap Size
|
** CAPI3REF: Impose A Limit On Heap Size
|
||||||
**
|
**
|
||||||
** These interfaces impose limits on the amount of heap memory that will be
|
** These interfaces impose limits on the amount of heap memory that will be
|
||||||
** by all database connections within a single process.
|
** used by all database connections within a single process.
|
||||||
**
|
**
|
||||||
** ^The sqlite3_soft_heap_limit64() interface sets and/or queries the
|
** ^The sqlite3_soft_heap_limit64() interface sets and/or queries the
|
||||||
** soft limit on the amount of heap memory that may be allocated by SQLite.
|
** soft limit on the amount of heap memory that may be allocated by SQLite.
|
||||||
@ -7578,7 +7578,7 @@ SQLITE_API int sqlite3_db_release_memory(sqlite3*);
|
|||||||
** </ul>)^
|
** </ul>)^
|
||||||
**
|
**
|
||||||
** The circumstances under which SQLite will enforce the heap limits may
|
** The circumstances under which SQLite will enforce the heap limits may
|
||||||
** changes in future releases of SQLite.
|
** change in future releases of SQLite.
|
||||||
*/
|
*/
|
||||||
SQLITE_API sqlite3_int64 sqlite3_soft_heap_limit64(sqlite3_int64 N);
|
SQLITE_API sqlite3_int64 sqlite3_soft_heap_limit64(sqlite3_int64 N);
|
||||||
SQLITE_API sqlite3_int64 sqlite3_hard_heap_limit64(sqlite3_int64 N);
|
SQLITE_API sqlite3_int64 sqlite3_hard_heap_limit64(sqlite3_int64 N);
|
||||||
@ -7693,8 +7693,8 @@ SQLITE_API int sqlite3_table_column_metadata(
|
|||||||
** ^The entry point is zProc.
|
** ^The entry point is zProc.
|
||||||
** ^(zProc may be 0, in which case SQLite will try to come up with an
|
** ^(zProc may be 0, in which case SQLite will try to come up with an
|
||||||
** entry point name on its own. It first tries "sqlite3_extension_init".
|
** entry point name on its own. It first tries "sqlite3_extension_init".
|
||||||
** If that does not work, it constructs a name "sqlite3_X_init" where the
|
** If that does not work, it constructs a name "sqlite3_X_init" where
|
||||||
** X is consists of the lower-case equivalent of all ASCII alphabetic
|
** X consists of the lower-case equivalent of all ASCII alphabetic
|
||||||
** characters in the filename from the last "/" to the first following
|
** characters in the filename from the last "/" to the first following
|
||||||
** "." and omitting any initial "lib".)^
|
** "." and omitting any initial "lib".)^
|
||||||
** ^The sqlite3_load_extension() interface returns
|
** ^The sqlite3_load_extension() interface returns
|
||||||
@ -7765,7 +7765,7 @@ SQLITE_API int sqlite3_enable_load_extension(sqlite3 *db, int onoff);
|
|||||||
** ^(Even though the function prototype shows that xEntryPoint() takes
|
** ^(Even though the function prototype shows that xEntryPoint() takes
|
||||||
** no arguments and returns void, SQLite invokes xEntryPoint() with three
|
** no arguments and returns void, SQLite invokes xEntryPoint() with three
|
||||||
** arguments and expects an integer result as if the signature of the
|
** arguments and expects an integer result as if the signature of the
|
||||||
** entry point where as follows:
|
** entry point were as follows:
|
||||||
**
|
**
|
||||||
** <blockquote><pre>
|
** <blockquote><pre>
|
||||||
** int xEntryPoint(
|
** int xEntryPoint(
|
||||||
@ -7929,7 +7929,7 @@ struct sqlite3_module {
|
|||||||
** virtual table and might not be checked again by the byte code.)^ ^(The
|
** virtual table and might not be checked again by the byte code.)^ ^(The
|
||||||
** aConstraintUsage[].omit flag is an optimization hint. When the omit flag
|
** aConstraintUsage[].omit flag is an optimization hint. When the omit flag
|
||||||
** is left in its default setting of false, the constraint will always be
|
** is left in its default setting of false, the constraint will always be
|
||||||
** checked separately in byte code. If the omit flag is change to true, then
|
** checked separately in byte code. If the omit flag is changed to true, then
|
||||||
** the constraint may or may not be checked in byte code. In other words,
|
** the constraint may or may not be checked in byte code. In other words,
|
||||||
** when the omit flag is true there is no guarantee that the constraint will
|
** when the omit flag is true there is no guarantee that the constraint will
|
||||||
** not be checked again using byte code.)^
|
** not be checked again using byte code.)^
|
||||||
@ -7955,7 +7955,7 @@ struct sqlite3_module {
|
|||||||
** The xBestIndex method may optionally populate the idxFlags field with a
|
** The xBestIndex method may optionally populate the idxFlags field with a
|
||||||
** mask of SQLITE_INDEX_SCAN_* flags. One such flag is
|
** mask of SQLITE_INDEX_SCAN_* flags. One such flag is
|
||||||
** [SQLITE_INDEX_SCAN_HEX], which if set causes the [EXPLAIN QUERY PLAN]
|
** [SQLITE_INDEX_SCAN_HEX], which if set causes the [EXPLAIN QUERY PLAN]
|
||||||
** output to show the idxNum has hex instead of as decimal. Another flag is
|
** output to show the idxNum as hex instead of as decimal. Another flag is
|
||||||
** SQLITE_INDEX_SCAN_UNIQUE, which if set indicates that the query plan will
|
** SQLITE_INDEX_SCAN_UNIQUE, which if set indicates that the query plan will
|
||||||
** return at most one row.
|
** return at most one row.
|
||||||
**
|
**
|
||||||
@ -8096,7 +8096,7 @@ struct sqlite3_index_info {
|
|||||||
** the implementation of the [virtual table module]. ^The fourth
|
** the implementation of the [virtual table module]. ^The fourth
|
||||||
** parameter is an arbitrary client data pointer that is passed through
|
** parameter is an arbitrary client data pointer that is passed through
|
||||||
** into the [xCreate] and [xConnect] methods of the virtual table module
|
** into the [xCreate] and [xConnect] methods of the virtual table module
|
||||||
** when a new virtual table is be being created or reinitialized.
|
** when a new virtual table is being created or reinitialized.
|
||||||
**
|
**
|
||||||
** ^The sqlite3_create_module_v2() interface has a fifth parameter which
|
** ^The sqlite3_create_module_v2() interface has a fifth parameter which
|
||||||
** is a pointer to a destructor for the pClientData. ^SQLite will
|
** is a pointer to a destructor for the pClientData. ^SQLite will
|
||||||
@ -8261,7 +8261,7 @@ typedef struct sqlite3_blob sqlite3_blob;
|
|||||||
** in *ppBlob. Otherwise an [error code] is returned and, unless the error
|
** in *ppBlob. Otherwise an [error code] is returned and, unless the error
|
||||||
** code is SQLITE_MISUSE, *ppBlob is set to NULL.)^ ^This means that, provided
|
** code is SQLITE_MISUSE, *ppBlob is set to NULL.)^ ^This means that, provided
|
||||||
** the API is not misused, it is always safe to call [sqlite3_blob_close()]
|
** the API is not misused, it is always safe to call [sqlite3_blob_close()]
|
||||||
** on *ppBlob after this function it returns.
|
** on *ppBlob after this function returns.
|
||||||
**
|
**
|
||||||
** This function fails with SQLITE_ERROR if any of the following are true:
|
** This function fails with SQLITE_ERROR if any of the following are true:
|
||||||
** <ul>
|
** <ul>
|
||||||
@ -8381,7 +8381,7 @@ SQLITE_API int sqlite3_blob_close(sqlite3_blob *);
|
|||||||
**
|
**
|
||||||
** ^Returns the size in bytes of the BLOB accessible via the
|
** ^Returns the size in bytes of the BLOB accessible via the
|
||||||
** successfully opened [BLOB handle] in its only argument. ^The
|
** successfully opened [BLOB handle] in its only argument. ^The
|
||||||
** incremental blob I/O routines can only read or overwriting existing
|
** incremental blob I/O routines can only read or overwrite existing
|
||||||
** blob content; they cannot change the size of a blob.
|
** blob content; they cannot change the size of a blob.
|
||||||
**
|
**
|
||||||
** This routine only works on a [BLOB handle] which has been created
|
** This routine only works on a [BLOB handle] which has been created
|
||||||
@ -8531,7 +8531,7 @@ SQLITE_API int sqlite3_vfs_unregister(sqlite3_vfs*);
|
|||||||
** ^The sqlite3_mutex_alloc() routine allocates a new
|
** ^The sqlite3_mutex_alloc() routine allocates a new
|
||||||
** mutex and returns a pointer to it. ^The sqlite3_mutex_alloc()
|
** mutex and returns a pointer to it. ^The sqlite3_mutex_alloc()
|
||||||
** routine returns NULL if it is unable to allocate the requested
|
** routine returns NULL if it is unable to allocate the requested
|
||||||
** mutex. The argument to sqlite3_mutex_alloc() must one of these
|
** mutex. The argument to sqlite3_mutex_alloc() must be one of these
|
||||||
** integer constants:
|
** integer constants:
|
||||||
**
|
**
|
||||||
** <ul>
|
** <ul>
|
||||||
@ -8764,7 +8764,7 @@ SQLITE_API int sqlite3_mutex_notheld(sqlite3_mutex*);
|
|||||||
** CAPI3REF: Retrieve the mutex for a database connection
|
** CAPI3REF: Retrieve the mutex for a database connection
|
||||||
** METHOD: sqlite3
|
** METHOD: sqlite3
|
||||||
**
|
**
|
||||||
** ^This interface returns a pointer the [sqlite3_mutex] object that
|
** ^This interface returns a pointer to the [sqlite3_mutex] object that
|
||||||
** serializes access to the [database connection] given in the argument
|
** serializes access to the [database connection] given in the argument
|
||||||
** when the [threading mode] is Serialized.
|
** when the [threading mode] is Serialized.
|
||||||
** ^If the [threading mode] is Single-thread or Multi-thread then this
|
** ^If the [threading mode] is Single-thread or Multi-thread then this
|
||||||
@ -8887,7 +8887,7 @@ SQLITE_API int sqlite3_test_control(int op, ...);
|
|||||||
** CAPI3REF: SQL Keyword Checking
|
** CAPI3REF: SQL Keyword Checking
|
||||||
**
|
**
|
||||||
** These routines provide access to the set of SQL language keywords
|
** These routines provide access to the set of SQL language keywords
|
||||||
** recognized by SQLite. Applications can uses these routines to determine
|
** recognized by SQLite. Applications can use these routines to determine
|
||||||
** whether or not a specific identifier needs to be escaped (for example,
|
** whether or not a specific identifier needs to be escaped (for example,
|
||||||
** by enclosing in double-quotes) so as not to confuse the parser.
|
** by enclosing in double-quotes) so as not to confuse the parser.
|
||||||
**
|
**
|
||||||
@ -9055,7 +9055,7 @@ SQLITE_API void sqlite3_str_reset(sqlite3_str*);
|
|||||||
** content of the dynamic string under construction in X. The value
|
** content of the dynamic string under construction in X. The value
|
||||||
** returned by [sqlite3_str_value(X)] is managed by the sqlite3_str object X
|
** returned by [sqlite3_str_value(X)] is managed by the sqlite3_str object X
|
||||||
** and might be freed or altered by any subsequent method on the same
|
** and might be freed or altered by any subsequent method on the same
|
||||||
** [sqlite3_str] object. Applications must not used the pointer returned
|
** [sqlite3_str] object. Applications must not use the pointer returned by
|
||||||
** [sqlite3_str_value(X)] after any subsequent method call on the same
|
** [sqlite3_str_value(X)] after any subsequent method call on the same
|
||||||
** object. ^Applications may change the content of the string returned
|
** object. ^Applications may change the content of the string returned
|
||||||
** by [sqlite3_str_value(X)] as long as they do not write into any bytes
|
** by [sqlite3_str_value(X)] as long as they do not write into any bytes
|
||||||
@ -9141,7 +9141,7 @@ SQLITE_API int sqlite3_status64(
|
|||||||
** allocation which could not be satisfied by the [SQLITE_CONFIG_PAGECACHE]
|
** allocation which could not be satisfied by the [SQLITE_CONFIG_PAGECACHE]
|
||||||
** buffer and where forced to overflow to [sqlite3_malloc()]. The
|
** buffer and where forced to overflow to [sqlite3_malloc()]. The
|
||||||
** returned value includes allocations that overflowed because they
|
** returned value includes allocations that overflowed because they
|
||||||
** where too large (they were larger than the "sz" parameter to
|
** were too large (they were larger than the "sz" parameter to
|
||||||
** [SQLITE_CONFIG_PAGECACHE]) and allocations that overflowed because
|
** [SQLITE_CONFIG_PAGECACHE]) and allocations that overflowed because
|
||||||
** no space was left in the page cache.</dd>)^
|
** no space was left in the page cache.</dd>)^
|
||||||
**
|
**
|
||||||
@ -9225,28 +9225,29 @@ SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int r
|
|||||||
** [[SQLITE_DBSTATUS_LOOKASIDE_HIT]] ^(<dt>SQLITE_DBSTATUS_LOOKASIDE_HIT</dt>
|
** [[SQLITE_DBSTATUS_LOOKASIDE_HIT]] ^(<dt>SQLITE_DBSTATUS_LOOKASIDE_HIT</dt>
|
||||||
** <dd>This parameter returns the number of malloc attempts that were
|
** <dd>This parameter returns the number of malloc attempts that were
|
||||||
** satisfied using lookaside memory. Only the high-water value is meaningful;
|
** satisfied using lookaside memory. Only the high-water value is meaningful;
|
||||||
** the current value is always zero.)^
|
** the current value is always zero.</dd>)^
|
||||||
**
|
**
|
||||||
** [[SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE]]
|
** [[SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE]]
|
||||||
** ^(<dt>SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE</dt>
|
** ^(<dt>SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE</dt>
|
||||||
** <dd>This parameter returns the number malloc attempts that might have
|
** <dd>This parameter returns the number of malloc attempts that might have
|
||||||
** been satisfied using lookaside memory but failed due to the amount of
|
** been satisfied using lookaside memory but failed due to the amount of
|
||||||
** memory requested being larger than the lookaside slot size.
|
** memory requested being larger than the lookaside slot size.
|
||||||
** Only the high-water value is meaningful;
|
** Only the high-water value is meaningful;
|
||||||
** the current value is always zero.)^
|
** the current value is always zero.</dd>)^
|
||||||
**
|
**
|
||||||
** [[SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL]]
|
** [[SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL]]
|
||||||
** ^(<dt>SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL</dt>
|
** ^(<dt>SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL</dt>
|
||||||
** <dd>This parameter returns the number malloc attempts that might have
|
** <dd>This parameter returns the number of malloc attempts that might have
|
||||||
** been satisfied using lookaside memory but failed due to all lookaside
|
** been satisfied using lookaside memory but failed due to all lookaside
|
||||||
** memory already being in use.
|
** memory already being in use.
|
||||||
** Only the high-water value is meaningful;
|
** Only the high-water value is meaningful;
|
||||||
** the current value is always zero.)^
|
** the current value is always zero.</dd>)^
|
||||||
**
|
**
|
||||||
** [[SQLITE_DBSTATUS_CACHE_USED]] ^(<dt>SQLITE_DBSTATUS_CACHE_USED</dt>
|
** [[SQLITE_DBSTATUS_CACHE_USED]] ^(<dt>SQLITE_DBSTATUS_CACHE_USED</dt>
|
||||||
** <dd>This parameter returns the approximate number of bytes of heap
|
** <dd>This parameter returns the approximate number of bytes of heap
|
||||||
** memory used by all pager caches associated with the database connection.)^
|
** memory used by all pager caches associated with the database connection.)^
|
||||||
** ^The highwater mark associated with SQLITE_DBSTATUS_CACHE_USED is always 0.
|
** ^The highwater mark associated with SQLITE_DBSTATUS_CACHE_USED is always 0.
|
||||||
|
** </dd>
|
||||||
**
|
**
|
||||||
** [[SQLITE_DBSTATUS_CACHE_USED_SHARED]]
|
** [[SQLITE_DBSTATUS_CACHE_USED_SHARED]]
|
||||||
** ^(<dt>SQLITE_DBSTATUS_CACHE_USED_SHARED</dt>
|
** ^(<dt>SQLITE_DBSTATUS_CACHE_USED_SHARED</dt>
|
||||||
@ -9255,10 +9256,10 @@ SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int r
|
|||||||
** memory used by that pager cache is divided evenly between the attached
|
** memory used by that pager cache is divided evenly between the attached
|
||||||
** connections.)^ In other words, if none of the pager caches associated
|
** connections.)^ In other words, if none of the pager caches associated
|
||||||
** with the database connection are shared, this request returns the same
|
** with the database connection are shared, this request returns the same
|
||||||
** value as DBSTATUS_CACHE_USED. Or, if one or more or the pager caches are
|
** value as DBSTATUS_CACHE_USED. Or, if one or more of the pager caches are
|
||||||
** shared, the value returned by this call will be smaller than that returned
|
** shared, the value returned by this call will be smaller than that returned
|
||||||
** by DBSTATUS_CACHE_USED. ^The highwater mark associated with
|
** by DBSTATUS_CACHE_USED. ^The highwater mark associated with
|
||||||
** SQLITE_DBSTATUS_CACHE_USED_SHARED is always 0.
|
** SQLITE_DBSTATUS_CACHE_USED_SHARED is always 0.</dd>
|
||||||
**
|
**
|
||||||
** [[SQLITE_DBSTATUS_SCHEMA_USED]] ^(<dt>SQLITE_DBSTATUS_SCHEMA_USED</dt>
|
** [[SQLITE_DBSTATUS_SCHEMA_USED]] ^(<dt>SQLITE_DBSTATUS_SCHEMA_USED</dt>
|
||||||
** <dd>This parameter returns the approximate number of bytes of heap
|
** <dd>This parameter returns the approximate number of bytes of heap
|
||||||
@ -9268,6 +9269,7 @@ SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int r
|
|||||||
** schema memory is shared with other database connections due to
|
** schema memory is shared with other database connections due to
|
||||||
** [shared cache mode] being enabled.
|
** [shared cache mode] being enabled.
|
||||||
** ^The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED is always 0.
|
** ^The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED is always 0.
|
||||||
|
** </dd>
|
||||||
**
|
**
|
||||||
** [[SQLITE_DBSTATUS_STMT_USED]] ^(<dt>SQLITE_DBSTATUS_STMT_USED</dt>
|
** [[SQLITE_DBSTATUS_STMT_USED]] ^(<dt>SQLITE_DBSTATUS_STMT_USED</dt>
|
||||||
** <dd>This parameter returns the approximate number of bytes of heap
|
** <dd>This parameter returns the approximate number of bytes of heap
|
||||||
@ -9304,7 +9306,7 @@ SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int r
|
|||||||
** been written to disk in the middle of a transaction due to the page
|
** been written to disk in the middle of a transaction due to the page
|
||||||
** cache overflowing. Transactions are more efficient if they are written
|
** cache overflowing. Transactions are more efficient if they are written
|
||||||
** to disk all at once. When pages spill mid-transaction, that introduces
|
** to disk all at once. When pages spill mid-transaction, that introduces
|
||||||
** additional overhead. This parameter can be used help identify
|
** additional overhead. This parameter can be used to help identify
|
||||||
** inefficiencies that can be resolved by increasing the cache size.
|
** inefficiencies that can be resolved by increasing the cache size.
|
||||||
** </dd>
|
** </dd>
|
||||||
**
|
**
|
||||||
@ -9784,7 +9786,7 @@ typedef struct sqlite3_backup sqlite3_backup;
|
|||||||
** external process or via a database connection other than the one being
|
** external process or via a database connection other than the one being
|
||||||
** used by the backup operation, then the backup will be automatically
|
** used by the backup operation, then the backup will be automatically
|
||||||
** restarted by the next call to sqlite3_backup_step(). ^If the source
|
** restarted by the next call to sqlite3_backup_step(). ^If the source
|
||||||
** database is modified by the using the same database connection as is used
|
** database is modified by using the same database connection as is used
|
||||||
** by the backup operation, then the backup database is automatically
|
** by the backup operation, then the backup database is automatically
|
||||||
** updated at the same time.
|
** updated at the same time.
|
||||||
**
|
**
|
||||||
@ -9801,7 +9803,7 @@ typedef struct sqlite3_backup sqlite3_backup;
|
|||||||
** and may not be used following a call to sqlite3_backup_finish().
|
** and may not be used following a call to sqlite3_backup_finish().
|
||||||
**
|
**
|
||||||
** ^The value returned by sqlite3_backup_finish is [SQLITE_OK] if no
|
** ^The value returned by sqlite3_backup_finish is [SQLITE_OK] if no
|
||||||
** sqlite3_backup_step() errors occurred, regardless or whether or not
|
** sqlite3_backup_step() errors occurred, regardless of whether or not
|
||||||
** sqlite3_backup_step() completed.
|
** sqlite3_backup_step() completed.
|
||||||
** ^If an out-of-memory condition or IO error occurred during any prior
|
** ^If an out-of-memory condition or IO error occurred during any prior
|
||||||
** sqlite3_backup_step() call on the same [sqlite3_backup] object, then
|
** sqlite3_backup_step() call on the same [sqlite3_backup] object, then
|
||||||
@ -10871,7 +10873,7 @@ SQLITE_API void sqlite3_stmt_scanstatus_reset(sqlite3_stmt*);
|
|||||||
** METHOD: sqlite3
|
** METHOD: sqlite3
|
||||||
**
|
**
|
||||||
** ^If a write-transaction is open on [database connection] D when the
|
** ^If a write-transaction is open on [database connection] D when the
|
||||||
** [sqlite3_db_cacheflush(D)] interface invoked, any dirty
|
** [sqlite3_db_cacheflush(D)] interface is invoked, any dirty
|
||||||
** pages in the pager-cache that are not currently in use are written out
|
** pages in the pager-cache that are not currently in use are written out
|
||||||
** to disk. A dirty page may be in use if a database cursor created by an
|
** to disk. A dirty page may be in use if a database cursor created by an
|
||||||
** active SQL statement is reading from it, or if it is page 1 of a database
|
** active SQL statement is reading from it, or if it is page 1 of a database
|
||||||
@ -15442,8 +15444,8 @@ typedef INT16_TYPE LogEst;
|
|||||||
** assuming n is a signed integer type. UMXV(n) is similar for unsigned
|
** assuming n is a signed integer type. UMXV(n) is similar for unsigned
|
||||||
** integer types.
|
** integer types.
|
||||||
*/
|
*/
|
||||||
#define SMXV(n) ((((i64)1)<<(sizeof(n)-1))-1)
|
#define SMXV(n) ((((i64)1)<<(sizeof(n)*8-1))-1)
|
||||||
#define UMXV(n) ((((i64)1)<<(sizeof(n)))-1)
|
#define UMXV(n) ((((i64)1)<<(sizeof(n)*8))-1)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Round up a number to the next larger multiple of 8. This is used
|
** Round up a number to the next larger multiple of 8. This is used
|
||||||
@ -19254,7 +19256,7 @@ struct AggInfo {
|
|||||||
** from source tables rather than from accumulators */
|
** from source tables rather than from accumulators */
|
||||||
u8 useSortingIdx; /* In direct mode, reference the sorting index rather
|
u8 useSortingIdx; /* In direct mode, reference the sorting index rather
|
||||||
** than the source table */
|
** than the source table */
|
||||||
u16 nSortingColumn; /* Number of columns in the sorting index */
|
u32 nSortingColumn; /* Number of columns in the sorting index */
|
||||||
int sortingIdx; /* Cursor number of the sorting index */
|
int sortingIdx; /* Cursor number of the sorting index */
|
||||||
int sortingIdxPTab; /* Cursor number of pseudo-table */
|
int sortingIdxPTab; /* Cursor number of pseudo-table */
|
||||||
int iFirstReg; /* First register in range for aCol[] and aFunc[] */
|
int iFirstReg; /* First register in range for aCol[] and aFunc[] */
|
||||||
@ -19263,8 +19265,8 @@ struct AggInfo {
|
|||||||
Table *pTab; /* Source table */
|
Table *pTab; /* Source table */
|
||||||
Expr *pCExpr; /* The original expression */
|
Expr *pCExpr; /* The original expression */
|
||||||
int iTable; /* Cursor number of the source table */
|
int iTable; /* Cursor number of the source table */
|
||||||
i16 iColumn; /* Column number within the source table */
|
int iColumn; /* Column number within the source table */
|
||||||
i16 iSorterColumn; /* Column number in the sorting index */
|
int iSorterColumn; /* Column number in the sorting index */
|
||||||
} *aCol;
|
} *aCol;
|
||||||
int nColumn; /* Number of used entries in aCol[] */
|
int nColumn; /* Number of used entries in aCol[] */
|
||||||
int nAccumulator; /* Number of columns that show through to the output.
|
int nAccumulator; /* Number of columns that show through to the output.
|
||||||
@ -54966,7 +54968,9 @@ bitvec_set_rehash:
|
|||||||
}else{
|
}else{
|
||||||
memcpy(aiValues, p->u.aHash, sizeof(p->u.aHash));
|
memcpy(aiValues, p->u.aHash, sizeof(p->u.aHash));
|
||||||
memset(p->u.apSub, 0, sizeof(p->u.apSub));
|
memset(p->u.apSub, 0, sizeof(p->u.apSub));
|
||||||
p->iDivisor = (p->iSize + BITVEC_NPTR - 1)/BITVEC_NPTR;
|
p->iDivisor = p->iSize/BITVEC_NPTR;
|
||||||
|
if( (p->iSize%BITVEC_NPTR)!=0 ) p->iDivisor++;
|
||||||
|
if( p->iDivisor<BITVEC_NBIT ) p->iDivisor = BITVEC_NBIT;
|
||||||
rc = sqlite3BitvecSet(p, i);
|
rc = sqlite3BitvecSet(p, i);
|
||||||
for(j=0; j<BITVEC_NINT; j++){
|
for(j=0; j<BITVEC_NINT; j++){
|
||||||
if( aiValues[j] ) rc |= sqlite3BitvecSet(p, aiValues[j]);
|
if( aiValues[j] ) rc |= sqlite3BitvecSet(p, aiValues[j]);
|
||||||
@ -69654,6 +69658,7 @@ SQLITE_PRIVATE int sqlite3WalUndo(Wal *pWal, int (*xUndo)(void *, Pgno), void *p
|
|||||||
if( iMax!=pWal->hdr.mxFrame ) walCleanupHash(pWal);
|
if( iMax!=pWal->hdr.mxFrame ) walCleanupHash(pWal);
|
||||||
}
|
}
|
||||||
SEH_EXCEPT( rc = SQLITE_IOERR_IN_PAGE; )
|
SEH_EXCEPT( rc = SQLITE_IOERR_IN_PAGE; )
|
||||||
|
pWal->iReCksum = 0;
|
||||||
}
|
}
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
@ -69701,6 +69706,9 @@ SQLITE_PRIVATE int sqlite3WalSavepointUndo(Wal *pWal, u32 *aWalData){
|
|||||||
walCleanupHash(pWal);
|
walCleanupHash(pWal);
|
||||||
}
|
}
|
||||||
SEH_EXCEPT( rc = SQLITE_IOERR_IN_PAGE; )
|
SEH_EXCEPT( rc = SQLITE_IOERR_IN_PAGE; )
|
||||||
|
if( pWal->iReCksum>pWal->hdr.mxFrame ){
|
||||||
|
pWal->iReCksum = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
@ -117346,7 +117354,9 @@ static void findOrCreateAggInfoColumn(
|
|||||||
){
|
){
|
||||||
struct AggInfo_col *pCol;
|
struct AggInfo_col *pCol;
|
||||||
int k;
|
int k;
|
||||||
|
int mxTerm = pParse->db->aLimit[SQLITE_LIMIT_COLUMN];
|
||||||
|
|
||||||
|
assert( mxTerm <= SMXV(i16) );
|
||||||
assert( pAggInfo->iFirstReg==0 );
|
assert( pAggInfo->iFirstReg==0 );
|
||||||
pCol = pAggInfo->aCol;
|
pCol = pAggInfo->aCol;
|
||||||
for(k=0; k<pAggInfo->nColumn; k++, pCol++){
|
for(k=0; k<pAggInfo->nColumn; k++, pCol++){
|
||||||
@ -117364,6 +117374,10 @@ static void findOrCreateAggInfoColumn(
|
|||||||
assert( pParse->db->mallocFailed );
|
assert( pParse->db->mallocFailed );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if( k>mxTerm ){
|
||||||
|
sqlite3ErrorMsg(pParse, "more than %d aggregate terms", mxTerm);
|
||||||
|
k = mxTerm;
|
||||||
|
}
|
||||||
pCol = &pAggInfo->aCol[k];
|
pCol = &pAggInfo->aCol[k];
|
||||||
assert( ExprUseYTab(pExpr) );
|
assert( ExprUseYTab(pExpr) );
|
||||||
pCol->pTab = pExpr->y.pTab;
|
pCol->pTab = pExpr->y.pTab;
|
||||||
@ -117397,6 +117411,7 @@ fix_up_expr:
|
|||||||
if( pExpr->op==TK_COLUMN ){
|
if( pExpr->op==TK_COLUMN ){
|
||||||
pExpr->op = TK_AGG_COLUMN;
|
pExpr->op = TK_AGG_COLUMN;
|
||||||
}
|
}
|
||||||
|
assert( k <= SMXV(pExpr->iAgg) );
|
||||||
pExpr->iAgg = (i16)k;
|
pExpr->iAgg = (i16)k;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117481,13 +117496,19 @@ static int analyzeAggregate(Walker *pWalker, Expr *pExpr){
|
|||||||
** function that is already in the pAggInfo structure
|
** function that is already in the pAggInfo structure
|
||||||
*/
|
*/
|
||||||
struct AggInfo_func *pItem = pAggInfo->aFunc;
|
struct AggInfo_func *pItem = pAggInfo->aFunc;
|
||||||
|
int mxTerm = pParse->db->aLimit[SQLITE_LIMIT_COLUMN];
|
||||||
|
assert( mxTerm <= SMXV(i16) );
|
||||||
for(i=0; i<pAggInfo->nFunc; i++, pItem++){
|
for(i=0; i<pAggInfo->nFunc; i++, pItem++){
|
||||||
if( NEVER(pItem->pFExpr==pExpr) ) break;
|
if( NEVER(pItem->pFExpr==pExpr) ) break;
|
||||||
if( sqlite3ExprCompare(0, pItem->pFExpr, pExpr, -1)==0 ){
|
if( sqlite3ExprCompare(0, pItem->pFExpr, pExpr, -1)==0 ){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if( i>=pAggInfo->nFunc ){
|
if( i>mxTerm ){
|
||||||
|
sqlite3ErrorMsg(pParse, "more than %d aggregate terms", mxTerm);
|
||||||
|
i = mxTerm;
|
||||||
|
assert( i<pAggInfo->nFunc );
|
||||||
|
}else if( i>=pAggInfo->nFunc ){
|
||||||
/* pExpr is original. Make a new entry in pAggInfo->aFunc[]
|
/* pExpr is original. Make a new entry in pAggInfo->aFunc[]
|
||||||
*/
|
*/
|
||||||
u8 enc = ENC(pParse->db);
|
u8 enc = ENC(pParse->db);
|
||||||
@ -117541,6 +117562,7 @@ static int analyzeAggregate(Walker *pWalker, Expr *pExpr){
|
|||||||
*/
|
*/
|
||||||
assert( !ExprHasProperty(pExpr, EP_TokenOnly|EP_Reduced) );
|
assert( !ExprHasProperty(pExpr, EP_TokenOnly|EP_Reduced) );
|
||||||
ExprSetVVAProperty(pExpr, EP_NoReduce);
|
ExprSetVVAProperty(pExpr, EP_NoReduce);
|
||||||
|
assert( i <= SMXV(pExpr->iAgg) );
|
||||||
pExpr->iAgg = (i16)i;
|
pExpr->iAgg = (i16)i;
|
||||||
pExpr->pAggInfo = pAggInfo;
|
pExpr->pAggInfo = pAggInfo;
|
||||||
return WRC_Prune;
|
return WRC_Prune;
|
||||||
@ -131999,7 +132021,7 @@ static void concatFuncCore(
|
|||||||
int nSep,
|
int nSep,
|
||||||
const char *zSep
|
const char *zSep
|
||||||
){
|
){
|
||||||
i64 j, k, n = 0;
|
i64 j, n = 0;
|
||||||
int i;
|
int i;
|
||||||
char *z;
|
char *z;
|
||||||
for(i=0; i<argc; i++){
|
for(i=0; i<argc; i++){
|
||||||
@ -132013,8 +132035,8 @@ static void concatFuncCore(
|
|||||||
}
|
}
|
||||||
j = 0;
|
j = 0;
|
||||||
for(i=0; i<argc; i++){
|
for(i=0; i<argc; i++){
|
||||||
k = sqlite3_value_bytes(argv[i]);
|
if( sqlite3_value_type(argv[i])!=SQLITE_NULL ){
|
||||||
if( k>0 ){
|
int k = sqlite3_value_bytes(argv[i]);
|
||||||
const char *v = (const char*)sqlite3_value_text(argv[i]);
|
const char *v = (const char*)sqlite3_value_text(argv[i]);
|
||||||
if( v!=0 ){
|
if( v!=0 ){
|
||||||
if( j>0 && nSep>0 ){
|
if( j>0 && nSep>0 ){
|
||||||
@ -163433,30 +163455,42 @@ static void exprAnalyzeOrTerm(
|
|||||||
** 1. The SQLITE_Transitive optimization must be enabled
|
** 1. The SQLITE_Transitive optimization must be enabled
|
||||||
** 2. Must be either an == or an IS operator
|
** 2. Must be either an == or an IS operator
|
||||||
** 3. Not originating in the ON clause of an OUTER JOIN
|
** 3. Not originating in the ON clause of an OUTER JOIN
|
||||||
** 4. The affinities of A and B must be compatible
|
** 4. The operator is not IS or else the query does not contain RIGHT JOIN
|
||||||
** 5a. Both operands use the same collating sequence OR
|
** 5. The affinities of A and B must be compatible
|
||||||
** 5b. The overall collating sequence is BINARY
|
** 6a. Both operands use the same collating sequence OR
|
||||||
|
** 6b. The overall collating sequence is BINARY
|
||||||
** If this routine returns TRUE, that means that the RHS can be substituted
|
** If this routine returns TRUE, that means that the RHS can be substituted
|
||||||
** for the LHS anyplace else in the WHERE clause where the LHS column occurs.
|
** for the LHS anyplace else in the WHERE clause where the LHS column occurs.
|
||||||
** This is an optimization. No harm comes from returning 0. But if 1 is
|
** This is an optimization. No harm comes from returning 0. But if 1 is
|
||||||
** returned when it should not be, then incorrect answers might result.
|
** returned when it should not be, then incorrect answers might result.
|
||||||
*/
|
*/
|
||||||
static int termIsEquivalence(Parse *pParse, Expr *pExpr){
|
static int termIsEquivalence(Parse *pParse, Expr *pExpr, SrcList *pSrc){
|
||||||
char aff1, aff2;
|
char aff1, aff2;
|
||||||
CollSeq *pColl;
|
CollSeq *pColl;
|
||||||
if( !OptimizationEnabled(pParse->db, SQLITE_Transitive) ) return 0;
|
if( !OptimizationEnabled(pParse->db, SQLITE_Transitive) ) return 0; /* (1) */
|
||||||
if( pExpr->op!=TK_EQ && pExpr->op!=TK_IS ) return 0;
|
if( pExpr->op!=TK_EQ && pExpr->op!=TK_IS ) return 0; /* (2) */
|
||||||
if( ExprHasProperty(pExpr, EP_OuterON) ) return 0;
|
if( ExprHasProperty(pExpr, EP_OuterON) ) return 0; /* (3) */
|
||||||
|
assert( pSrc!=0 );
|
||||||
|
if( pExpr->op==TK_IS
|
||||||
|
&& pSrc->nSrc
|
||||||
|
&& (pSrc->a[0].fg.jointype & JT_LTORJ)!=0
|
||||||
|
){
|
||||||
|
return 0; /* (4) */
|
||||||
|
}
|
||||||
aff1 = sqlite3ExprAffinity(pExpr->pLeft);
|
aff1 = sqlite3ExprAffinity(pExpr->pLeft);
|
||||||
aff2 = sqlite3ExprAffinity(pExpr->pRight);
|
aff2 = sqlite3ExprAffinity(pExpr->pRight);
|
||||||
if( aff1!=aff2
|
if( aff1!=aff2
|
||||||
&& (!sqlite3IsNumericAffinity(aff1) || !sqlite3IsNumericAffinity(aff2))
|
&& (!sqlite3IsNumericAffinity(aff1) || !sqlite3IsNumericAffinity(aff2))
|
||||||
){
|
){
|
||||||
return 0;
|
return 0; /* (5) */
|
||||||
}
|
}
|
||||||
pColl = sqlite3ExprCompareCollSeq(pParse, pExpr);
|
pColl = sqlite3ExprCompareCollSeq(pParse, pExpr);
|
||||||
if( sqlite3IsBinary(pColl) ) return 1;
|
if( !sqlite3IsBinary(pColl)
|
||||||
return sqlite3ExprCollSeqMatch(pParse, pExpr->pLeft, pExpr->pRight);
|
&& !sqlite3ExprCollSeqMatch(pParse, pExpr->pLeft, pExpr->pRight)
|
||||||
|
){
|
||||||
|
return 0; /* (6) */
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -163721,8 +163755,8 @@ static void exprAnalyze(
|
|||||||
if( op==TK_IS ) pNew->wtFlags |= TERM_IS;
|
if( op==TK_IS ) pNew->wtFlags |= TERM_IS;
|
||||||
pTerm = &pWC->a[idxTerm];
|
pTerm = &pWC->a[idxTerm];
|
||||||
pTerm->wtFlags |= TERM_COPIED;
|
pTerm->wtFlags |= TERM_COPIED;
|
||||||
|
assert( pWInfo->pTabList!=0 );
|
||||||
if( termIsEquivalence(pParse, pDup) ){
|
if( termIsEquivalence(pParse, pDup, pWInfo->pTabList) ){
|
||||||
pTerm->eOperator |= WO_EQUIV;
|
pTerm->eOperator |= WO_EQUIV;
|
||||||
eExtraOp = WO_EQUIV;
|
eExtraOp = WO_EQUIV;
|
||||||
}
|
}
|
||||||
@ -184424,6 +184458,7 @@ SQLITE_API int sqlite3_setlk_timeout(sqlite3 *db, int ms, int flags){
|
|||||||
#endif
|
#endif
|
||||||
if( ms<-1 ) return SQLITE_RANGE;
|
if( ms<-1 ) return SQLITE_RANGE;
|
||||||
#ifdef SQLITE_ENABLE_SETLK_TIMEOUT
|
#ifdef SQLITE_ENABLE_SETLK_TIMEOUT
|
||||||
|
sqlite3_mutex_enter(db->mutex);
|
||||||
db->setlkTimeout = ms;
|
db->setlkTimeout = ms;
|
||||||
db->setlkFlags = flags;
|
db->setlkFlags = flags;
|
||||||
sqlite3BtreeEnterAll(db);
|
sqlite3BtreeEnterAll(db);
|
||||||
@ -184435,6 +184470,7 @@ SQLITE_API int sqlite3_setlk_timeout(sqlite3 *db, int ms, int flags){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
sqlite3BtreeLeaveAll(db);
|
sqlite3BtreeLeaveAll(db);
|
||||||
|
sqlite3_mutex_leave(db->mutex);
|
||||||
#endif
|
#endif
|
||||||
#if !defined(SQLITE_ENABLE_API_ARMOR) && !defined(SQLITE_ENABLE_SETLK_TIMEOUT)
|
#if !defined(SQLITE_ENABLE_API_ARMOR) && !defined(SQLITE_ENABLE_SETLK_TIMEOUT)
|
||||||
UNUSED_PARAMETER(db);
|
UNUSED_PARAMETER(db);
|
||||||
@ -257230,7 +257266,7 @@ static void fts5SourceIdFunc(
|
|||||||
){
|
){
|
||||||
assert( nArg==0 );
|
assert( nArg==0 );
|
||||||
UNUSED_PARAM2(nArg, apUnused);
|
UNUSED_PARAM2(nArg, apUnused);
|
||||||
sqlite3_result_text(pCtx, "fts5: 2025-06-06 14:52:32 b77dc5e0f596d2140d9ac682b2893ff65d3a4140aa86067a3efebe29dc914c95", -1, SQLITE_TRANSIENT);
|
sqlite3_result_text(pCtx, "fts5: 2025-06-28 14:00:48 2af157d77fb1304a74176eaee7fbc7c7e932d946bf25325e9c26c91db19e3079", -1, SQLITE_TRANSIENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -258045,6 +258081,7 @@ static int fts5StorageDeleteFromIndex(
|
|||||||
for(iCol=1; rc==SQLITE_OK && iCol<=pConfig->nCol; iCol++){
|
for(iCol=1; rc==SQLITE_OK && iCol<=pConfig->nCol; iCol++){
|
||||||
if( pConfig->abUnindexed[iCol-1]==0 ){
|
if( pConfig->abUnindexed[iCol-1]==0 ){
|
||||||
sqlite3_value *pVal = 0;
|
sqlite3_value *pVal = 0;
|
||||||
|
sqlite3_value *pFree = 0;
|
||||||
const char *pText = 0;
|
const char *pText = 0;
|
||||||
int nText = 0;
|
int nText = 0;
|
||||||
const char *pLoc = 0;
|
const char *pLoc = 0;
|
||||||
@ -258061,11 +258098,22 @@ static int fts5StorageDeleteFromIndex(
|
|||||||
if( pConfig->bLocale && sqlite3Fts5IsLocaleValue(pConfig, pVal) ){
|
if( pConfig->bLocale && sqlite3Fts5IsLocaleValue(pConfig, pVal) ){
|
||||||
rc = sqlite3Fts5DecodeLocaleValue(pVal, &pText, &nText, &pLoc, &nLoc);
|
rc = sqlite3Fts5DecodeLocaleValue(pVal, &pText, &nText, &pLoc, &nLoc);
|
||||||
}else{
|
}else{
|
||||||
pText = (const char*)sqlite3_value_text(pVal);
|
if( sqlite3_value_type(pVal)!=SQLITE_TEXT ){
|
||||||
nText = sqlite3_value_bytes(pVal);
|
/* Make a copy of the value to work with. This is because the call
|
||||||
if( pConfig->bLocale && pSeek ){
|
** to sqlite3_value_text() below forces the type of the value to
|
||||||
pLoc = (const char*)sqlite3_column_text(pSeek, iCol + pConfig->nCol);
|
** SQLITE_TEXT, and we may need to use it again later. */
|
||||||
nLoc = sqlite3_column_bytes(pSeek, iCol + pConfig->nCol);
|
pFree = pVal = sqlite3_value_dup(pVal);
|
||||||
|
if( pVal==0 ){
|
||||||
|
rc = SQLITE_NOMEM;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if( rc==SQLITE_OK ){
|
||||||
|
pText = (const char*)sqlite3_value_text(pVal);
|
||||||
|
nText = sqlite3_value_bytes(pVal);
|
||||||
|
if( pConfig->bLocale && pSeek ){
|
||||||
|
pLoc = (const char*)sqlite3_column_text(pSeek, iCol+pConfig->nCol);
|
||||||
|
nLoc = sqlite3_column_bytes(pSeek, iCol + pConfig->nCol);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -258081,6 +258129,7 @@ static int fts5StorageDeleteFromIndex(
|
|||||||
}
|
}
|
||||||
sqlite3Fts5ClearLocale(pConfig);
|
sqlite3Fts5ClearLocale(pConfig);
|
||||||
}
|
}
|
||||||
|
sqlite3_value_free(pFree);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if( rc==SQLITE_OK && p->nTotalRow<1 ){
|
if( rc==SQLITE_OK && p->nTotalRow<1 ){
|
||||||
|
92
deps/sqlite/sqlite3.h
vendored
92
deps/sqlite/sqlite3.h
vendored
@ -146,9 +146,9 @@ extern "C" {
|
|||||||
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
|
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
|
||||||
** [sqlite_version()] and [sqlite_source_id()].
|
** [sqlite_version()] and [sqlite_source_id()].
|
||||||
*/
|
*/
|
||||||
#define SQLITE_VERSION "3.50.1"
|
#define SQLITE_VERSION "3.50.2"
|
||||||
#define SQLITE_VERSION_NUMBER 3050001
|
#define SQLITE_VERSION_NUMBER 3050002
|
||||||
#define SQLITE_SOURCE_ID "2025-06-06 14:52:32 b77dc5e0f596d2140d9ac682b2893ff65d3a4140aa86067a3efebe29dc914c95"
|
#define SQLITE_SOURCE_ID "2025-06-28 14:00:48 2af157d77fb1304a74176eaee7fbc7c7e932d946bf25325e9c26c91db19e3079"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** CAPI3REF: Run-Time Library Version Numbers
|
** CAPI3REF: Run-Time Library Version Numbers
|
||||||
@ -4079,7 +4079,7 @@ SQLITE_API sqlite3_file *sqlite3_database_file_object(const char*);
|
|||||||
**
|
**
|
||||||
** The sqlite3_create_filename(D,J,W,N,P) allocates memory to hold a version of
|
** The sqlite3_create_filename(D,J,W,N,P) allocates memory to hold a version of
|
||||||
** database filename D with corresponding journal file J and WAL file W and
|
** database filename D with corresponding journal file J and WAL file W and
|
||||||
** with N URI parameters key/values pairs in the array P. The result from
|
** an array P of N URI Key/Value pairs. The result from
|
||||||
** sqlite3_create_filename(D,J,W,N,P) is a pointer to a database filename that
|
** sqlite3_create_filename(D,J,W,N,P) is a pointer to a database filename that
|
||||||
** is safe to pass to routines like:
|
** is safe to pass to routines like:
|
||||||
** <ul>
|
** <ul>
|
||||||
@ -4760,7 +4760,7 @@ typedef struct sqlite3_context sqlite3_context;
|
|||||||
** METHOD: sqlite3_stmt
|
** METHOD: sqlite3_stmt
|
||||||
**
|
**
|
||||||
** ^(In the SQL statement text input to [sqlite3_prepare_v2()] and its variants,
|
** ^(In the SQL statement text input to [sqlite3_prepare_v2()] and its variants,
|
||||||
** literals may be replaced by a [parameter] that matches one of following
|
** literals may be replaced by a [parameter] that matches one of the following
|
||||||
** templates:
|
** templates:
|
||||||
**
|
**
|
||||||
** <ul>
|
** <ul>
|
||||||
@ -4805,7 +4805,7 @@ typedef struct sqlite3_context sqlite3_context;
|
|||||||
**
|
**
|
||||||
** [[byte-order determination rules]] ^The byte-order of
|
** [[byte-order determination rules]] ^The byte-order of
|
||||||
** UTF16 input text is determined by the byte-order mark (BOM, U+FEFF)
|
** UTF16 input text is determined by the byte-order mark (BOM, U+FEFF)
|
||||||
** found in first character, which is removed, or in the absence of a BOM
|
** found in the first character, which is removed, or in the absence of a BOM
|
||||||
** the byte order is the native byte order of the host
|
** the byte order is the native byte order of the host
|
||||||
** machine for sqlite3_bind_text16() or the byte order specified in
|
** machine for sqlite3_bind_text16() or the byte order specified in
|
||||||
** the 6th parameter for sqlite3_bind_text64().)^
|
** the 6th parameter for sqlite3_bind_text64().)^
|
||||||
@ -4825,7 +4825,7 @@ typedef struct sqlite3_context sqlite3_context;
|
|||||||
** or sqlite3_bind_text16() or sqlite3_bind_text64() then
|
** or sqlite3_bind_text16() or sqlite3_bind_text64() then
|
||||||
** that parameter must be the byte offset
|
** that parameter must be the byte offset
|
||||||
** where the NUL terminator would occur assuming the string were NUL
|
** where the NUL terminator would occur assuming the string were NUL
|
||||||
** terminated. If any NUL characters occurs at byte offsets less than
|
** terminated. If any NUL characters occur at byte offsets less than
|
||||||
** the value of the fourth parameter then the resulting string value will
|
** the value of the fourth parameter then the resulting string value will
|
||||||
** contain embedded NULs. The result of expressions involving strings
|
** contain embedded NULs. The result of expressions involving strings
|
||||||
** with embedded NULs is undefined.
|
** with embedded NULs is undefined.
|
||||||
@ -5037,7 +5037,7 @@ SQLITE_API const void *sqlite3_column_name16(sqlite3_stmt*, int N);
|
|||||||
** METHOD: sqlite3_stmt
|
** METHOD: sqlite3_stmt
|
||||||
**
|
**
|
||||||
** ^These routines provide a means to determine the database, table, and
|
** ^These routines provide a means to determine the database, table, and
|
||||||
** table column that is the origin of a particular result column in
|
** table column that is the origin of a particular result column in a
|
||||||
** [SELECT] statement.
|
** [SELECT] statement.
|
||||||
** ^The name of the database or table or column can be returned as
|
** ^The name of the database or table or column can be returned as
|
||||||
** either a UTF-8 or UTF-16 string. ^The _database_ routines return
|
** either a UTF-8 or UTF-16 string. ^The _database_ routines return
|
||||||
@ -5606,8 +5606,8 @@ SQLITE_API int sqlite3_reset(sqlite3_stmt *pStmt);
|
|||||||
**
|
**
|
||||||
** For best security, the [SQLITE_DIRECTONLY] flag is recommended for
|
** For best security, the [SQLITE_DIRECTONLY] flag is recommended for
|
||||||
** all application-defined SQL functions that do not need to be
|
** all application-defined SQL functions that do not need to be
|
||||||
** used inside of triggers, view, CHECK constraints, or other elements of
|
** used inside of triggers, views, CHECK constraints, or other elements of
|
||||||
** the database schema. This flags is especially recommended for SQL
|
** the database schema. This flag is especially recommended for SQL
|
||||||
** functions that have side effects or reveal internal application state.
|
** functions that have side effects or reveal internal application state.
|
||||||
** Without this flag, an attacker might be able to modify the schema of
|
** Without this flag, an attacker might be able to modify the schema of
|
||||||
** a database file to include invocations of the function with parameters
|
** a database file to include invocations of the function with parameters
|
||||||
@ -5638,7 +5638,7 @@ SQLITE_API int sqlite3_reset(sqlite3_stmt *pStmt);
|
|||||||
** [user-defined window functions|available here].
|
** [user-defined window functions|available here].
|
||||||
**
|
**
|
||||||
** ^(If the final parameter to sqlite3_create_function_v2() or
|
** ^(If the final parameter to sqlite3_create_function_v2() or
|
||||||
** sqlite3_create_window_function() is not NULL, then it is destructor for
|
** sqlite3_create_window_function() is not NULL, then it is the destructor for
|
||||||
** the application data pointer. The destructor is invoked when the function
|
** the application data pointer. The destructor is invoked when the function
|
||||||
** is deleted, either by being overloaded or when the database connection
|
** is deleted, either by being overloaded or when the database connection
|
||||||
** closes.)^ ^The destructor is also invoked if the call to
|
** closes.)^ ^The destructor is also invoked if the call to
|
||||||
@ -6038,7 +6038,7 @@ SQLITE_API unsigned int sqlite3_value_subtype(sqlite3_value*);
|
|||||||
** METHOD: sqlite3_value
|
** METHOD: sqlite3_value
|
||||||
**
|
**
|
||||||
** ^The sqlite3_value_dup(V) interface makes a copy of the [sqlite3_value]
|
** ^The sqlite3_value_dup(V) interface makes a copy of the [sqlite3_value]
|
||||||
** object D and returns a pointer to that copy. ^The [sqlite3_value] returned
|
** object V and returns a pointer to that copy. ^The [sqlite3_value] returned
|
||||||
** is a [protected sqlite3_value] object even if the input is not.
|
** is a [protected sqlite3_value] object even if the input is not.
|
||||||
** ^The sqlite3_value_dup(V) interface returns NULL if V is NULL or if a
|
** ^The sqlite3_value_dup(V) interface returns NULL if V is NULL or if a
|
||||||
** memory allocation fails. ^If V is a [pointer value], then the result
|
** memory allocation fails. ^If V is a [pointer value], then the result
|
||||||
@ -6076,7 +6076,7 @@ SQLITE_API void sqlite3_value_free(sqlite3_value*);
|
|||||||
** allocation error occurs.
|
** allocation error occurs.
|
||||||
**
|
**
|
||||||
** ^(The amount of space allocated by sqlite3_aggregate_context(C,N) is
|
** ^(The amount of space allocated by sqlite3_aggregate_context(C,N) is
|
||||||
** determined by the N parameter on first successful call. Changing the
|
** determined by the N parameter on the first successful call. Changing the
|
||||||
** value of N in any subsequent call to sqlite3_aggregate_context() within
|
** value of N in any subsequent call to sqlite3_aggregate_context() within
|
||||||
** the same aggregate function instance will not resize the memory
|
** the same aggregate function instance will not resize the memory
|
||||||
** allocation.)^ Within the xFinal callback, it is customary to set
|
** allocation.)^ Within the xFinal callback, it is customary to set
|
||||||
@ -6238,7 +6238,7 @@ SQLITE_API void sqlite3_set_auxdata(sqlite3_context*, int N, void*, void (*)(voi
|
|||||||
**
|
**
|
||||||
** Security Warning: These interfaces should not be exposed in scripting
|
** Security Warning: These interfaces should not be exposed in scripting
|
||||||
** languages or in other circumstances where it might be possible for an
|
** languages or in other circumstances where it might be possible for an
|
||||||
** an attacker to invoke them. Any agent that can invoke these interfaces
|
** attacker to invoke them. Any agent that can invoke these interfaces
|
||||||
** can probably also take control of the process.
|
** can probably also take control of the process.
|
||||||
**
|
**
|
||||||
** Database connection client data is only available for SQLite
|
** Database connection client data is only available for SQLite
|
||||||
@ -6352,7 +6352,7 @@ typedef void (*sqlite3_destructor_type)(void*);
|
|||||||
** pointed to by the 2nd parameter are taken as the application-defined
|
** pointed to by the 2nd parameter are taken as the application-defined
|
||||||
** function result. If the 3rd parameter is non-negative, then it
|
** function result. If the 3rd parameter is non-negative, then it
|
||||||
** must be the byte offset into the string where the NUL terminator would
|
** must be the byte offset into the string where the NUL terminator would
|
||||||
** appear if the string where NUL terminated. If any NUL characters occur
|
** appear if the string were NUL terminated. If any NUL characters occur
|
||||||
** in the string at a byte offset that is less than the value of the 3rd
|
** in the string at a byte offset that is less than the value of the 3rd
|
||||||
** parameter, then the resulting string will contain embedded NULs and the
|
** parameter, then the resulting string will contain embedded NULs and the
|
||||||
** result of expressions operating on strings with embedded NULs is undefined.
|
** result of expressions operating on strings with embedded NULs is undefined.
|
||||||
@ -6410,7 +6410,7 @@ typedef void (*sqlite3_destructor_type)(void*);
|
|||||||
** string and preferably a string literal. The sqlite3_result_pointer()
|
** string and preferably a string literal. The sqlite3_result_pointer()
|
||||||
** routine is part of the [pointer passing interface] added for SQLite 3.20.0.
|
** routine is part of the [pointer passing interface] added for SQLite 3.20.0.
|
||||||
**
|
**
|
||||||
** If these routines are called from within the different thread
|
** If these routines are called from within a different thread
|
||||||
** than the one containing the application-defined function that received
|
** than the one containing the application-defined function that received
|
||||||
** the [sqlite3_context] pointer, the results are undefined.
|
** the [sqlite3_context] pointer, the results are undefined.
|
||||||
*/
|
*/
|
||||||
@ -6816,7 +6816,7 @@ SQLITE_API sqlite3 *sqlite3_db_handle(sqlite3_stmt*);
|
|||||||
** METHOD: sqlite3
|
** METHOD: sqlite3
|
||||||
**
|
**
|
||||||
** ^The sqlite3_db_name(D,N) interface returns a pointer to the schema name
|
** ^The sqlite3_db_name(D,N) interface returns a pointer to the schema name
|
||||||
** for the N-th database on database connection D, or a NULL pointer of N is
|
** for the N-th database on database connection D, or a NULL pointer if N is
|
||||||
** out of range. An N value of 0 means the main database file. An N of 1 is
|
** out of range. An N value of 0 means the main database file. An N of 1 is
|
||||||
** the "temp" schema. Larger values of N correspond to various ATTACH-ed
|
** the "temp" schema. Larger values of N correspond to various ATTACH-ed
|
||||||
** databases.
|
** databases.
|
||||||
@ -6911,7 +6911,7 @@ SQLITE_API int sqlite3_txn_state(sqlite3*,const char *zSchema);
|
|||||||
** <dd>The SQLITE_TXN_READ state means that the database is currently
|
** <dd>The SQLITE_TXN_READ state means that the database is currently
|
||||||
** in a read transaction. Content has been read from the database file
|
** in a read transaction. Content has been read from the database file
|
||||||
** but nothing in the database file has changed. The transaction state
|
** but nothing in the database file has changed. The transaction state
|
||||||
** will advanced to SQLITE_TXN_WRITE if any changes occur and there are
|
** will be advanced to SQLITE_TXN_WRITE if any changes occur and there are
|
||||||
** no other conflicting concurrent write transactions. The transaction
|
** no other conflicting concurrent write transactions. The transaction
|
||||||
** state will revert to SQLITE_TXN_NONE following a [ROLLBACK] or
|
** state will revert to SQLITE_TXN_NONE following a [ROLLBACK] or
|
||||||
** [COMMIT].</dd>
|
** [COMMIT].</dd>
|
||||||
@ -6920,7 +6920,7 @@ SQLITE_API int sqlite3_txn_state(sqlite3*,const char *zSchema);
|
|||||||
** <dd>The SQLITE_TXN_WRITE state means that the database is currently
|
** <dd>The SQLITE_TXN_WRITE state means that the database is currently
|
||||||
** in a write transaction. Content has been written to the database file
|
** in a write transaction. Content has been written to the database file
|
||||||
** but has not yet committed. The transaction state will change to
|
** but has not yet committed. The transaction state will change to
|
||||||
** to SQLITE_TXN_NONE at the next [ROLLBACK] or [COMMIT].</dd>
|
** SQLITE_TXN_NONE at the next [ROLLBACK] or [COMMIT].</dd>
|
||||||
*/
|
*/
|
||||||
#define SQLITE_TXN_NONE 0
|
#define SQLITE_TXN_NONE 0
|
||||||
#define SQLITE_TXN_READ 1
|
#define SQLITE_TXN_READ 1
|
||||||
@ -7201,7 +7201,7 @@ SQLITE_API int sqlite3_db_release_memory(sqlite3*);
|
|||||||
** CAPI3REF: Impose A Limit On Heap Size
|
** CAPI3REF: Impose A Limit On Heap Size
|
||||||
**
|
**
|
||||||
** These interfaces impose limits on the amount of heap memory that will be
|
** These interfaces impose limits on the amount of heap memory that will be
|
||||||
** by all database connections within a single process.
|
** used by all database connections within a single process.
|
||||||
**
|
**
|
||||||
** ^The sqlite3_soft_heap_limit64() interface sets and/or queries the
|
** ^The sqlite3_soft_heap_limit64() interface sets and/or queries the
|
||||||
** soft limit on the amount of heap memory that may be allocated by SQLite.
|
** soft limit on the amount of heap memory that may be allocated by SQLite.
|
||||||
@ -7259,7 +7259,7 @@ SQLITE_API int sqlite3_db_release_memory(sqlite3*);
|
|||||||
** </ul>)^
|
** </ul>)^
|
||||||
**
|
**
|
||||||
** The circumstances under which SQLite will enforce the heap limits may
|
** The circumstances under which SQLite will enforce the heap limits may
|
||||||
** changes in future releases of SQLite.
|
** change in future releases of SQLite.
|
||||||
*/
|
*/
|
||||||
SQLITE_API sqlite3_int64 sqlite3_soft_heap_limit64(sqlite3_int64 N);
|
SQLITE_API sqlite3_int64 sqlite3_soft_heap_limit64(sqlite3_int64 N);
|
||||||
SQLITE_API sqlite3_int64 sqlite3_hard_heap_limit64(sqlite3_int64 N);
|
SQLITE_API sqlite3_int64 sqlite3_hard_heap_limit64(sqlite3_int64 N);
|
||||||
@ -7374,8 +7374,8 @@ SQLITE_API int sqlite3_table_column_metadata(
|
|||||||
** ^The entry point is zProc.
|
** ^The entry point is zProc.
|
||||||
** ^(zProc may be 0, in which case SQLite will try to come up with an
|
** ^(zProc may be 0, in which case SQLite will try to come up with an
|
||||||
** entry point name on its own. It first tries "sqlite3_extension_init".
|
** entry point name on its own. It first tries "sqlite3_extension_init".
|
||||||
** If that does not work, it constructs a name "sqlite3_X_init" where the
|
** If that does not work, it constructs a name "sqlite3_X_init" where
|
||||||
** X is consists of the lower-case equivalent of all ASCII alphabetic
|
** X consists of the lower-case equivalent of all ASCII alphabetic
|
||||||
** characters in the filename from the last "/" to the first following
|
** characters in the filename from the last "/" to the first following
|
||||||
** "." and omitting any initial "lib".)^
|
** "." and omitting any initial "lib".)^
|
||||||
** ^The sqlite3_load_extension() interface returns
|
** ^The sqlite3_load_extension() interface returns
|
||||||
@ -7446,7 +7446,7 @@ SQLITE_API int sqlite3_enable_load_extension(sqlite3 *db, int onoff);
|
|||||||
** ^(Even though the function prototype shows that xEntryPoint() takes
|
** ^(Even though the function prototype shows that xEntryPoint() takes
|
||||||
** no arguments and returns void, SQLite invokes xEntryPoint() with three
|
** no arguments and returns void, SQLite invokes xEntryPoint() with three
|
||||||
** arguments and expects an integer result as if the signature of the
|
** arguments and expects an integer result as if the signature of the
|
||||||
** entry point where as follows:
|
** entry point were as follows:
|
||||||
**
|
**
|
||||||
** <blockquote><pre>
|
** <blockquote><pre>
|
||||||
** int xEntryPoint(
|
** int xEntryPoint(
|
||||||
@ -7610,7 +7610,7 @@ struct sqlite3_module {
|
|||||||
** virtual table and might not be checked again by the byte code.)^ ^(The
|
** virtual table and might not be checked again by the byte code.)^ ^(The
|
||||||
** aConstraintUsage[].omit flag is an optimization hint. When the omit flag
|
** aConstraintUsage[].omit flag is an optimization hint. When the omit flag
|
||||||
** is left in its default setting of false, the constraint will always be
|
** is left in its default setting of false, the constraint will always be
|
||||||
** checked separately in byte code. If the omit flag is change to true, then
|
** checked separately in byte code. If the omit flag is changed to true, then
|
||||||
** the constraint may or may not be checked in byte code. In other words,
|
** the constraint may or may not be checked in byte code. In other words,
|
||||||
** when the omit flag is true there is no guarantee that the constraint will
|
** when the omit flag is true there is no guarantee that the constraint will
|
||||||
** not be checked again using byte code.)^
|
** not be checked again using byte code.)^
|
||||||
@ -7636,7 +7636,7 @@ struct sqlite3_module {
|
|||||||
** The xBestIndex method may optionally populate the idxFlags field with a
|
** The xBestIndex method may optionally populate the idxFlags field with a
|
||||||
** mask of SQLITE_INDEX_SCAN_* flags. One such flag is
|
** mask of SQLITE_INDEX_SCAN_* flags. One such flag is
|
||||||
** [SQLITE_INDEX_SCAN_HEX], which if set causes the [EXPLAIN QUERY PLAN]
|
** [SQLITE_INDEX_SCAN_HEX], which if set causes the [EXPLAIN QUERY PLAN]
|
||||||
** output to show the idxNum has hex instead of as decimal. Another flag is
|
** output to show the idxNum as hex instead of as decimal. Another flag is
|
||||||
** SQLITE_INDEX_SCAN_UNIQUE, which if set indicates that the query plan will
|
** SQLITE_INDEX_SCAN_UNIQUE, which if set indicates that the query plan will
|
||||||
** return at most one row.
|
** return at most one row.
|
||||||
**
|
**
|
||||||
@ -7777,7 +7777,7 @@ struct sqlite3_index_info {
|
|||||||
** the implementation of the [virtual table module]. ^The fourth
|
** the implementation of the [virtual table module]. ^The fourth
|
||||||
** parameter is an arbitrary client data pointer that is passed through
|
** parameter is an arbitrary client data pointer that is passed through
|
||||||
** into the [xCreate] and [xConnect] methods of the virtual table module
|
** into the [xCreate] and [xConnect] methods of the virtual table module
|
||||||
** when a new virtual table is be being created or reinitialized.
|
** when a new virtual table is being created or reinitialized.
|
||||||
**
|
**
|
||||||
** ^The sqlite3_create_module_v2() interface has a fifth parameter which
|
** ^The sqlite3_create_module_v2() interface has a fifth parameter which
|
||||||
** is a pointer to a destructor for the pClientData. ^SQLite will
|
** is a pointer to a destructor for the pClientData. ^SQLite will
|
||||||
@ -7942,7 +7942,7 @@ typedef struct sqlite3_blob sqlite3_blob;
|
|||||||
** in *ppBlob. Otherwise an [error code] is returned and, unless the error
|
** in *ppBlob. Otherwise an [error code] is returned and, unless the error
|
||||||
** code is SQLITE_MISUSE, *ppBlob is set to NULL.)^ ^This means that, provided
|
** code is SQLITE_MISUSE, *ppBlob is set to NULL.)^ ^This means that, provided
|
||||||
** the API is not misused, it is always safe to call [sqlite3_blob_close()]
|
** the API is not misused, it is always safe to call [sqlite3_blob_close()]
|
||||||
** on *ppBlob after this function it returns.
|
** on *ppBlob after this function returns.
|
||||||
**
|
**
|
||||||
** This function fails with SQLITE_ERROR if any of the following are true:
|
** This function fails with SQLITE_ERROR if any of the following are true:
|
||||||
** <ul>
|
** <ul>
|
||||||
@ -8062,7 +8062,7 @@ SQLITE_API int sqlite3_blob_close(sqlite3_blob *);
|
|||||||
**
|
**
|
||||||
** ^Returns the size in bytes of the BLOB accessible via the
|
** ^Returns the size in bytes of the BLOB accessible via the
|
||||||
** successfully opened [BLOB handle] in its only argument. ^The
|
** successfully opened [BLOB handle] in its only argument. ^The
|
||||||
** incremental blob I/O routines can only read or overwriting existing
|
** incremental blob I/O routines can only read or overwrite existing
|
||||||
** blob content; they cannot change the size of a blob.
|
** blob content; they cannot change the size of a blob.
|
||||||
**
|
**
|
||||||
** This routine only works on a [BLOB handle] which has been created
|
** This routine only works on a [BLOB handle] which has been created
|
||||||
@ -8212,7 +8212,7 @@ SQLITE_API int sqlite3_vfs_unregister(sqlite3_vfs*);
|
|||||||
** ^The sqlite3_mutex_alloc() routine allocates a new
|
** ^The sqlite3_mutex_alloc() routine allocates a new
|
||||||
** mutex and returns a pointer to it. ^The sqlite3_mutex_alloc()
|
** mutex and returns a pointer to it. ^The sqlite3_mutex_alloc()
|
||||||
** routine returns NULL if it is unable to allocate the requested
|
** routine returns NULL if it is unable to allocate the requested
|
||||||
** mutex. The argument to sqlite3_mutex_alloc() must one of these
|
** mutex. The argument to sqlite3_mutex_alloc() must be one of these
|
||||||
** integer constants:
|
** integer constants:
|
||||||
**
|
**
|
||||||
** <ul>
|
** <ul>
|
||||||
@ -8445,7 +8445,7 @@ SQLITE_API int sqlite3_mutex_notheld(sqlite3_mutex*);
|
|||||||
** CAPI3REF: Retrieve the mutex for a database connection
|
** CAPI3REF: Retrieve the mutex for a database connection
|
||||||
** METHOD: sqlite3
|
** METHOD: sqlite3
|
||||||
**
|
**
|
||||||
** ^This interface returns a pointer the [sqlite3_mutex] object that
|
** ^This interface returns a pointer to the [sqlite3_mutex] object that
|
||||||
** serializes access to the [database connection] given in the argument
|
** serializes access to the [database connection] given in the argument
|
||||||
** when the [threading mode] is Serialized.
|
** when the [threading mode] is Serialized.
|
||||||
** ^If the [threading mode] is Single-thread or Multi-thread then this
|
** ^If the [threading mode] is Single-thread or Multi-thread then this
|
||||||
@ -8568,7 +8568,7 @@ SQLITE_API int sqlite3_test_control(int op, ...);
|
|||||||
** CAPI3REF: SQL Keyword Checking
|
** CAPI3REF: SQL Keyword Checking
|
||||||
**
|
**
|
||||||
** These routines provide access to the set of SQL language keywords
|
** These routines provide access to the set of SQL language keywords
|
||||||
** recognized by SQLite. Applications can uses these routines to determine
|
** recognized by SQLite. Applications can use these routines to determine
|
||||||
** whether or not a specific identifier needs to be escaped (for example,
|
** whether or not a specific identifier needs to be escaped (for example,
|
||||||
** by enclosing in double-quotes) so as not to confuse the parser.
|
** by enclosing in double-quotes) so as not to confuse the parser.
|
||||||
**
|
**
|
||||||
@ -8736,7 +8736,7 @@ SQLITE_API void sqlite3_str_reset(sqlite3_str*);
|
|||||||
** content of the dynamic string under construction in X. The value
|
** content of the dynamic string under construction in X. The value
|
||||||
** returned by [sqlite3_str_value(X)] is managed by the sqlite3_str object X
|
** returned by [sqlite3_str_value(X)] is managed by the sqlite3_str object X
|
||||||
** and might be freed or altered by any subsequent method on the same
|
** and might be freed or altered by any subsequent method on the same
|
||||||
** [sqlite3_str] object. Applications must not used the pointer returned
|
** [sqlite3_str] object. Applications must not use the pointer returned by
|
||||||
** [sqlite3_str_value(X)] after any subsequent method call on the same
|
** [sqlite3_str_value(X)] after any subsequent method call on the same
|
||||||
** object. ^Applications may change the content of the string returned
|
** object. ^Applications may change the content of the string returned
|
||||||
** by [sqlite3_str_value(X)] as long as they do not write into any bytes
|
** by [sqlite3_str_value(X)] as long as they do not write into any bytes
|
||||||
@ -8822,7 +8822,7 @@ SQLITE_API int sqlite3_status64(
|
|||||||
** allocation which could not be satisfied by the [SQLITE_CONFIG_PAGECACHE]
|
** allocation which could not be satisfied by the [SQLITE_CONFIG_PAGECACHE]
|
||||||
** buffer and where forced to overflow to [sqlite3_malloc()]. The
|
** buffer and where forced to overflow to [sqlite3_malloc()]. The
|
||||||
** returned value includes allocations that overflowed because they
|
** returned value includes allocations that overflowed because they
|
||||||
** where too large (they were larger than the "sz" parameter to
|
** were too large (they were larger than the "sz" parameter to
|
||||||
** [SQLITE_CONFIG_PAGECACHE]) and allocations that overflowed because
|
** [SQLITE_CONFIG_PAGECACHE]) and allocations that overflowed because
|
||||||
** no space was left in the page cache.</dd>)^
|
** no space was left in the page cache.</dd>)^
|
||||||
**
|
**
|
||||||
@ -8906,28 +8906,29 @@ SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int r
|
|||||||
** [[SQLITE_DBSTATUS_LOOKASIDE_HIT]] ^(<dt>SQLITE_DBSTATUS_LOOKASIDE_HIT</dt>
|
** [[SQLITE_DBSTATUS_LOOKASIDE_HIT]] ^(<dt>SQLITE_DBSTATUS_LOOKASIDE_HIT</dt>
|
||||||
** <dd>This parameter returns the number of malloc attempts that were
|
** <dd>This parameter returns the number of malloc attempts that were
|
||||||
** satisfied using lookaside memory. Only the high-water value is meaningful;
|
** satisfied using lookaside memory. Only the high-water value is meaningful;
|
||||||
** the current value is always zero.)^
|
** the current value is always zero.</dd>)^
|
||||||
**
|
**
|
||||||
** [[SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE]]
|
** [[SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE]]
|
||||||
** ^(<dt>SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE</dt>
|
** ^(<dt>SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE</dt>
|
||||||
** <dd>This parameter returns the number malloc attempts that might have
|
** <dd>This parameter returns the number of malloc attempts that might have
|
||||||
** been satisfied using lookaside memory but failed due to the amount of
|
** been satisfied using lookaside memory but failed due to the amount of
|
||||||
** memory requested being larger than the lookaside slot size.
|
** memory requested being larger than the lookaside slot size.
|
||||||
** Only the high-water value is meaningful;
|
** Only the high-water value is meaningful;
|
||||||
** the current value is always zero.)^
|
** the current value is always zero.</dd>)^
|
||||||
**
|
**
|
||||||
** [[SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL]]
|
** [[SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL]]
|
||||||
** ^(<dt>SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL</dt>
|
** ^(<dt>SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL</dt>
|
||||||
** <dd>This parameter returns the number malloc attempts that might have
|
** <dd>This parameter returns the number of malloc attempts that might have
|
||||||
** been satisfied using lookaside memory but failed due to all lookaside
|
** been satisfied using lookaside memory but failed due to all lookaside
|
||||||
** memory already being in use.
|
** memory already being in use.
|
||||||
** Only the high-water value is meaningful;
|
** Only the high-water value is meaningful;
|
||||||
** the current value is always zero.)^
|
** the current value is always zero.</dd>)^
|
||||||
**
|
**
|
||||||
** [[SQLITE_DBSTATUS_CACHE_USED]] ^(<dt>SQLITE_DBSTATUS_CACHE_USED</dt>
|
** [[SQLITE_DBSTATUS_CACHE_USED]] ^(<dt>SQLITE_DBSTATUS_CACHE_USED</dt>
|
||||||
** <dd>This parameter returns the approximate number of bytes of heap
|
** <dd>This parameter returns the approximate number of bytes of heap
|
||||||
** memory used by all pager caches associated with the database connection.)^
|
** memory used by all pager caches associated with the database connection.)^
|
||||||
** ^The highwater mark associated with SQLITE_DBSTATUS_CACHE_USED is always 0.
|
** ^The highwater mark associated with SQLITE_DBSTATUS_CACHE_USED is always 0.
|
||||||
|
** </dd>
|
||||||
**
|
**
|
||||||
** [[SQLITE_DBSTATUS_CACHE_USED_SHARED]]
|
** [[SQLITE_DBSTATUS_CACHE_USED_SHARED]]
|
||||||
** ^(<dt>SQLITE_DBSTATUS_CACHE_USED_SHARED</dt>
|
** ^(<dt>SQLITE_DBSTATUS_CACHE_USED_SHARED</dt>
|
||||||
@ -8936,10 +8937,10 @@ SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int r
|
|||||||
** memory used by that pager cache is divided evenly between the attached
|
** memory used by that pager cache is divided evenly between the attached
|
||||||
** connections.)^ In other words, if none of the pager caches associated
|
** connections.)^ In other words, if none of the pager caches associated
|
||||||
** with the database connection are shared, this request returns the same
|
** with the database connection are shared, this request returns the same
|
||||||
** value as DBSTATUS_CACHE_USED. Or, if one or more or the pager caches are
|
** value as DBSTATUS_CACHE_USED. Or, if one or more of the pager caches are
|
||||||
** shared, the value returned by this call will be smaller than that returned
|
** shared, the value returned by this call will be smaller than that returned
|
||||||
** by DBSTATUS_CACHE_USED. ^The highwater mark associated with
|
** by DBSTATUS_CACHE_USED. ^The highwater mark associated with
|
||||||
** SQLITE_DBSTATUS_CACHE_USED_SHARED is always 0.
|
** SQLITE_DBSTATUS_CACHE_USED_SHARED is always 0.</dd>
|
||||||
**
|
**
|
||||||
** [[SQLITE_DBSTATUS_SCHEMA_USED]] ^(<dt>SQLITE_DBSTATUS_SCHEMA_USED</dt>
|
** [[SQLITE_DBSTATUS_SCHEMA_USED]] ^(<dt>SQLITE_DBSTATUS_SCHEMA_USED</dt>
|
||||||
** <dd>This parameter returns the approximate number of bytes of heap
|
** <dd>This parameter returns the approximate number of bytes of heap
|
||||||
@ -8949,6 +8950,7 @@ SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int r
|
|||||||
** schema memory is shared with other database connections due to
|
** schema memory is shared with other database connections due to
|
||||||
** [shared cache mode] being enabled.
|
** [shared cache mode] being enabled.
|
||||||
** ^The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED is always 0.
|
** ^The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED is always 0.
|
||||||
|
** </dd>
|
||||||
**
|
**
|
||||||
** [[SQLITE_DBSTATUS_STMT_USED]] ^(<dt>SQLITE_DBSTATUS_STMT_USED</dt>
|
** [[SQLITE_DBSTATUS_STMT_USED]] ^(<dt>SQLITE_DBSTATUS_STMT_USED</dt>
|
||||||
** <dd>This parameter returns the approximate number of bytes of heap
|
** <dd>This parameter returns the approximate number of bytes of heap
|
||||||
@ -8985,7 +8987,7 @@ SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int r
|
|||||||
** been written to disk in the middle of a transaction due to the page
|
** been written to disk in the middle of a transaction due to the page
|
||||||
** cache overflowing. Transactions are more efficient if they are written
|
** cache overflowing. Transactions are more efficient if they are written
|
||||||
** to disk all at once. When pages spill mid-transaction, that introduces
|
** to disk all at once. When pages spill mid-transaction, that introduces
|
||||||
** additional overhead. This parameter can be used help identify
|
** additional overhead. This parameter can be used to help identify
|
||||||
** inefficiencies that can be resolved by increasing the cache size.
|
** inefficiencies that can be resolved by increasing the cache size.
|
||||||
** </dd>
|
** </dd>
|
||||||
**
|
**
|
||||||
@ -9465,7 +9467,7 @@ typedef struct sqlite3_backup sqlite3_backup;
|
|||||||
** external process or via a database connection other than the one being
|
** external process or via a database connection other than the one being
|
||||||
** used by the backup operation, then the backup will be automatically
|
** used by the backup operation, then the backup will be automatically
|
||||||
** restarted by the next call to sqlite3_backup_step(). ^If the source
|
** restarted by the next call to sqlite3_backup_step(). ^If the source
|
||||||
** database is modified by the using the same database connection as is used
|
** database is modified by using the same database connection as is used
|
||||||
** by the backup operation, then the backup database is automatically
|
** by the backup operation, then the backup database is automatically
|
||||||
** updated at the same time.
|
** updated at the same time.
|
||||||
**
|
**
|
||||||
@ -9482,7 +9484,7 @@ typedef struct sqlite3_backup sqlite3_backup;
|
|||||||
** and may not be used following a call to sqlite3_backup_finish().
|
** and may not be used following a call to sqlite3_backup_finish().
|
||||||
**
|
**
|
||||||
** ^The value returned by sqlite3_backup_finish is [SQLITE_OK] if no
|
** ^The value returned by sqlite3_backup_finish is [SQLITE_OK] if no
|
||||||
** sqlite3_backup_step() errors occurred, regardless or whether or not
|
** sqlite3_backup_step() errors occurred, regardless of whether or not
|
||||||
** sqlite3_backup_step() completed.
|
** sqlite3_backup_step() completed.
|
||||||
** ^If an out-of-memory condition or IO error occurred during any prior
|
** ^If an out-of-memory condition or IO error occurred during any prior
|
||||||
** sqlite3_backup_step() call on the same [sqlite3_backup] object, then
|
** sqlite3_backup_step() call on the same [sqlite3_backup] object, then
|
||||||
@ -10552,7 +10554,7 @@ SQLITE_API void sqlite3_stmt_scanstatus_reset(sqlite3_stmt*);
|
|||||||
** METHOD: sqlite3
|
** METHOD: sqlite3
|
||||||
**
|
**
|
||||||
** ^If a write-transaction is open on [database connection] D when the
|
** ^If a write-transaction is open on [database connection] D when the
|
||||||
** [sqlite3_db_cacheflush(D)] interface invoked, any dirty
|
** [sqlite3_db_cacheflush(D)] interface is invoked, any dirty
|
||||||
** pages in the pager-cache that are not currently in use are written out
|
** pages in the pager-cache that are not currently in use are written out
|
||||||
** to disk. A dirty page may be in use if a database cursor created by an
|
** to disk. A dirty page may be in use if a database cursor created by an
|
||||||
** active SQL statement is reading from it, or if it is page 1 of a database
|
** active SQL statement is reading from it, or if it is page 1 of a database
|
||||||
|
Reference in New Issue
Block a user