Merge pull request #446 from gwenn/upgrade

Upgrade bundled version to SQLite 3.26.0
This commit is contained in:
gwenn 2018-12-15 12:12:19 +01:00 committed by GitHub
commit bdfc2dfc54
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 2287 additions and 725 deletions

View File

@ -38,6 +38,8 @@ sqlcipher = ["libsqlite3-sys/sqlcipher"]
unlock_notify = ["libsqlite3-sys/unlock_notify"] unlock_notify = ["libsqlite3-sys/unlock_notify"]
# xSavepoint, xRelease and xRollbackTo: 3.7.7 (2011-06-23) # xSavepoint, xRelease and xRollbackTo: 3.7.7 (2011-06-23)
vtab = ["libsqlite3-sys/min_sqlite_version_3_7_7", "lazy_static"] vtab = ["libsqlite3-sys/min_sqlite_version_3_7_7", "lazy_static"]
# xShadowName: 3.26.0
vtab_v3 = ["vtab"]
csvtab = ["csv", "vtab"] csvtab = ["csv", "vtab"]
# pointer passing interfaces: 3.20.0 # pointer passing interfaces: 3.20.0
array = ["vtab"] array = ["vtab"]
@ -59,7 +61,7 @@ regex = "1.0"
[dependencies.libsqlite3-sys] [dependencies.libsqlite3-sys]
path = "libsqlite3-sys" path = "libsqlite3-sys"
version = "0.10" version = "0.11"
[[test]] [[test]]
name = "config_log" name = "config_log"

View File

@ -1,6 +1,6 @@
[package] [package]
name = "libsqlite3-sys" name = "libsqlite3-sys"
version = "0.10.0" version = "0.11.0"
authors = ["John Gallagher <jgallagher@bignerdranch.com>"] authors = ["John Gallagher <jgallagher@bignerdranch.com>"]
edition = "2018" edition = "2018"
repository = "https://github.com/jgallagher/rusqlite" repository = "https://github.com/jgallagher/rusqlite"

View File

