mirror of
https://github.com/isar/rusqlite.git
synced 2024-11-29 13:41:36 +08:00
Bump bundled sqlite3 version to 3.37.0
This commit is contained in:
parent
6ad1cb684d
commit
795a53d368
@ -1,9 +1,9 @@
|
|||||||
/* automatically generated by rust-bindgen 0.58.1 */
|
/* automatically generated by rust-bindgen 0.59.2 */
|
||||||
|
|
||||||
pub const SQLITE_VERSION: &'static [u8; 7usize] = b"3.36.0\0";
|
pub const SQLITE_VERSION: &[u8; 7usize] = b"3.37.0\0";
|
||||||
pub const SQLITE_VERSION_NUMBER: i32 = 3036000;
|
pub const SQLITE_VERSION_NUMBER: i32 = 3037000;
|
||||||
pub const SQLITE_SOURCE_ID: &'static [u8; 85usize] =
|
pub const SQLITE_SOURCE_ID: &[u8; 85usize] =
|
||||||
b"2021-06-18 18:36:39 5c9a6c06871cb9fe42814af9c039eb6da5427a6ec28f187af7ebfb62eafa66e5\0";
|
b"2021-11-27 14:13:22 bd41822c7424d393a30e92ff6cb254d25c26769889c1499a18a0b9339f5d6c8a\0";
|
||||||
pub const SQLITE_OK: i32 = 0;
|
pub const SQLITE_OK: i32 = 0;
|
||||||
pub const SQLITE_ERROR: i32 = 1;
|
pub const SQLITE_ERROR: i32 = 1;
|
||||||
pub const SQLITE_INTERNAL: i32 = 2;
|
pub const SQLITE_INTERNAL: i32 = 2;
|
||||||
@ -103,6 +103,7 @@ pub const SQLITE_CONSTRAINT_UNIQUE: i32 = 2067;
|
|||||||
pub const SQLITE_CONSTRAINT_VTAB: i32 = 2323;
|
pub const SQLITE_CONSTRAINT_VTAB: i32 = 2323;
|
||||||
pub const SQLITE_CONSTRAINT_ROWID: i32 = 2579;
|
pub const SQLITE_CONSTRAINT_ROWID: i32 = 2579;
|
||||||
pub const SQLITE_CONSTRAINT_PINNED: i32 = 2835;
|
pub const SQLITE_CONSTRAINT_PINNED: i32 = 2835;
|
||||||
|
pub const SQLITE_CONSTRAINT_DATATYPE: i32 = 3091;
|
||||||
pub const SQLITE_NOTICE_RECOVER_WAL: i32 = 283;
|
pub const SQLITE_NOTICE_RECOVER_WAL: i32 = 283;
|
||||||
pub const SQLITE_NOTICE_RECOVER_ROLLBACK: i32 = 539;
|
pub const SQLITE_NOTICE_RECOVER_ROLLBACK: i32 = 539;
|
||||||
pub const SQLITE_WARNING_AUTOINDEX: i32 = 284;
|
pub const SQLITE_WARNING_AUTOINDEX: i32 = 284;
|
||||||
@ -130,6 +131,7 @@ pub const SQLITE_OPEN_SHAREDCACHE: i32 = 131072;
|
|||||||
pub const SQLITE_OPEN_PRIVATECACHE: i32 = 262144;
|
pub const SQLITE_OPEN_PRIVATECACHE: i32 = 262144;
|
||||||
pub const SQLITE_OPEN_WAL: i32 = 524288;
|
pub const SQLITE_OPEN_WAL: i32 = 524288;
|
||||||
pub const SQLITE_OPEN_NOFOLLOW: i32 = 16777216;
|
pub const SQLITE_OPEN_NOFOLLOW: i32 = 16777216;
|
||||||
|
pub const SQLITE_OPEN_EXRESCODE: i32 = 33554432;
|
||||||
pub const SQLITE_OPEN_MASTER_JOURNAL: i32 = 16384;
|
pub const SQLITE_OPEN_MASTER_JOURNAL: i32 = 16384;
|
||||||
pub const SQLITE_IOCAP_ATOMIC: i32 = 1;
|
pub const SQLITE_IOCAP_ATOMIC: i32 = 1;
|
||||||
pub const SQLITE_IOCAP_ATOMIC512: i32 = 2;
|
pub const SQLITE_IOCAP_ATOMIC512: i32 = 2;
|
||||||
@ -1391,9 +1393,15 @@ extern "C" {
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn sqlite3_changes(arg1: *mut sqlite3) -> ::std::os::raw::c_int;
|
pub fn sqlite3_changes(arg1: *mut sqlite3) -> ::std::os::raw::c_int;
|
||||||
}
|
}
|
||||||
|
extern "C" {
|
||||||
|
pub fn sqlite3_changes64(arg1: *mut sqlite3) -> sqlite3_int64;
|
||||||
|
}
|
||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn sqlite3_total_changes(arg1: *mut sqlite3) -> ::std::os::raw::c_int;
|
pub fn sqlite3_total_changes(arg1: *mut sqlite3) -> ::std::os::raw::c_int;
|
||||||
}
|
}
|
||||||
|
extern "C" {
|
||||||
|
pub fn sqlite3_total_changes64(arg1: *mut sqlite3) -> sqlite3_int64;
|
||||||
|
}
|
||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn sqlite3_interrupt(arg1: *mut sqlite3);
|
pub fn sqlite3_interrupt(arg1: *mut sqlite3);
|
||||||
}
|
}
|
||||||
@ -1710,9 +1718,6 @@ extern "C" {
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn sqlite3_expanded_sql(pStmt: *mut sqlite3_stmt) -> *mut ::std::os::raw::c_char;
|
pub fn sqlite3_expanded_sql(pStmt: *mut sqlite3_stmt) -> *mut ::std::os::raw::c_char;
|
||||||
}
|
}
|
||||||
extern "C" {
|
|
||||||
pub fn sqlite3_normalized_sql(pStmt: *mut sqlite3_stmt) -> *const ::std::os::raw::c_char;
|
|
||||||
}
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn sqlite3_stmt_readonly(pStmt: *mut sqlite3_stmt) -> ::std::os::raw::c_int;
|
pub fn sqlite3_stmt_readonly(pStmt: *mut sqlite3_stmt) -> ::std::os::raw::c_int;
|
||||||
}
|
}
|
||||||
@ -2465,6 +2470,22 @@ extern "C" {
|
|||||||
arg3: *mut ::std::os::raw::c_void,
|
arg3: *mut ::std::os::raw::c_void,
|
||||||
) -> *mut ::std::os::raw::c_void;
|
) -> *mut ::std::os::raw::c_void;
|
||||||
}
|
}
|
||||||
|
extern "C" {
|
||||||
|
pub fn sqlite3_autovacuum_pages(
|
||||||
|
db: *mut sqlite3,
|
||||||
|
arg1: ::std::option::Option<
|
||||||
|
unsafe extern "C" fn(
|
||||||
|
arg1: *mut ::std::os::raw::c_void,
|
||||||
|
arg2: *const ::std::os::raw::c_char,
|
||||||
|
arg3: ::std::os::raw::c_uint,
|
||||||
|
arg4: ::std::os::raw::c_uint,
|
||||||
|
arg5: ::std::os::raw::c_uint,
|
||||||
|
) -> ::std::os::raw::c_uint,
|
||||||
|
>,
|
||||||
|
arg2: *mut ::std::os::raw::c_void,
|
||||||
|
arg3: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
|
||||||
|
) -> ::std::os::raw::c_int;
|
||||||
|
}
|
||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn sqlite3_update_hook(
|
pub fn sqlite3_update_hook(
|
||||||
arg1: *mut sqlite3,
|
arg1: *mut sqlite3,
|
||||||
@ -4324,7 +4345,7 @@ extern "C" {
|
|||||||
pub fn sqlite3_system_errno(arg1: *mut sqlite3) -> ::std::os::raw::c_int;
|
pub fn sqlite3_system_errno(arg1: *mut sqlite3) -> ::std::os::raw::c_int;
|
||||||
}
|
}
|
||||||
#[repr(C)]
|
#[repr(C)]
|
||||||
#[derive(Copy, Clone)]
|
#[derive(Debug, Copy, Clone)]
|
||||||
pub struct sqlite3_snapshot {
|
pub struct sqlite3_snapshot {
|
||||||
pub hidden: [::std::os::raw::c_uchar; 48usize],
|
pub hidden: [::std::os::raw::c_uchar; 48usize],
|
||||||
}
|
}
|
||||||
|
14670
libsqlite3-sys/sqlite3/sqlite3.c
vendored
14670
libsqlite3-sys/sqlite3/sqlite3.c
vendored
File diff suppressed because it is too large
Load Diff
167
libsqlite3-sys/sqlite3/sqlite3.h
vendored
167
libsqlite3-sys/sqlite3/sqlite3.h
vendored
@ -43,7 +43,30 @@ extern "C" {
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Provide the ability to override linkage features of the interface.
|
** Facilitate override of interface linkage and calling conventions.
|
||||||
|
** Be aware that these macros may not be used within this particular
|
||||||
|
** translation of the amalgamation and its associated header file.
|
||||||
|
**
|
||||||
|
** The SQLITE_EXTERN and SQLITE_API macros are used to instruct the
|
||||||
|
** compiler that the target identifier should have external linkage.
|
||||||
|
**
|
||||||
|
** The SQLITE_CDECL macro is used to set the calling convention for
|
||||||
|
** public functions that accept a variable number of arguments.
|
||||||
|
**
|
||||||
|
** The SQLITE_APICALL macro is used to set the calling convention for
|
||||||
|
** public functions that accept a fixed number of arguments.
|
||||||
|
**
|
||||||
|
** The SQLITE_STDCALL macro is no longer used and is now deprecated.
|
||||||
|
**
|
||||||
|
** The SQLITE_CALLBACK macro is used to set the calling convention for
|
||||||
|
** function pointers.
|
||||||
|
**
|
||||||
|
** The SQLITE_SYSAPI macro is used to set the calling convention for
|
||||||
|
** functions provided by the operating system.
|
||||||
|
**
|
||||||
|
** Currently, the SQLITE_CDECL, SQLITE_APICALL, SQLITE_CALLBACK, and
|
||||||
|
** SQLITE_SYSAPI macros are used only when building for environments
|
||||||
|
** that require non-default calling conventions.
|
||||||
*/
|
*/
|
||||||
#ifndef SQLITE_EXTERN
|
#ifndef SQLITE_EXTERN
|
||||||
# define SQLITE_EXTERN extern
|
# define SQLITE_EXTERN extern
|
||||||
@ -123,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.36.0"
|
#define SQLITE_VERSION "3.37.0"
|
||||||
#define SQLITE_VERSION_NUMBER 3036000
|
#define SQLITE_VERSION_NUMBER 3037000
|
||||||
#define SQLITE_SOURCE_ID "2021-06-18 18:36:39 5c9a6c06871cb9fe42814af9c039eb6da5427a6ec28f187af7ebfb62eafa66e5"
|
#define SQLITE_SOURCE_ID "2021-11-27 14:13:22 bd41822c7424d393a30e92ff6cb254d25c26769889c1499a18a0b9339f5d6c8a"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** CAPI3REF: Run-Time Library Version Numbers
|
** CAPI3REF: Run-Time Library Version Numbers
|
||||||
@ -537,6 +560,7 @@ SQLITE_API int sqlite3_exec(
|
|||||||
#define SQLITE_CONSTRAINT_VTAB (SQLITE_CONSTRAINT | (9<<8))
|
#define SQLITE_CONSTRAINT_VTAB (SQLITE_CONSTRAINT | (9<<8))
|
||||||
#define SQLITE_CONSTRAINT_ROWID (SQLITE_CONSTRAINT |(10<<8))
|
#define SQLITE_CONSTRAINT_ROWID (SQLITE_CONSTRAINT |(10<<8))
|
||||||
#define SQLITE_CONSTRAINT_PINNED (SQLITE_CONSTRAINT |(11<<8))
|
#define SQLITE_CONSTRAINT_PINNED (SQLITE_CONSTRAINT |(11<<8))
|
||||||
|
#define SQLITE_CONSTRAINT_DATATYPE (SQLITE_CONSTRAINT |(12<<8))
|
||||||
#define SQLITE_NOTICE_RECOVER_WAL (SQLITE_NOTICE | (1<<8))
|
#define SQLITE_NOTICE_RECOVER_WAL (SQLITE_NOTICE | (1<<8))
|
||||||
#define SQLITE_NOTICE_RECOVER_ROLLBACK (SQLITE_NOTICE | (2<<8))
|
#define SQLITE_NOTICE_RECOVER_ROLLBACK (SQLITE_NOTICE | (2<<8))
|
||||||
#define SQLITE_WARNING_AUTOINDEX (SQLITE_WARNING | (1<<8))
|
#define SQLITE_WARNING_AUTOINDEX (SQLITE_WARNING | (1<<8))
|
||||||
@ -550,6 +574,19 @@ SQLITE_API int sqlite3_exec(
|
|||||||
** These bit values are intended for use in the
|
** These bit values are intended for use in the
|
||||||
** 3rd parameter to the [sqlite3_open_v2()] interface and
|
** 3rd parameter to the [sqlite3_open_v2()] interface and
|
||||||
** in the 4th parameter to the [sqlite3_vfs.xOpen] method.
|
** in the 4th parameter to the [sqlite3_vfs.xOpen] method.
|
||||||
|
**
|
||||||
|
** Only those flags marked as "Ok for sqlite3_open_v2()" may be
|
||||||
|
** used as the third argument to the [sqlite3_open_v2()] interface.
|
||||||
|
** The other flags have historically been ignored by sqlite3_open_v2(),
|
||||||
|
** though future versions of SQLite might change so that an error is
|
||||||
|
** raised if any of the disallowed bits are passed into sqlite3_open_v2().
|
||||||
|
** Applications should not depend on the historical behavior.
|
||||||
|
**
|
||||||
|
** Note in particular that passing the SQLITE_OPEN_EXCLUSIVE flag into
|
||||||
|
** [sqlite3_open_v2()] does *not* cause the underlying database file
|
||||||
|
** to be opened using O_EXCL. Passing SQLITE_OPEN_EXCLUSIVE into
|
||||||
|
** [sqlite3_open_v2()] has historically be a no-op and might become an
|
||||||
|
** error in future versions of SQLite.
|
||||||
*/
|
*/
|
||||||
#define SQLITE_OPEN_READONLY 0x00000001 /* Ok for sqlite3_open_v2() */
|
#define SQLITE_OPEN_READONLY 0x00000001 /* Ok for sqlite3_open_v2() */
|
||||||
#define SQLITE_OPEN_READWRITE 0x00000002 /* Ok for sqlite3_open_v2() */
|
#define SQLITE_OPEN_READWRITE 0x00000002 /* Ok for sqlite3_open_v2() */
|
||||||
@ -572,6 +609,7 @@ SQLITE_API int sqlite3_exec(
|
|||||||
#define SQLITE_OPEN_PRIVATECACHE 0x00040000 /* Ok for sqlite3_open_v2() */
|
#define SQLITE_OPEN_PRIVATECACHE 0x00040000 /* Ok for sqlite3_open_v2() */
|
||||||
#define SQLITE_OPEN_WAL 0x00080000 /* VFS only */
|
#define SQLITE_OPEN_WAL 0x00080000 /* VFS only */
|
||||||
#define SQLITE_OPEN_NOFOLLOW 0x01000000 /* Ok for sqlite3_open_v2() */
|
#define SQLITE_OPEN_NOFOLLOW 0x01000000 /* Ok for sqlite3_open_v2() */
|
||||||
|
#define SQLITE_OPEN_EXRESCODE 0x02000000 /* Extended result codes */
|
||||||
|
|
||||||
/* Reserved: 0x00F00000 */
|
/* Reserved: 0x00F00000 */
|
||||||
/* Legacy compatibility: */
|
/* Legacy compatibility: */
|
||||||
@ -2464,11 +2502,14 @@ SQLITE_API void sqlite3_set_last_insert_rowid(sqlite3*,sqlite3_int64);
|
|||||||
** CAPI3REF: Count The Number Of Rows Modified
|
** CAPI3REF: Count The Number Of Rows Modified
|
||||||
** METHOD: sqlite3
|
** METHOD: sqlite3
|
||||||
**
|
**
|
||||||
** ^This function returns the number of rows modified, inserted or
|
** ^These functions return the number of rows modified, inserted or
|
||||||
** deleted by the most recently completed INSERT, UPDATE or DELETE
|
** deleted by the most recently completed INSERT, UPDATE or DELETE
|
||||||
** statement on the database connection specified by the only parameter.
|
** statement on the database connection specified by the only parameter.
|
||||||
** ^Executing any other type of SQL statement does not modify the value
|
** The two functions are identical except for the type of the return value
|
||||||
** returned by this function.
|
** and that if the number of rows modified by the most recent INSERT, UPDATE
|
||||||
|
** or DELETE is greater than the maximum value supported by type "int", then
|
||||||
|
** the return value of sqlite3_changes() is undefined. ^Executing any other
|
||||||
|
** type of SQL statement does not modify the value returned by these functions.
|
||||||
**
|
**
|
||||||
** ^Only changes made directly by the INSERT, UPDATE or DELETE statement are
|
** ^Only changes made directly by the INSERT, UPDATE or DELETE statement are
|
||||||
** considered - auxiliary changes caused by [CREATE TRIGGER | triggers],
|
** considered - auxiliary changes caused by [CREATE TRIGGER | triggers],
|
||||||
@ -2517,16 +2558,21 @@ SQLITE_API void sqlite3_set_last_insert_rowid(sqlite3*,sqlite3_int64);
|
|||||||
** </ul>
|
** </ul>
|
||||||
*/
|
*/
|
||||||
SQLITE_API int sqlite3_changes(sqlite3*);
|
SQLITE_API int sqlite3_changes(sqlite3*);
|
||||||
|
SQLITE_API sqlite3_int64 sqlite3_changes64(sqlite3*);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** CAPI3REF: Total Number Of Rows Modified
|
** CAPI3REF: Total Number Of Rows Modified
|
||||||
** METHOD: sqlite3
|
** METHOD: sqlite3
|
||||||
**
|
**
|
||||||
** ^This function returns the total number of rows inserted, modified or
|
** ^These functions return the total number of rows inserted, modified or
|
||||||
** deleted by all [INSERT], [UPDATE] or [DELETE] statements completed
|
** deleted by all [INSERT], [UPDATE] or [DELETE] statements completed
|
||||||
** since the database connection was opened, including those executed as
|
** since the database connection was opened, including those executed as
|
||||||
** part of trigger programs. ^Executing any other type of SQL statement
|
** part of trigger programs. The two functions are identical except for the
|
||||||
** does not affect the value returned by sqlite3_total_changes().
|
** type of the return value and that if the number of rows modified by the
|
||||||
|
** connection exceeds the maximum value supported by type "int", then
|
||||||
|
** the return value of sqlite3_total_changes() is undefined. ^Executing
|
||||||
|
** any other type of SQL statement does not affect the value returned by
|
||||||
|
** sqlite3_total_changes().
|
||||||
**
|
**
|
||||||
** ^Changes made as part of [foreign key actions] are included in the
|
** ^Changes made as part of [foreign key actions] are included in the
|
||||||
** count, but those made as part of REPLACE constraint resolution are
|
** count, but those made as part of REPLACE constraint resolution are
|
||||||
@ -2554,6 +2600,7 @@ SQLITE_API int sqlite3_changes(sqlite3*);
|
|||||||
** </ul>
|
** </ul>
|
||||||
*/
|
*/
|
||||||
SQLITE_API int sqlite3_total_changes(sqlite3*);
|
SQLITE_API int sqlite3_total_changes(sqlite3*);
|
||||||
|
SQLITE_API sqlite3_int64 sqlite3_total_changes64(sqlite3*);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** CAPI3REF: Interrupt A Long-Running Query
|
** CAPI3REF: Interrupt A Long-Running Query
|
||||||
@ -3383,6 +3430,14 @@ SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);
|
|||||||
** the default shared cache setting provided by
|
** the default shared cache setting provided by
|
||||||
** [sqlite3_enable_shared_cache()].)^
|
** [sqlite3_enable_shared_cache()].)^
|
||||||
**
|
**
|
||||||
|
** [[OPEN_EXRESCODE]] ^(<dt>[SQLITE_OPEN_EXRESCODE]</dt>
|
||||||
|
** <dd>The database connection comes up in "extended result code mode".
|
||||||
|
** In other words, the database behaves has if
|
||||||
|
** [sqlite3_extended_result_codes(db,1)] where called on the database
|
||||||
|
** connection as soon as the connection is created. In addition to setting
|
||||||
|
** the extended result code mode, this flag also causes [sqlite3_open_v2()]
|
||||||
|
** to return an extended result code.</dd>
|
||||||
|
**
|
||||||
** [[OPEN_NOFOLLOW]] ^(<dt>[SQLITE_OPEN_NOFOLLOW]</dt>
|
** [[OPEN_NOFOLLOW]] ^(<dt>[SQLITE_OPEN_NOFOLLOW]</dt>
|
||||||
** <dd>The database filename is not allowed to be a symbolic link</dd>
|
** <dd>The database filename is not allowed to be a symbolic link</dd>
|
||||||
** </dl>)^
|
** </dl>)^
|
||||||
@ -3390,7 +3445,15 @@ SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);
|
|||||||
** If the 3rd parameter to sqlite3_open_v2() is not one of the
|
** If the 3rd parameter to sqlite3_open_v2() is not one of the
|
||||||
** required combinations shown above optionally combined with other
|
** required combinations shown above optionally combined with other
|
||||||
** [SQLITE_OPEN_READONLY | SQLITE_OPEN_* bits]
|
** [SQLITE_OPEN_READONLY | SQLITE_OPEN_* bits]
|
||||||
** then the behavior is undefined.
|
** then the behavior is undefined. Historic versions of SQLite
|
||||||
|
** have silently ignored surplus bits in the flags parameter to
|
||||||
|
** sqlite3_open_v2(), however that behavior might not be carried through
|
||||||
|
** into future versions of SQLite and so applications should not rely
|
||||||
|
** upon it. Note in particular that the SQLITE_OPEN_EXCLUSIVE flag is a no-op
|
||||||
|
** for sqlite3_open_v2(). The SQLITE_OPEN_EXCLUSIVE does *not* cause
|
||||||
|
** the open to fail if the database already exists. The SQLITE_OPEN_EXCLUSIVE
|
||||||
|
** flag is intended for use by the [sqlite3_vfs|VFS interface] only, and not
|
||||||
|
** by sqlite3_open_v2().
|
||||||
**
|
**
|
||||||
** ^The fourth parameter to sqlite3_open_v2() is the name of the
|
** ^The fourth parameter to sqlite3_open_v2() is the name of the
|
||||||
** [sqlite3_vfs] object that defines the operating system interface that
|
** [sqlite3_vfs] object that defines the operating system interface that
|
||||||
@ -4158,12 +4221,17 @@ SQLITE_API int sqlite3_prepare16_v3(
|
|||||||
** are managed by SQLite and are automatically freed when the prepared
|
** are managed by SQLite and are automatically freed when the prepared
|
||||||
** statement is finalized.
|
** statement is finalized.
|
||||||
** ^The string returned by sqlite3_expanded_sql(P), on the other hand,
|
** ^The string returned by sqlite3_expanded_sql(P), on the other hand,
|
||||||
** is obtained from [sqlite3_malloc()] and must be free by the application
|
** is obtained from [sqlite3_malloc()] and must be freed by the application
|
||||||
** by passing it to [sqlite3_free()].
|
** by passing it to [sqlite3_free()].
|
||||||
|
**
|
||||||
|
** ^The sqlite3_normalized_sql() interface is only available if
|
||||||
|
** the [SQLITE_ENABLE_NORMALIZE] compile-time option is defined.
|
||||||
*/
|
*/
|
||||||
SQLITE_API const char *sqlite3_sql(sqlite3_stmt *pStmt);
|
SQLITE_API const char *sqlite3_sql(sqlite3_stmt *pStmt);
|
||||||
SQLITE_API char *sqlite3_expanded_sql(sqlite3_stmt *pStmt);
|
SQLITE_API char *sqlite3_expanded_sql(sqlite3_stmt *pStmt);
|
||||||
|
#ifdef SQLITE_ENABLE_NORMALIZE
|
||||||
SQLITE_API const char *sqlite3_normalized_sql(sqlite3_stmt *pStmt);
|
SQLITE_API const char *sqlite3_normalized_sql(sqlite3_stmt *pStmt);
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** CAPI3REF: Determine If An SQL Statement Writes The Database
|
** CAPI3REF: Determine If An SQL Statement Writes The Database
|
||||||
@ -6347,6 +6415,72 @@ SQLITE_API sqlite3_stmt *sqlite3_next_stmt(sqlite3 *pDb, sqlite3_stmt *pStmt);
|
|||||||
SQLITE_API void *sqlite3_commit_hook(sqlite3*, int(*)(void*), void*);
|
SQLITE_API void *sqlite3_commit_hook(sqlite3*, int(*)(void*), void*);
|
||||||
SQLITE_API void *sqlite3_rollback_hook(sqlite3*, void(*)(void *), void*);
|
SQLITE_API void *sqlite3_rollback_hook(sqlite3*, void(*)(void *), void*);
|
||||||
|
|
||||||
|
/*
|
||||||
|
** CAPI3REF: Autovacuum Compaction Amount Callback
|
||||||
|
** METHOD: sqlite3
|
||||||
|
**
|
||||||
|
** ^The sqlite3_autovacuum_pages(D,C,P,X) interface registers a callback
|
||||||
|
** function C that is invoked prior to each autovacuum of the database
|
||||||
|
** file. ^The callback is passed a copy of the generic data pointer (P),
|
||||||
|
** the schema-name of the attached database that is being autovacuumed,
|
||||||
|
** the the size of the database file in pages, the number of free pages,
|
||||||
|
** and the number of bytes per page, respectively. The callback should
|
||||||
|
** return the number of free pages that should be removed by the
|
||||||
|
** autovacuum. ^If the callback returns zero, then no autovacuum happens.
|
||||||
|
** ^If the value returned is greater than or equal to the number of
|
||||||
|
** free pages, then a complete autovacuum happens.
|
||||||
|
**
|
||||||
|
** <p>^If there are multiple ATTACH-ed database files that are being
|
||||||
|
** modified as part of a transaction commit, then the autovacuum pages
|
||||||
|
** callback is invoked separately for each file.
|
||||||
|
**
|
||||||
|
** <p><b>The callback is not reentrant.</b> The callback function should
|
||||||
|
** not attempt to invoke any other SQLite interface. If it does, bad
|
||||||
|
** things may happen, including segmentation faults and corrupt database
|
||||||
|
** files. The callback function should be a simple function that
|
||||||
|
** does some arithmetic on its input parameters and returns a result.
|
||||||
|
**
|
||||||
|
** ^The X parameter to sqlite3_autovacuum_pages(D,C,P,X) is an optional
|
||||||
|
** destructor for the P parameter. ^If X is not NULL, then X(P) is
|
||||||
|
** invoked whenever the database connection closes or when the callback
|
||||||
|
** is overwritten by another invocation of sqlite3_autovacuum_pages().
|
||||||
|
**
|
||||||
|
** <p>^There is only one autovacuum pages callback per database connection.
|
||||||
|
** ^Each call to the sqlite3_autovacuum_pages() interface overrides all
|
||||||
|
** previous invocations for that database connection. ^If the callback
|
||||||
|
** argument (C) to sqlite3_autovacuum_pages(D,C,P,X) is a NULL pointer,
|
||||||
|
** then the autovacuum steps callback is cancelled. The return value
|
||||||
|
** from sqlite3_autovacuum_pages() is normally SQLITE_OK, but might
|
||||||
|
** be some other error code if something goes wrong. The current
|
||||||
|
** implementation will only return SQLITE_OK or SQLITE_MISUSE, but other
|
||||||
|
** return codes might be added in future releases.
|
||||||
|
**
|
||||||
|
** <p>If no autovacuum pages callback is specified (the usual case) or
|
||||||
|
** a NULL pointer is provided for the callback,
|
||||||
|
** then the default behavior is to vacuum all free pages. So, in other
|
||||||
|
** words, the default behavior is the same as if the callback function
|
||||||
|
** were something like this:
|
||||||
|
**
|
||||||
|
** <blockquote><pre>
|
||||||
|
** unsigned int demonstration_autovac_pages_callback(
|
||||||
|
** void *pClientData,
|
||||||
|
** const char *zSchema,
|
||||||
|
** unsigned int nDbPage,
|
||||||
|
** unsigned int nFreePage,
|
||||||
|
** unsigned int nBytePerPage
|
||||||
|
** ){
|
||||||
|
** return nFreePage;
|
||||||
|
** }
|
||||||
|
** </pre></blockquote>
|
||||||
|
*/
|
||||||
|
SQLITE_API int sqlite3_autovacuum_pages(
|
||||||
|
sqlite3 *db,
|
||||||
|
unsigned int(*)(void*,const char*,unsigned int,unsigned int,unsigned int),
|
||||||
|
void*,
|
||||||
|
void(*)(void*)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** CAPI3REF: Data Change Notification Callbacks
|
** CAPI3REF: Data Change Notification Callbacks
|
||||||
** METHOD: sqlite3
|
** METHOD: sqlite3
|
||||||
@ -9010,8 +9144,9 @@ SQLITE_API void sqlite3_log(int iErrCode, const char *zFormat, ...);
|
|||||||
**
|
**
|
||||||
** A single database handle may have at most a single write-ahead log callback
|
** A single database handle may have at most a single write-ahead log callback
|
||||||
** registered at one time. ^Calling [sqlite3_wal_hook()] replaces any
|
** registered at one time. ^Calling [sqlite3_wal_hook()] replaces any
|
||||||
** previously registered write-ahead log callback. ^Note that the
|
** previously registered write-ahead log callback. ^The return value is
|
||||||
** [sqlite3_wal_autocheckpoint()] interface and the
|
** a copy of the third parameter from the previous call, if any, or 0.
|
||||||
|
** ^Note that the [sqlite3_wal_autocheckpoint()] interface and the
|
||||||
** [wal_autocheckpoint pragma] both invoke [sqlite3_wal_hook()] and will
|
** [wal_autocheckpoint pragma] both invoke [sqlite3_wal_hook()] and will
|
||||||
** overwrite any prior [sqlite3_wal_hook()] settings.
|
** overwrite any prior [sqlite3_wal_hook()] settings.
|
||||||
*/
|
*/
|
||||||
@ -9878,6 +10013,10 @@ SQLITE_API unsigned char *sqlite3_serialize(
|
|||||||
** database is currently in a read transaction or is involved in a backup
|
** database is currently in a read transaction or is involved in a backup
|
||||||
** operation.
|
** operation.
|
||||||
**
|
**
|
||||||
|
** It is not possible to deserialized into the TEMP database. If the
|
||||||
|
** S argument to sqlite3_deserialize(D,S,P,N,M,F) is "temp" then the
|
||||||
|
** function returns SQLITE_ERROR.
|
||||||
|
**
|
||||||
** If sqlite3_deserialize(D,S,P,N,M,F) fails for any reason and if the
|
** If sqlite3_deserialize(D,S,P,N,M,F) fails for any reason and if the
|
||||||
** SQLITE_DESERIALIZE_FREEONCLOSE bit is set in argument F, then
|
** SQLITE_DESERIALIZE_FREEONCLOSE bit is set in argument F, then
|
||||||
** [sqlite3_free()] is invoked on argument P prior to returning.
|
** [sqlite3_free()] is invoked on argument P prior to returning.
|
||||||
|
12
libsqlite3-sys/sqlite3/sqlite3ext.h
vendored
12
libsqlite3-sys/sqlite3/sqlite3ext.h
vendored
@ -337,6 +337,13 @@ struct sqlite3_api_routines {
|
|||||||
sqlite3_file *(*database_file_object)(const char*);
|
sqlite3_file *(*database_file_object)(const char*);
|
||||||
/* Version 3.34.0 and later */
|
/* Version 3.34.0 and later */
|
||||||
int (*txn_state)(sqlite3*,const char*);
|
int (*txn_state)(sqlite3*,const char*);
|
||||||
|
/* Version 3.36.1 and later */
|
||||||
|
sqlite3_int64 (*changes64)(sqlite3*);
|
||||||
|
sqlite3_int64 (*total_changes64)(sqlite3*);
|
||||||
|
/* Version 3.37.0 and later */
|
||||||
|
int (*autovacuum_pages)(sqlite3*,
|
||||||
|
unsigned int(*)(void*,const char*,unsigned int,unsigned int,unsigned int),
|
||||||
|
void*, void(*)(void*));
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -643,6 +650,11 @@ typedef int (*sqlite3_loadext_entry)(
|
|||||||
#define sqlite3_database_file_object sqlite3_api->database_file_object
|
#define sqlite3_database_file_object sqlite3_api->database_file_object
|
||||||
/* Version 3.34.0 and later */
|
/* Version 3.34.0 and later */
|
||||||
#define sqlite3_txn_state sqlite3_api->txn_state
|
#define sqlite3_txn_state sqlite3_api->txn_state
|
||||||
|
/* Version 3.36.1 and later */
|
||||||
|
#define sqlite3_changes64 sqlite3_api->changes64
|
||||||
|
#define sqlite3_total_changes64 sqlite3_api->total_changes64
|
||||||
|
/* Version 3.37.0 and later */
|
||||||
|
#define sqlite3_autovacuum_pages sqlite3_api->autovacuum_pages
|
||||||
#endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */
|
#endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */
|
||||||
|
|
||||||
#if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION)
|
#if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION)
|
||||||
|
@ -12,7 +12,7 @@ export SQLCIPHER_LIB_DIR="$SCRIPT_DIR/sqlcipher"
|
|||||||
export SQLCIPHER_INCLUDE_DIR="$SQLCIPHER_LIB_DIR"
|
export SQLCIPHER_INCLUDE_DIR="$SQLCIPHER_LIB_DIR"
|
||||||
|
|
||||||
# Download and extract amalgamation
|
# Download and extract amalgamation
|
||||||
SQLITE=sqlite-amalgamation-3360000
|
SQLITE=sqlite-amalgamation-3370000
|
||||||
curl -O https://sqlite.org/2021/$SQLITE.zip
|
curl -O https://sqlite.org/2021/$SQLITE.zip
|
||||||
unzip -p "$SQLITE.zip" "$SQLITE/sqlite3.c" > "$SQLITE3_LIB_DIR/sqlite3.c"
|
unzip -p "$SQLITE.zip" "$SQLITE/sqlite3.c" > "$SQLITE3_LIB_DIR/sqlite3.c"
|
||||||
unzip -p "$SQLITE.zip" "$SQLITE/sqlite3.h" > "$SQLITE3_LIB_DIR/sqlite3.h"
|
unzip -p "$SQLITE.zip" "$SQLITE/sqlite3.h" > "$SQLITE3_LIB_DIR/sqlite3.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user