@ -1,10 +1,10 @@
/* automatically generated by rust-bindgen */ /* automatically generated by rust-bindgen */
pub const __GNUC_VA_LIST: i32 = 1; pub const __GNUC_VA_LIST: i32 = 1;
pub const SQLITE_VERSION: &'static [u8; 7usize] = b"3.25.2\0"; pub const SQLITE_VERSION: &'static [u8; 7usize] = b"3.26.0\0";
pub const SQLITE_VERSION_NUMBER: i32 = 3025002; pub const SQLITE_VERSION_NUMBER: i32 = 3026000;
pub const SQLITE_SOURCE_ID: &'static [u8; 85usize] = pub const SQLITE_SOURCE_ID: &'static [u8; 85usize] =
b"2018-09-25 19:08:10 fb90e7189ae6d62e77ba3a308ca5d683f90bbe633cf681865365b8e92792d1c7\0"; b"2018-12-01 12:34:55 bf8c1b2b7a5960c282e543b9c293686dccff272512d08865f4600fb58238b4f9\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;
@ -228,7 +228,8 @@ pub const SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE: i32 = 1006;
pub const SQLITE_DBCONFIG_ENABLE_QPSG: i32 = 1007; pub const SQLITE_DBCONFIG_ENABLE_QPSG: i32 = 1007;
pub const SQLITE_DBCONFIG_TRIGGER_EQP: i32 = 1008; pub const SQLITE_DBCONFIG_TRIGGER_EQP: i32 = 1008;
pub const SQLITE_DBCONFIG_RESET_DATABASE: i32 = 1009; pub const SQLITE_DBCONFIG_RESET_DATABASE: i32 = 1009;
pub const SQLITE_DBCONFIG_MAX: i32 = 1009; pub const SQLITE_DBCONFIG_DEFENSIVE: i32 = 1010;
pub const SQLITE_DBCONFIG_MAX: i32 = 1010;
pub const SQLITE_DENY: i32 = 1; pub const SQLITE_DENY: i32 = 1;
pub const SQLITE_IGNORE: i32 = 2; pub const SQLITE_IGNORE: i32 = 2;
pub const SQLITE_CREATE_INDEX: i32 = 1; pub const SQLITE_CREATE_INDEX: i32 = 1;
@ -282,6 +283,7 @@ pub const SQLITE_LIMIT_VARIABLE_NUMBER: i32 = 9;
pub const SQLITE_LIMIT_TRIGGER_DEPTH: i32 = 10; pub const SQLITE_LIMIT_TRIGGER_DEPTH: i32 = 10;
pub const SQLITE_LIMIT_WORKER_THREADS: i32 = 11; pub const SQLITE_LIMIT_WORKER_THREADS: i32 = 11;
pub const SQLITE_PREPARE_PERSISTENT: i32 = 1; pub const SQLITE_PREPARE_PERSISTENT: i32 = 1;
pub const SQLITE_PREPARE_NORMALIZE: i32 = 2;
pub const SQLITE_INTEGER: i32 = 1; pub const SQLITE_INTEGER: i32 = 1;
pub const SQLITE_FLOAT: i32 = 2; pub const SQLITE_FLOAT: i32 = 2;
pub const SQLITE_BLOB: i32 = 4; pub const SQLITE_BLOB: i32 = 4;
@ -343,6 +345,7 @@ pub const SQLITE_TESTCTRL_RESERVE: i32 = 14;
pub const SQLITE_TESTCTRL_OPTIMIZATIONS: i32 = 15; pub const SQLITE_TESTCTRL_OPTIMIZATIONS: i32 = 15;
pub const SQLITE_TESTCTRL_ISKEYWORD: i32 = 16; pub const SQLITE_TESTCTRL_ISKEYWORD: i32 = 16;
pub const SQLITE_TESTCTRL_SCRATCHMALLOC: i32 = 17; pub const SQLITE_TESTCTRL_SCRATCHMALLOC: i32 = 17;
pub const SQLITE_TESTCTRL_INTERNAL_FUNCTIONS: i32 = 17;
pub const SQLITE_TESTCTRL_LOCALTIME_FAULT: i32 = 18; pub const SQLITE_TESTCTRL_LOCALTIME_FAULT: i32 = 18;
pub const SQLITE_TESTCTRL_EXPLAIN_STMT: i32 = 19; pub const SQLITE_TESTCTRL_EXPLAIN_STMT: i32 = 19;
pub const SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD: i32 = 19; pub const SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD: i32 = 19;
@ -531,24 +534,34 @@ pub struct sqlite3_io_methods {
unsafe extern "C" fn(arg1: *mut sqlite3_file, size: sqlite3_int64) -> ::std::os::raw::c_int, unsafe extern "C" fn(arg1: *mut sqlite3_file, size: sqlite3_int64) -> ::std::os::raw::c_int,
>, >,
pub xSync: ::std::option::Option< pub xSync: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut sqlite3_file, flags: ::std::os::raw::c_int) unsafe extern "C" fn(
-> ::std::os::raw::c_int, arg1: *mut sqlite3_file,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>, >,
pub xFileSize: ::std::option::Option< pub xFileSize: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut sqlite3_file, pSize: *mut sqlite3_int64) unsafe extern "C" fn(
-> ::std::os::raw::c_int, arg1: *mut sqlite3_file,
pSize: *mut sqlite3_int64,
) -> ::std::os::raw::c_int,
>, >,
pub xLock: ::std::option::Option< pub xLock: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut sqlite3_file, arg2: ::std::os::raw::c_int) unsafe extern "C" fn(
-> ::std::os::raw::c_int, arg1: *mut sqlite3_file,
arg2: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>, >,
pub xUnlock: ::std::option::Option< pub xUnlock: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut sqlite3_file, arg2: ::std::os::raw::c_int) unsafe extern "C" fn(
-> ::std::os::raw::c_int, arg1: *mut sqlite3_file,
arg2: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>, >,
pub xCheckReservedLock: ::std::option::Option< pub xCheckReservedLock: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut sqlite3_file, pResOut: *mut ::std::os::raw::c_int) unsafe extern "C" fn(
-> ::std::os::raw::c_int, arg1: *mut sqlite3_file,
pResOut: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>, >,
pub xFileControl: ::std::option::Option< pub xFileControl: ::std::option::Option<
unsafe extern "C" fn( unsafe extern "C" fn(
@ -582,8 +595,10 @@ pub struct sqlite3_io_methods {
>, >,
pub xShmBarrier: ::std::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_file)>, pub xShmBarrier: ::std::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_file)>,
pub xShmUnmap: ::std::option::Option< pub xShmUnmap: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut sqlite3_file, deleteFlag: ::std::os::raw::c_int) unsafe extern "C" fn(
-> ::std::os::raw::c_int, arg1: *mut sqlite3_file,
deleteFlag: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>, >,
pub xFetch: ::std::option::Option< pub xFetch: ::std::option::Option<
unsafe extern "C" fn( unsafe extern "C" fn(
@ -862,8 +877,10 @@ pub struct sqlite3_vfs {
) -> ::std::os::raw::c_int, ) -> ::std::os::raw::c_int,
>, >,
pub xDlOpen: ::std::option::Option< pub xDlOpen: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut sqlite3_vfs, zFilename: *const ::std::os::raw::c_char) unsafe extern "C" fn(
-> *mut ::std::os::raw::c_void, arg1: *mut sqlite3_vfs,
zFilename: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_void,
>, >,
pub xDlError: ::std::option::Option< pub xDlError: ::std::option::Option<
unsafe extern "C" fn( unsafe extern "C" fn(
@ -896,8 +913,10 @@ pub struct sqlite3_vfs {
) -> ::std::os::raw::c_int, ) -> ::std::os::raw::c_int,
>, >,
pub xSleep: ::std::option::Option< pub xSleep: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut sqlite3_vfs, microseconds: ::std::os::raw::c_int) unsafe extern "C" fn(
-> ::std::os::raw::c_int, arg1: *mut sqlite3_vfs,
microseconds: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>, >,
pub xCurrentTime: ::std::option::Option< pub xCurrentTime: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut sqlite3_vfs, arg2: *mut f64) -> ::std::os::raw::c_int, unsafe extern "C" fn(arg1: *mut sqlite3_vfs, arg2: *mut f64) -> ::std::os::raw::c_int,
@ -910,8 +929,10 @@ pub struct sqlite3_vfs {
) -> ::std::os::raw::c_int, ) -> ::std::os::raw::c_int,
>, >,
pub xCurrentTimeInt64: ::std::option::Option< pub xCurrentTimeInt64: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut sqlite3_vfs, arg2: *mut sqlite3_int64) unsafe extern "C" fn(
-> ::std::os::raw::c_int, arg1: *mut sqlite3_vfs,
arg2: *mut sqlite3_int64,
) -> ::std::os::raw::c_int,
>, >,
pub xSetSystemCall: ::std::option::Option< pub xSetSystemCall: ::std::option::Option<
unsafe extern "C" fn( unsafe extern "C" fn(
@ -921,12 +942,16 @@ pub struct sqlite3_vfs {
) -> ::std::os::raw::c_int, ) -> ::std::os::raw::c_int,
>, >,
pub xGetSystemCall: ::std::option::Option< pub xGetSystemCall: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut sqlite3_vfs, zName: *const ::std::os::raw::c_char) unsafe extern "C" fn(
-> sqlite3_syscall_ptr, arg1: *mut sqlite3_vfs,
zName: *const ::std::os::raw::c_char,
) -> sqlite3_syscall_ptr,
>, >,
pub xNextSystemCall: ::std::option::Option< pub xNextSystemCall: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut sqlite3_vfs, zName: *const ::std::os::raw::c_char) unsafe extern "C" fn(
-> *const ::std::os::raw::c_char, arg1: *mut sqlite3_vfs,
zName: *const ::std::os::raw::c_char,
) -> *const ::std::os::raw::c_char,
>, >,
} }
#[test] #[test]
@ -1192,8 +1217,10 @@ pub struct sqlite3_mem_methods {
>, >,
pub xFree: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>, pub xFree: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
pub xRealloc: ::std::option::Option< pub xRealloc: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: ::std::os::raw::c_int) unsafe extern "C" fn(
-> *mut ::std::os::raw::c_void, arg1: *mut ::std::os::raw::c_void,
arg2: ::std::os::raw::c_int,
) -> *mut ::std::os::raw::c_void,
>, >,
pub xSize: ::std::option::Option< pub xSize: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int, unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
@ -1331,8 +1358,10 @@ extern "C" {
pub fn sqlite3_busy_handler( pub fn sqlite3_busy_handler(
arg1: *mut sqlite3, arg1: *mut sqlite3,
arg2: ::std::option::Option< arg2: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: ::std::os::raw::c_int) unsafe extern "C" fn(
-> ::std::os::raw::c_int, arg1: *mut ::std::os::raw::c_void,
arg2: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>, >,
arg3: *mut ::std::os::raw::c_void, arg3: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int; ) -> ::std::os::raw::c_int;
@ -1610,6 +1639,9 @@ 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;
} }
@ -2447,8 +2479,10 @@ pub struct sqlite3_module {
) -> ::std::os::raw::c_int, ) -> ::std::os::raw::c_int,
>, >,
pub xBestIndex: ::std::option::Option< pub xBestIndex: ::std::option::Option<
unsafe extern "C" fn(pVTab: *mut sqlite3_vtab, arg1: *mut sqlite3_index_info) unsafe extern "C" fn(
-> ::std::os::raw::c_int, pVTab: *mut sqlite3_vtab,
arg1: *mut sqlite3_index_info,
) -> ::std::os::raw::c_int,
>, >,
pub xDisconnect: ::std::option::Option< pub xDisconnect: ::std::option::Option<
unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::std::os::raw::c_int, unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::std::os::raw::c_int,
@ -2457,8 +2491,10 @@ pub struct sqlite3_module {
unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::std::os::raw::c_int, unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::std::os::raw::c_int,
>, >,
pub xOpen: ::std::option::Option< pub xOpen: ::std::option::Option<
unsafe extern "C" fn(pVTab: *mut sqlite3_vtab, ppCursor: *mut *mut sqlite3_vtab_cursor) unsafe extern "C" fn(
-> ::std::os::raw::c_int, pVTab: *mut sqlite3_vtab,
ppCursor: *mut *mut sqlite3_vtab_cursor,
) -> ::std::os::raw::c_int,
>, >,
pub xClose: ::std::option::Option< pub xClose: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut sqlite3_vtab_cursor) -> ::std::os::raw::c_int, unsafe extern "C" fn(arg1: *mut sqlite3_vtab_cursor) -> ::std::os::raw::c_int,
@ -2486,8 +2522,10 @@ pub struct sqlite3_module {
) -> ::std::os::raw::c_int, ) -> ::std::os::raw::c_int,
>, >,
pub xRowid: ::std::option::Option< pub xRowid: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut sqlite3_vtab_cursor, pRowid: *mut sqlite3_int64) unsafe extern "C" fn(
-> ::std::os::raw::c_int, arg1: *mut sqlite3_vtab_cursor,
pRowid: *mut sqlite3_int64,
) -> ::std::os::raw::c_int,
>, >,
pub xUpdate: ::std::option::Option< pub xUpdate: ::std::option::Option<
unsafe extern "C" fn( unsafe extern "C" fn(
@ -2525,27 +2563,38 @@ pub struct sqlite3_module {
) -> ::std::os::raw::c_int, ) -> ::std::os::raw::c_int,
>, >,
pub xRename: ::std::option::Option< pub xRename: ::std::option::Option<
unsafe extern "C" fn(pVtab: *mut sqlite3_vtab, zNew: *const ::std::os::raw::c_char) unsafe extern "C" fn(
-> ::std::os::raw::c_int, pVtab: *mut sqlite3_vtab,
zNew: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int,
>, >,
pub xSavepoint: ::std::option::Option< pub xSavepoint: ::std::option::Option<
unsafe extern "C" fn(pVTab: *mut sqlite3_vtab, arg1: ::std::os::raw::c_int) unsafe extern "C" fn(
-> ::std::os::raw::c_int, pVTab: *mut sqlite3_vtab,
arg1: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>, >,
pub xRelease: ::std::option::Option< pub xRelease: ::std::option::Option<
unsafe extern "C" fn(pVTab: *mut sqlite3_vtab, arg1: ::std::os::raw::c_int) unsafe extern "C" fn(
-> ::std::os::raw::c_int, pVTab: *mut sqlite3_vtab,
arg1: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>, >,
pub xRollbackTo: ::std::option::Option< pub xRollbackTo: ::std::option::Option<
unsafe extern "C" fn(pVTab: *mut sqlite3_vtab, arg1: ::std::os::raw::c_int) unsafe extern "C" fn(
-> ::std::os::raw::c_int, pVTab: *mut sqlite3_vtab,
arg1: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>,
pub xShadowName: ::std::option::Option<
unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int,
>, >,
} }
#[test] #[test]
fn bindgen_test_layout_sqlite3_module() { fn bindgen_test_layout_sqlite3_module() {
assert_eq!( assert_eq!(
::std::mem::size_of::<sqlite3_module>(), ::std::mem::size_of::<sqlite3_module>(),
184usize, 192usize,
concat!("Size of: ", stringify!(sqlite3_module)) concat!("Size of: ", stringify!(sqlite3_module))
); );
assert_eq!( assert_eq!(
@ -2783,6 +2832,16 @@ fn bindgen_test_layout_sqlite3_module() {
stringify!(xRollbackTo) stringify!(xRollbackTo)
) )
); );
assert_eq!(
unsafe { &(*(::std::ptr::null::<sqlite3_module>())).xShadowName as *const _ as usize },
184usize,
concat!(
"Offset of field: ",
stringify!(sqlite3_module),
"::",
stringify!(xShadowName)
)
);
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
@ -3828,8 +3887,10 @@ pub struct sqlite3_pcache_methods {
>, >,
pub xShutdown: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>, pub xShutdown: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
pub xCreate: ::std::option::Option< pub xCreate: ::std::option::Option<
unsafe extern "C" fn(szPage: ::std::os::raw::c_int, bPurgeable: ::std::os::raw::c_int) unsafe extern "C" fn(
-> *mut sqlite3_pcache, szPage: ::std::os::raw::c_int,
bPurgeable: ::std::os::raw::c_int,
) -> *mut sqlite3_pcache,
>, >,
pub xCachesize: ::std::option::Option< pub xCachesize: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut sqlite3_pcache, nCachesize: ::std::os::raw::c_int), unsafe extern "C" fn(arg1: *mut sqlite3_pcache, nCachesize: ::std::os::raw::c_int),
@ -4586,8 +4647,10 @@ pub struct Fts5ExtensionApi {
unsafe extern "C" fn(arg1: *mut Fts5Context) -> ::std::os::raw::c_int, unsafe extern "C" fn(arg1: *mut Fts5Context) -> ::std::os::raw::c_int,
>, >,
pub xRowCount: ::std::option::Option< pub xRowCount: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut Fts5Context, pnRow: *mut sqlite3_int64) unsafe extern "C" fn(
-> ::std::os::raw::c_int, arg1: *mut Fts5Context,
pnRow: *mut sqlite3_int64,
) -> ::std::os::raw::c_int,
>, >,
pub xColumnTotalSize: ::std::option::Option< pub xColumnTotalSize: ::std::option::Option<
unsafe extern "C" fn( unsafe extern "C" fn(
@ -4618,12 +4681,16 @@ pub struct Fts5ExtensionApi {
unsafe extern "C" fn(arg1: *mut Fts5Context) -> ::std::os::raw::c_int, unsafe extern "C" fn(arg1: *mut Fts5Context) -> ::std::os::raw::c_int,
>, >,
pub xPhraseSize: ::std::option::Option< pub xPhraseSize: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut Fts5Context, iPhrase: ::std::os::raw::c_int) unsafe extern "C" fn(
-> ::std::os::raw::c_int, arg1: *mut Fts5Context,
iPhrase: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>, >,
pub xInstCount: ::std::option::Option< pub xInstCount: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut Fts5Context, pnInst: *mut ::std::os::raw::c_int) unsafe extern "C" fn(
-> ::std::os::raw::c_int, arg1: *mut Fts5Context,
pnInst: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>, >,
pub xInst: ::std::option::Option< pub xInst: ::std::option::Option<
unsafe extern "C" fn( unsafe extern "C" fn(
@ -4669,14 +4736,14 @@ pub struct Fts5ExtensionApi {
unsafe extern "C" fn( unsafe extern "C" fn(
arg1: *mut Fts5Context, arg1: *mut Fts5Context,
pAux: *mut ::std::os::raw::c_void, pAux: *mut ::std::os::raw::c_void,
xDelete: ::std::option::Option< xDelete: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void),
>,
) -> ::std::os::raw::c_int, ) -> ::std::os::raw::c_int,
>, >,
pub xGetAuxdata: ::std::option::Option< pub xGetAuxdata: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut Fts5Context, bClear: ::std::os::raw::c_int) unsafe extern "C" fn(
-> *mut ::std::os::raw::c_void, arg1: *mut Fts5Context,
bClear: ::std::os::raw::c_int,
) -> *mut ::std::os::raw::c_void,
>, >,
pub xPhraseFirst: ::std::option::Option< pub xPhraseFirst: ::std::option::Option<
unsafe extern "C" fn( unsafe extern "C" fn(
@ -5020,9 +5087,7 @@ pub struct fts5_api {
zName: *const ::std::os::raw::c_char, zName: *const ::std::os::raw::c_char,
pContext: *mut ::std::os::raw::c_void, pContext: *mut ::std::os::raw::c_void,
pTokenizer: *mut fts5_tokenizer, pTokenizer: *mut fts5_tokenizer,
xDestroy: ::std::option::Option< xDestroy: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void),
>,
) -> ::std::os::raw::c_int, ) -> ::std::os::raw::c_int,
>, >,
pub xFindTokenizer: ::std::option::Option< pub xFindTokenizer: ::std::option::Option<
@ -5039,9 +5104,7 @@ pub struct fts5_api {
zName: *const ::std::os::raw::c_char, zName: *const ::std::os::raw::c_char,
pContext: *mut ::std::os::raw::c_void, pContext: *mut ::std::os::raw::c_void,
xFunction: fts5_extension_function, xFunction: fts5_extension_function,
xDestroy: ::std::option::Option< xDestroy: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void),
>,
) -> ::std::os::raw::c_int, ) -> ::std::os::raw::c_int,
>, >,
} }

File diff suppressed because it is too large Load Diff

View File

@ -123,9 +123,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.25.2" #define SQLITE_VERSION "3.26.0"
#define SQLITE_VERSION_NUMBER 3025002 #define SQLITE_VERSION_NUMBER 3026000
#define SQLITE_SOURCE_ID "2018-09-25 19:08:10 fb90e7189ae6d62e77ba3a308ca5d683f90bbe633cf681865365b8e92792d1c7" #define SQLITE_SOURCE_ID "2018-12-01 12:34:55 bf8c1b2b7a5960c282e543b9c293686dccff272512d08865f4600fb58238b4f9"
/* /*
** CAPI3REF: Run-Time Library Version Numbers ** CAPI3REF: Run-Time Library Version Numbers
@ -2017,6 +2017,7 @@ struct sqlite3_mem_methods {
** is invoked. ** is invoked.
** **
** <dl> ** <dl>
** [[SQLITE_DBCONFIG_LOOKASIDE]]
** <dt>SQLITE_DBCONFIG_LOOKASIDE</dt> ** <dt>SQLITE_DBCONFIG_LOOKASIDE</dt>
** <dd> ^This option takes three additional arguments that determine the ** <dd> ^This option takes three additional arguments that determine the
** [lookaside memory allocator] configuration for the [database connection]. ** [lookaside memory allocator] configuration for the [database connection].
@ -2039,6 +2040,7 @@ struct sqlite3_mem_methods {
** memory is in use leaves the configuration unchanged and returns ** memory is in use leaves the configuration unchanged and returns
** [SQLITE_BUSY].)^</dd> ** [SQLITE_BUSY].)^</dd>
** **
** [[SQLITE_DBCONFIG_ENABLE_FKEY]]
** <dt>SQLITE_DBCONFIG_ENABLE_FKEY</dt> ** <dt>SQLITE_DBCONFIG_ENABLE_FKEY</dt>
** <dd> ^This option is used to enable or disable the enforcement of ** <dd> ^This option is used to enable or disable the enforcement of
** [foreign key constraints]. There should be two additional arguments. ** [foreign key constraints]. There should be two additional arguments.
@ -2049,6 +2051,7 @@ struct sqlite3_mem_methods {
** following this call. The second parameter may be a NULL pointer, in ** following this call. The second parameter may be a NULL pointer, in
** which case the FK enforcement setting is not reported back. </dd> ** which case the FK enforcement setting is not reported back. </dd>
** **
** [[SQLITE_DBCONFIG_ENABLE_TRIGGER]]
** <dt>SQLITE_DBCONFIG_ENABLE_TRIGGER</dt> ** <dt>SQLITE_DBCONFIG_ENABLE_TRIGGER</dt>
** <dd> ^This option is used to enable or disable [CREATE TRIGGER | triggers]. ** <dd> ^This option is used to enable or disable [CREATE TRIGGER | triggers].
** There should be two additional arguments. ** There should be two additional arguments.
@ -2059,6 +2062,7 @@ struct sqlite3_mem_methods {
** following this call. The second parameter may be a NULL pointer, in ** following this call. The second parameter may be a NULL pointer, in
** which case the trigger setting is not reported back. </dd> ** which case the trigger setting is not reported back. </dd>
** **
** [[SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER]]
** <dt>SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER</dt> ** <dt>SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER</dt>
** <dd> ^This option is used to enable or disable the two-argument ** <dd> ^This option is used to enable or disable the two-argument
** version of the [fts3_tokenizer()] function which is part of the ** version of the [fts3_tokenizer()] function which is part of the
@ -2072,6 +2076,7 @@ struct sqlite3_mem_methods {
** following this call. The second parameter may be a NULL pointer, in ** following this call. The second parameter may be a NULL pointer, in
** which case the new setting is not reported back. </dd> ** which case the new setting is not reported back. </dd>
** **
** [[SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION]]
** <dt>SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION</dt> ** <dt>SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION</dt>
** <dd> ^This option is used to enable or disable the [sqlite3_load_extension()] ** <dd> ^This option is used to enable or disable the [sqlite3_load_extension()]
** interface independently of the [load_extension()] SQL function. ** interface independently of the [load_extension()] SQL function.
@ -2089,7 +2094,7 @@ struct sqlite3_mem_methods {
** be a NULL pointer, in which case the new setting is not reported back. ** be a NULL pointer, in which case the new setting is not reported back.
** </dd> ** </dd>
** **
** <dt>SQLITE_DBCONFIG_MAINDBNAME</dt> ** [[SQLITE_DBCONFIG_MAINDBNAME]] <dt>SQLITE_DBCONFIG_MAINDBNAME</dt>
** <dd> ^This option is used to change the name of the "main" database ** <dd> ^This option is used to change the name of the "main" database
** schema. ^The sole argument is a pointer to a constant UTF8 string ** schema. ^The sole argument is a pointer to a constant UTF8 string
** which will become the new schema name in place of "main". ^SQLite ** which will become the new schema name in place of "main". ^SQLite
@ -2098,6 +2103,7 @@ struct sqlite3_mem_methods {
** until after the database connection closes. ** until after the database connection closes.
** </dd> ** </dd>
** **
** [[SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE]]
** <dt>SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE</dt> ** <dt>SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE</dt>
** <dd> Usually, when a database in wal mode is closed or detached from a ** <dd> Usually, when a database in wal mode is closed or detached from a
** database handle, SQLite checks if this will mean that there are now no ** database handle, SQLite checks if this will mean that there are now no
@ -2111,7 +2117,7 @@ struct sqlite3_mem_methods {
** have been disabled - 0 if they are not disabled, 1 if they are. ** have been disabled - 0 if they are not disabled, 1 if they are.
** </dd> ** </dd>
** **
** <dt>SQLITE_DBCONFIG_ENABLE_QPSG</dt> ** [[SQLITE_DBCONFIG_ENABLE_QPSG]] <dt>SQLITE_DBCONFIG_ENABLE_QPSG</dt>
** <dd>^(The SQLITE_DBCONFIG_ENABLE_QPSG option activates or deactivates ** <dd>^(The SQLITE_DBCONFIG_ENABLE_QPSG option activates or deactivates
** the [query planner stability guarantee] (QPSG). When the QPSG is active, ** the [query planner stability guarantee] (QPSG). When the QPSG is active,
** a single SQL query statement will always use the same algorithm regardless ** a single SQL query statement will always use the same algorithm regardless
@ -2127,7 +2133,7 @@ struct sqlite3_mem_methods {
** following this call. ** following this call.
** </dd> ** </dd>
** **
** <dt>SQLITE_DBCONFIG_TRIGGER_EQP</dt> ** [[SQLITE_DBCONFIG_TRIGGER_EQP]] <dt>SQLITE_DBCONFIG_TRIGGER_EQP</dt>
** <dd> By default, the output of EXPLAIN QUERY PLAN commands does not ** <dd> By default, the output of EXPLAIN QUERY PLAN commands does not
** include output for any operations performed by trigger programs. This ** include output for any operations performed by trigger programs. This
** option is used to set or clear (the default) a flag that governs this ** option is used to set or clear (the default) a flag that governs this
@ -2139,7 +2145,7 @@ struct sqlite3_mem_methods {
** it is not disabled, 1 if it is. ** it is not disabled, 1 if it is.
** </dd> ** </dd>
** **
** <dt>SQLITE_DBCONFIG_RESET_DATABASE</dt> ** [[SQLITE_DBCONFIG_RESET_DATABASE]] <dt>SQLITE_DBCONFIG_RESET_DATABASE</dt>
** <dd> Set the SQLITE_DBCONFIG_RESET_DATABASE flag and then run ** <dd> Set the SQLITE_DBCONFIG_RESET_DATABASE flag and then run
** [VACUUM] in order to reset a database back to an empty database ** [VACUUM] in order to reset a database back to an empty database
** with no schema and no content. The following process works even for ** with no schema and no content. The following process works even for
@ -2158,6 +2164,18 @@ struct sqlite3_mem_methods {
** Because resetting a database is destructive and irreversible, the ** Because resetting a database is destructive and irreversible, the
** process requires the use of this obscure API and multiple steps to help ** process requires the use of this obscure API and multiple steps to help
** ensure that it does not happen by accident. ** ensure that it does not happen by accident.
**
** [[SQLITE_DBCONFIG_DEFENSIVE]] <dt>SQLITE_DBCONFIG_DEFENSIVE</dt>
** <dd>The SQLITE_DBCONFIG_DEFENSIVE option activates or deactivates the
** "defensive" flag for a database connection. When the defensive
** flag is enabled, language features that allow ordinary SQL to
** deliberately corrupt the database file are disabled. The disabled
** features include but are not limited to the following:
** <ul>
** <li> The [PRAGMA writable_schema=ON] statement.
** <li> Writes to the [sqlite_dbpage] virtual table.
** <li> Direct writes to [shadow tables].
** </ul>
** </dd> ** </dd>
** </dl> ** </dl>
*/ */
@ -2171,7 +2189,8 @@ struct sqlite3_mem_methods {
#define SQLITE_DBCONFIG_ENABLE_QPSG 1007 /* int int* */ #define SQLITE_DBCONFIG_ENABLE_QPSG 1007 /* int int* */
#define SQLITE_DBCONFIG_TRIGGER_EQP 1008 /* int int* */ #define SQLITE_DBCONFIG_TRIGGER_EQP 1008 /* int int* */
#define SQLITE_DBCONFIG_RESET_DATABASE 1009 /* int int* */ #define SQLITE_DBCONFIG_RESET_DATABASE 1009 /* int int* */
#define SQLITE_DBCONFIG_MAX 1009 /* Largest DBCONFIG */ #define SQLITE_DBCONFIG_DEFENSIVE 1010 /* int int* */
#define SQLITE_DBCONFIG_MAX 1010 /* Largest DBCONFIG */
/* /*
** CAPI3REF: Enable Or Disable Extended Result Codes ** CAPI3REF: Enable Or Disable Extended Result Codes
@ -3609,9 +3628,19 @@ SQLITE_API int sqlite3_limit(sqlite3*, int id, int newVal);
** on this hint by avoiding the use of [lookaside memory] so as not to ** on this hint by avoiding the use of [lookaside memory] so as not to
** deplete the limited store of lookaside memory. Future versions of ** deplete the limited store of lookaside memory. Future versions of
** SQLite may act on this hint differently. ** SQLite may act on this hint differently.
**
** [[SQLITE_PREPARE_NORMALIZE]] ^(<dt>SQLITE_PREPARE_NORMALIZE</dt>
** <dd>The SQLITE_PREPARE_NORMALIZE flag indicates that a normalized
** representation of the SQL statement should be calculated and then
** associated with the prepared statement, which can be obtained via
** the [sqlite3_normalized_sql()] interface.)^ The semantics used to
** normalize a SQL statement are unspecified and subject to change.
** At a minimum, literal values will be replaced with suitable
** placeholders.
** </dl> ** </dl>
*/ */
#define SQLITE_PREPARE_PERSISTENT 0x01 #define SQLITE_PREPARE_PERSISTENT 0x01
#define SQLITE_PREPARE_NORMALIZE 0x02
/* /*
** CAPI3REF: Compiling An SQL Statement ** CAPI3REF: Compiling An SQL Statement
@ -3769,6 +3798,11 @@ SQLITE_API int sqlite3_prepare16_v3(
** ^The sqlite3_expanded_sql(P) interface returns a pointer to a UTF-8 ** ^The sqlite3_expanded_sql(P) interface returns a pointer to a UTF-8
** string containing the SQL text of prepared statement P with ** string containing the SQL text of prepared statement P with
** [bound parameters] expanded. ** [bound parameters] expanded.
** ^The sqlite3_normalized_sql(P) interface returns a pointer to a UTF-8
** string containing the normalized SQL text of prepared statement P. The
** semantics used to normalize a SQL statement are unspecified and subject
** to change. At a minimum, literal values will be replaced with suitable
** placeholders.
** **
** ^(For example, if a prepared statement is created using the SQL ** ^(For example, if a prepared statement is created using the SQL
** text "SELECT $abc,:xyz" and if parameter $abc is bound to integer 2345 ** text "SELECT $abc,:xyz" and if parameter $abc is bound to integer 2345
@ -3784,14 +3818,16 @@ SQLITE_API int sqlite3_prepare16_v3(
** bound parameter expansions. ^The [SQLITE_OMIT_TRACE] compile-time ** bound parameter expansions. ^The [SQLITE_OMIT_TRACE] compile-time
** option causes sqlite3_expanded_sql() to always return NULL. ** option causes sqlite3_expanded_sql() to always return NULL.
** **
** ^The string returned by sqlite3_sql(P) is managed by SQLite and is ** ^The strings returned by sqlite3_sql(P) and sqlite3_normalized_sql(P)
** automatically freed when the prepared statement is finalized. ** are managed by SQLite and are automatically freed when the prepared
** 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 free by the application
** by passing it to [sqlite3_free()]. ** by passing it to [sqlite3_free()].
*/ */
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);
SQLITE_API const char *sqlite3_normalized_sql(sqlite3_stmt *pStmt);
/* /*
** CAPI3REF: Determine If An SQL Statement Writes The Database ** CAPI3REF: Determine If An SQL Statement Writes The Database
@ -6281,6 +6317,9 @@ struct sqlite3_module {
int (*xSavepoint)(sqlite3_vtab *pVTab, int); int (*xSavepoint)(sqlite3_vtab *pVTab, int);
int (*xRelease)(sqlite3_vtab *pVTab, int); int (*xRelease)(sqlite3_vtab *pVTab, int);
int (*xRollbackTo)(sqlite3_vtab *pVTab, int); int (*xRollbackTo)(sqlite3_vtab *pVTab, int);
/* The methods above are in versions 1 and 2 of the sqlite_module object.
** Those below are for version 3 and greater. */
int (*xShadowName)(const char*);
}; };
/* /*
@ -7203,6 +7242,7 @@ SQLITE_API int sqlite3_test_control(int op, ...);
#define SQLITE_TESTCTRL_OPTIMIZATIONS 15 #define SQLITE_TESTCTRL_OPTIMIZATIONS 15
#define SQLITE_TESTCTRL_ISKEYWORD 16 /* NOT USED */ #define SQLITE_TESTCTRL_ISKEYWORD 16 /* NOT USED */
#define SQLITE_TESTCTRL_SCRATCHMALLOC 17 /* NOT USED */ #define SQLITE_TESTCTRL_SCRATCHMALLOC 17 /* NOT USED */
#define SQLITE_TESTCTRL_INTERNAL_FUNCTIONS 17
#define SQLITE_TESTCTRL_LOCALTIME_FAULT 18 #define SQLITE_TESTCTRL_LOCALTIME_FAULT 18
#define SQLITE_TESTCTRL_EXPLAIN_STMT 19 /* NOT USED */ #define SQLITE_TESTCTRL_EXPLAIN_STMT 19 /* NOT USED */
#define SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD 19 #define SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD 19
@ -8615,6 +8655,7 @@ SQLITE_API int sqlite3_vtab_config(sqlite3*, int op, ...);
** can use to customize and optimize their behavior. ** can use to customize and optimize their behavior.
** **
** <dl> ** <dl>
** [[SQLITE_VTAB_CONSTRAINT_SUPPORT]]
** <dt>SQLITE_VTAB_CONSTRAINT_SUPPORT ** <dt>SQLITE_VTAB_CONSTRAINT_SUPPORT
** <dd>Calls of the form ** <dd>Calls of the form
** [sqlite3_vtab_config](db,SQLITE_VTAB_CONSTRAINT_SUPPORT,X) are supported, ** [sqlite3_vtab_config](db,SQLITE_VTAB_CONSTRAINT_SUPPORT,X) are supported,
@ -9384,7 +9425,7 @@ struct sqlite3_rtree_query_info {
sqlite3_int64 iRowid; /* Rowid for current entry */ sqlite3_int64 iRowid; /* Rowid for current entry */
sqlite3_rtree_dbl rParentScore; /* Score of parent node */ sqlite3_rtree_dbl rParentScore; /* Score of parent node */
int eParentWithin; /* Visibility of parent node */ int eParentWithin; /* Visibility of parent node */
int eWithin; /* OUT: Visiblity */ int eWithin; /* OUT: Visibility */
sqlite3_rtree_dbl rScore; /* OUT: Write the score here */ sqlite3_rtree_dbl rScore; /* OUT: Write the score here */
/* The following fields are only available in 3.8.11 and later */ /* The following fields are only available in 3.8.11 and later */
sqlite3_value **apSqlParam; /* Original SQL values of parameters */ sqlite3_value **apSqlParam; /* Original SQL values of parameters */
@ -9880,12 +9921,38 @@ SQLITE_API int sqlite3session_isempty(sqlite3_session *pSession);
** consecutively. There is no chance that the iterator will visit a change ** consecutively. There is no chance that the iterator will visit a change
** the applies to table X, then one for table Y, and then later on visit ** the applies to table X, then one for table Y, and then later on visit
** another change for table X. ** another change for table X.
**
** The behavior of sqlite3changeset_start_v2() and its streaming equivalent
** may be modified by passing a combination of
** [SQLITE_CHANGESETSTART_INVERT | supported flags] as the 4th parameter.
**
** Note that the sqlite3changeset_start_v2() API is still <b>experimental</b>
** and therefore subject to change.
*/ */
SQLITE_API int sqlite3changeset_start( SQLITE_API int sqlite3changeset_start(
sqlite3_changeset_iter **pp, /* OUT: New changeset iterator handle */ sqlite3_changeset_iter **pp, /* OUT: New changeset iterator handle */
int nChangeset, /* Size of changeset blob in bytes */ int nChangeset, /* Size of changeset blob in bytes */
void *pChangeset /* Pointer to blob containing changeset */ void *pChangeset /* Pointer to blob containing changeset */
); );
SQLITE_API int sqlite3changeset_start_v2(
sqlite3_changeset_iter **pp, /* OUT: New changeset iterator handle */
int nChangeset, /* Size of changeset blob in bytes */
void *pChangeset, /* Pointer to blob containing changeset */
int flags /* SESSION_CHANGESETSTART_* flags */
);
/*
** CAPI3REF: Flags for sqlite3changeset_start_v2
**
** The following flags may passed via the 4th parameter to
** [sqlite3changeset_start_v2] and [sqlite3changeset_start_v2_strm]:
**
** <dt>SQLITE_CHANGESETAPPLY_INVERT <dd>
** Invert the changeset while iterating through it. This is equivalent to
** inverting a changeset using sqlite3changeset_invert() before applying it.
** It is an error to specify this flag with a patchset.
*/
#define SQLITE_CHANGESETSTART_INVERT 0x0002
/* /*
@ -10540,7 +10607,7 @@ SQLITE_API int sqlite3changeset_apply_v2(
), ),
void *pCtx, /* First argument passed to xConflict */ void *pCtx, /* First argument passed to xConflict */
void **ppRebase, int *pnRebase, /* OUT: Rebase data */ void **ppRebase, int *pnRebase, /* OUT: Rebase data */
int flags /* Combination of SESSION_APPLY_* flags */ int flags /* SESSION_CHANGESETAPPLY_* flags */
); );
/* /*
@ -10558,8 +10625,14 @@ SQLITE_API int sqlite3changeset_apply_v2(
** causes the sessions module to omit this savepoint. In this case, if the ** causes the sessions module to omit this savepoint. In this case, if the
** caller has an open transaction or savepoint when apply_v2() is called, ** caller has an open transaction or savepoint when apply_v2() is called,
** it may revert the partially applied changeset by rolling it back. ** it may revert the partially applied changeset by rolling it back.
**
** <dt>SQLITE_CHANGESETAPPLY_INVERT <dd>
** Invert the changeset before applying it. This is equivalent to inverting
** a changeset using sqlite3changeset_invert() before applying it. It is
** an error to specify this flag with a patchset.
*/ */
#define SQLITE_CHANGESETAPPLY_NOSAVEPOINT 0x0001 #define SQLITE_CHANGESETAPPLY_NOSAVEPOINT 0x0001
#define SQLITE_CHANGESETAPPLY_INVERT 0x0002
/* /*
** CAPI3REF: Constants Passed To The Conflict Handler ** CAPI3REF: Constants Passed To The Conflict Handler
@ -10953,6 +11026,12 @@ SQLITE_API int sqlite3changeset_start_strm(
int (*xInput)(void *pIn, void *pData, int *pnData), int (*xInput)(void *pIn, void *pData, int *pnData),
void *pIn void *pIn
); );
SQLITE_API int sqlite3changeset_start_v2_strm(
sqlite3_changeset_iter **pp,
int (*xInput)(void *pIn, void *pData, int *pnData),
void *pIn,
int flags
);
SQLITE_API int sqlite3session_changeset_strm( SQLITE_API int sqlite3session_changeset_strm(
sqlite3_session *pSession, sqlite3_session *pSession,
int (*xOutput)(void *pOut, const void *pData, int nData), int (*xOutput)(void *pOut, const void *pData, int nData),
@ -10979,6 +11058,45 @@ SQLITE_API int sqlite3rebaser_rebase_strm(
void *pOut void *pOut
); );
/*
** CAPI3REF: Configure global parameters
**
** The sqlite3session_config() interface is used to make global configuration
** changes to the sessions module in order to tune it to the specific needs
** of the application.
**
** The sqlite3session_config() interface is not threadsafe. If it is invoked
** while any other thread is inside any other sessions method then the
** results are undefined. Furthermore, if it is invoked after any sessions
** related objects have been created, the results are also undefined.
**
** The first argument to the sqlite3session_config() function must be one
** of the SQLITE_SESSION_CONFIG_XXX constants defined below. The
** interpretation of the (void*) value passed as the second parameter and
** the effect of calling this function depends on the value of the first
** parameter.
**
** <dl>
** <dt>SQLITE_SESSION_CONFIG_STRMSIZE<dd>
** By default, the sessions module streaming interfaces attempt to input
** and output data in approximately 1 KiB chunks. This operand may be used
** to set and query the value of this configuration setting. The pointer
** passed as the second argument must point to a value of type (int).
** If this value is greater than 0, it is used as the new streaming data
** chunk size for both input and output. Before returning, the (int) value
** pointed to by pArg is set to the final value of the streaming interface
** chunk size.
** </dl>
**
** This function returns SQLITE_OK if successful, or an SQLite error code
** otherwise.
*/
SQLITE_API int sqlite3session_config(int op, void *pArg);
/*
** CAPI3REF: Values for sqlite3session_config().
*/
#define SQLITE_SESSION_CONFIG_STRMSIZE 1
/* /*
** Make sure we can call this stuff from C++. ** Make sure we can call this stuff from C++.

View File

@ -310,12 +310,15 @@ struct sqlite3_api_routines {
int (*str_errcode)(sqlite3_str*); int (*str_errcode)(sqlite3_str*);
int (*str_length)(sqlite3_str*); int (*str_length)(sqlite3_str*);
char *(*str_value)(sqlite3_str*); char *(*str_value)(sqlite3_str*);
/* Version 3.25.0 and later */
int (*create_window_function)(sqlite3*,const char*,int,int,void*, int (*create_window_function)(sqlite3*,const char*,int,int,void*,
void (*xStep)(sqlite3_context*,int,sqlite3_value**), void (*xStep)(sqlite3_context*,int,sqlite3_value**),
void (*xFinal)(sqlite3_context*), void (*xFinal)(sqlite3_context*),
void (*xValue)(sqlite3_context*), void (*xValue)(sqlite3_context*),
void (*xInv)(sqlite3_context*,int,sqlite3_value**), void (*xInv)(sqlite3_context*,int,sqlite3_value**),
void(*xDestroy)(void*)); void(*xDestroy)(void*));
/* Version 3.26.0 and later */
const char *(*normalized_sql)(sqlite3_stmt*);
}; };
/* /*
@ -603,6 +606,8 @@ typedef int (*sqlite3_loadext_entry)(
#define sqlite3_str_value sqlite3_api->str_value #define sqlite3_str_value sqlite3_api->str_value
/* Version 3.25.0 and later */ /* Version 3.25.0 and later */
#define sqlite3_create_window_function sqlite3_api->create_window_function #define sqlite3_create_window_function sqlite3_api->create_window_function
/* Version 3.26.0 and later */
#define sqlite3_normalized_sql sqlite3_api->normalized_sql
#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)

View File

@ -4,7 +4,7 @@ cd $SCRIPT_DIR
export SQLITE3_LIB_DIR=$SCRIPT_DIR/sqlite3 export SQLITE3_LIB_DIR=$SCRIPT_DIR/sqlite3
# Download and extract amalgamation # Download and extract amalgamation
SQLITE=sqlite-amalgamation-3250200 SQLITE=sqlite-amalgamation-3260000
curl -O http://sqlite.org/2018/$SQLITE.zip curl -O http://sqlite.org/2018/$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
@ -22,5 +22,5 @@ find $SCRIPT_DIR/target -type f -name bindgen.rs -exec cp {} $SQLITE3_LIB_DIR/bi
# Sanity check # Sanity check
cd $SCRIPT_DIR/.. cd $SCRIPT_DIR/..
cargo update cargo update
cargo test --features "backup blob chrono functions limits load_extension serde_json trace bundled" cargo test --features "backup blob chrono functions limits load_extension serde_json trace vtab bundled"
echo 'You should increment the version in libsqlite3-sys/Cargo.toml' echo 'You should increment the version in libsqlite3-sys/Cargo.toml'

View File

@ -99,6 +99,8 @@ pub fn read_only_module<T: CreateVTab>(version: c_int) -> Module<T> {
xSavepoint: None, xSavepoint: None,
xRelease: None, xRelease: None,
xRollbackTo: None, xRollbackTo: None,
#[cfg(any(feature = "bundled", feature = "vtab_v3"))]
xShadowName: None,
}; };
Module { Module {
base: ffi_module, base: ffi_module,
@ -137,6 +139,8 @@ pub fn eponymous_only_module<T: VTab>(version: c_int) -> Module<T> {
xSavepoint: None, xSavepoint: None,
xRelease: None, xRelease: None,
xRollbackTo: None, xRollbackTo: None,
#[cfg(any(feature = "bundled", feature = "vtab_v3"))]
xShadowName: None,
}; };
Module { Module {
base: ffi_module, base: ffi_module,