Expand description
§SQLite Wasm Rust
Provide sqlite solution for wasm32-unknown-unknown
target.
§Usage
[dependencies]
# Using `bundled` default feature causes us to automatically compile
# and link in an up to date, requires the emscripten toolchain.
sqlite-wasm-rs = "0.3"
[dependencies]
# If you don't have the emscripten toolchain, you can use the `precompiled` feature.
sqlite-wasm-rs = { version = "0.3", default-features = false, features = ["precompiled"] }
[dependencies]
# Encryption is supported by SQLite3MultipleCiphers, need to enable the bundled feature.
# See <https://utelle.github.io/SQLite3MultipleCiphers>
sqlite-wasm-rs = { version = "0.3", features = ["sqlite3mc"] }
use sqlite_wasm_rs::{self as ffi, sahpool_vfs::install as install_opfs_vfs};
async fn open_db() {
// open with memory vfs
let mut db = std::ptr::null_mut();
let ret = unsafe {
ffi::sqlite3_open_v2(
c"mem.db".as_ptr().cast(),
&mut db as *mut _,
ffi::SQLITE_OPEN_READWRITE | ffi::SQLITE_OPEN_CREATE,
std::ptr::null()
)
};
assert_eq!(ffi::SQLITE_OK, ret);
// install opfs-sahpool persistent vfs and set as default vfs
install_opfs_vfs(None, true).await.unwrap();
// open with opfs-sahpool vfs
let mut db = std::ptr::null_mut();
let ret = unsafe {
ffi::sqlite3_open_v2(
c"opfs-sahpool.db".as_ptr().cast(),
&mut db as *mut _,
ffi::SQLITE_OPEN_READWRITE | ffi::SQLITE_OPEN_CREATE,
std::ptr::null()
)
};
assert_eq!(ffi::SQLITE_OK, ret);
}
§About VFS
The following vfs have been implemented:
memory
: as the default vfs, no additional conditions are required, store the database in memory.sahpool
: ported from sqlite-wasm, store the database in opfs.relaxed-idb
: store the database in blocks in indexed db.
Go to here
to check it out.
§About multithreading
This library is not thread-safe:
JsValue
is not cross-threaded, see https://github.com/rustwasm/wasm-bindgen/pull/955 for details.- sqlite is compiled with
-DSQLITE_THREADSAFE=0
§Use external libc
As mentioned above, sqlite is now directly linked to emscripten’s libc, but we provide the ability to customize libc, cargo provides a links
field that can be used to specify which library to link to.
We created a new sqlite-wasm-libc
library with no implementation and only a links = "libc"
configuration, and then with the help of overriding build scripts, you can overriding its configuration in your crate and link sqlite to your custom libc.
More see custom-libc
example.
§Why provide precompiled library
Since wasm32-unknown-unknown
does not have libc, emscripten is used here for compilation, otherwise we need to copy a bunch of c headers required for sqlite3 compilation, which is a bit of a hack for me. If sqlite3 is compiled at compile time, the emscripten toolchain is required, and we cannot assume that all users have it installed. (Believe me, because rust mainly supports the wasm32-unknown-unknown
target, most people do not have the emscripten toolchain). Considering that wasm is cross-platform, vendor compilation products are acceptable.
About security:
- You can specify the bundled feature to compile sqlite locally, which requires the emscripten toolchain.
- Currently all precompiled products are compiled and committed through Github Actions, which can be tracked, downloaded and compared.
Precompile Workflow | Change History | Actions
§Minimum supported Rust version (MSRV)
The minimal officially supported rustc version is 1.78.0
§Related Project
diesel
: A safe, extensible ORM and Query Builder for Rust.rusqlite
: Ergonomic bindings to SQLite for Rust.sqlite-wasm
: SQLite Wasm conveniently wrapped as an ES Module.sqlite-web-rs
: A SQLite WebAssembly backend for Diesel.wa-sqlite
: WebAssembly SQLite with support for browser storage extensions.SQLite3MultipleCiphers
: SQLite3 encryption extension with support for multiple ciphers
Modules§
- export
- To be compatible with previous versions.
- mem_vfs
- Memory VFS, used as the default VFS
- relaxed_
idb_ vfs - relaxed-idb vfs implementation
- sahpool_
vfs - opfs-sahpool vfs implementation, ported from sqlite-wasm
- utils
- Some tools for implementing VFS
Macros§
- bail
- Return error code if expr is true.
- check_
option - Unpack Option
. - check_
result - Unpack Ok
. - unused
- Mark unused parameter
Structs§
- Error
- Fts5
Context - Fts5
Extension Api - Fts5
Phrase Iter - Fts5
Tokenizer - fts5_
api - fts5_
tokenizer - fts5_
tokenizer_ v2 - sqlite3
- sqlite3_
api_ routines - sqlite3_
backup - sqlite3_
blob - sqlite3_
changegroup - sqlite3_
changeset_ iter - sqlite3_
context - sqlite3_
file - sqlite3_
index_ constraint - sqlite3_
index_ constraint_ usage - sqlite3_
index_ info - sqlite3_
index_ orderby - sqlite3_
io_ methods - sqlite3_
mem_ methods - sqlite3_
module - sqlite3_
mutex - sqlite3_
mutex_ methods - sqlite3_
pcache - sqlite3_
pcache_ methods - sqlite3_
pcache_ methods2 - sqlite3_
pcache_ page - sqlite3_
rebaser - sqlite3_
rtree_ geometry - sqlite3_
rtree_ query_ info - sqlite3_
session - sqlite3_
snapshot - sqlite3_
stmt - sqlite3_
str - sqlite3_
value - sqlite3_
vfs - sqlite3_
vtab - sqlite3_
vtab_ cursor
Enums§
- Error
Code - Error Codes
Constants§
- FTS5_
TOKENIZE_ AUX - FTS5_
TOKENIZE_ DOCUMENT - FTS5_
TOKENIZE_ PREFIX - FTS5_
TOKENIZE_ QUERY - FTS5_
TOKEN_ COLOCATED - FULLY_
WITHIN - NOT_
WITHIN - PARTLY_
WITHIN - SQLIT
E3_ TEXT - SQLITE_
ABORT - SQLITE_
ABORT_ ROLLBACK - SQLITE_
ACCESS_ EXISTS - SQLITE_
ACCESS_ READ - SQLITE_
ACCESS_ READWRITE - SQLITE_
ALTER_ TABLE - SQLITE_
ANALYZE - SQLITE_
ANY - SQLITE_
ATTACH - SQLITE_
AUTH - SQLITE_
AUTH_ USER - SQLITE_
BLOB - SQLITE_
BUSY - SQLITE_
BUSY_ RECOVERY - SQLITE_
BUSY_ SNAPSHOT - SQLITE_
BUSY_ TIMEOUT - SQLITE_
CANTOPEN - SQLITE_
CANTOPEN_ CONVPATH - SQLITE_
CANTOPEN_ DIRTYWAL - SQLITE_
CANTOPEN_ FULLPATH - SQLITE_
CANTOPEN_ ISDIR - SQLITE_
CANTOPEN_ NOTEMPDIR - SQLITE_
CANTOPEN_ SYMLINK - SQLITE_
CHANGESETAPPLY_ FKNOACTION - SQLITE_
CHANGESETAPPLY_ IGNORENOOP - SQLITE_
CHANGESETAPPLY_ INVERT - SQLITE_
CHANGESETAPPLY_ NOSAVEPOINT - SQLITE_
CHANGESETSTART_ INVERT - SQLITE_
CHANGESET_ ABORT - SQLITE_
CHANGESET_ CONFLICT - SQLITE_
CHANGESET_ CONSTRAINT - SQLITE_
CHANGESET_ DATA - SQLITE_
CHANGESET_ FOREIGN_ KEY - SQLITE_
CHANGESET_ NOTFOUND - SQLITE_
CHANGESET_ OMIT - SQLITE_
CHANGESET_ REPLACE - SQLITE_
CHECKPOINT_ FULL - SQLITE_
CHECKPOINT_ PASSIVE - SQLITE_
CHECKPOINT_ RESTART - SQLITE_
CHECKPOINT_ TRUNCATE - SQLITE_
CONFIG_ COVERING_ INDEX_ SCAN - SQLITE_
CONFIG_ GETMALLOC - SQLITE_
CONFIG_ GETMUTEX - SQLITE_
CONFIG_ GETPCACHE - SQLITE_
CONFIG_ GETPCACH E2 - SQLITE_
CONFIG_ HEAP - SQLITE_
CONFIG_ LOG - SQLITE_
CONFIG_ LOOKASIDE - SQLITE_
CONFIG_ MALLOC - SQLITE_
CONFIG_ MEMDB_ MAXSIZE - SQLITE_
CONFIG_ MEMSTATUS - SQLITE_
CONFIG_ MMAP_ SIZE - SQLITE_
CONFIG_ MULTITHREAD - SQLITE_
CONFIG_ MUTEX - SQLITE_
CONFIG_ PAGECACHE - SQLITE_
CONFIG_ PCACHE - SQLITE_
CONFIG_ PCACH E2 - SQLITE_
CONFIG_ PCACHE_ HDRSZ - SQLITE_
CONFIG_ PMASZ - SQLITE_
CONFIG_ ROWID_ IN_ VIEW - SQLITE_
CONFIG_ SCRATCH - SQLITE_
CONFIG_ SERIALIZED - SQLITE_
CONFIG_ SINGLETHREAD - SQLITE_
CONFIG_ SMALL_ MALLOC - SQLITE_
CONFIG_ SORTERREF_ SIZE - SQLITE_
CONFIG_ SQLLOG - SQLITE_
CONFIG_ STMTJRNL_ SPILL - SQLITE_
CONFIG_ URI - SQLITE_
CONFIG_ WIN32_ HEAPSIZE - SQLITE_
CONSTRAINT - SQLITE_
CONSTRAINT_ CHECK - SQLITE_
CONSTRAINT_ COMMITHOOK - SQLITE_
CONSTRAINT_ DATATYPE - SQLITE_
CONSTRAINT_ FOREIGNKEY - SQLITE_
CONSTRAINT_ FUNCTION - SQLITE_
CONSTRAINT_ NOTNULL - SQLITE_
CONSTRAINT_ PINNED - SQLITE_
CONSTRAINT_ PRIMARYKEY - SQLITE_
CONSTRAINT_ ROWID - SQLITE_
CONSTRAINT_ TRIGGER - SQLITE_
CONSTRAINT_ UNIQUE - SQLITE_
CONSTRAINT_ VTAB - SQLITE_
COPY - SQLITE_
CORRUPT - SQLITE_
CORRUPT_ INDEX - SQLITE_
CORRUPT_ SEQUENCE - SQLITE_
CORRUPT_ VTAB - SQLITE_
CREATE_ INDEX - SQLITE_
CREATE_ TABLE - SQLITE_
CREATE_ TEMP_ INDEX - SQLITE_
CREATE_ TEMP_ TABLE - SQLITE_
CREATE_ TEMP_ TRIGGER - SQLITE_
CREATE_ TEMP_ VIEW - SQLITE_
CREATE_ TRIGGER - SQLITE_
CREATE_ VIEW - SQLITE_
CREATE_ VTABLE - SQLITE_
DBCONFIG_ DEFENSIVE - SQLITE_
DBCONFIG_ DQS_ DDL - SQLITE_
DBCONFIG_ DQS_ DML - SQLITE_
DBCONFIG_ ENABLE_ ATTACH_ CREATE - SQLITE_
DBCONFIG_ ENABLE_ ATTACH_ WRITE - SQLITE_
DBCONFIG_ ENABLE_ COMMENTS - SQLITE_
DBCONFIG_ ENABLE_ FKEY - SQLITE_
DBCONFIG_ ENABLE_ FTS3_ TOKENIZER - SQLITE_
DBCONFIG_ ENABLE_ LOAD_ EXTENSION - SQLITE_
DBCONFIG_ ENABLE_ QPSG - SQLITE_
DBCONFIG_ ENABLE_ TRIGGER - SQLITE_
DBCONFIG_ ENABLE_ VIEW - SQLITE_
DBCONFIG_ LEGACY_ ALTER_ TABLE - SQLITE_
DBCONFIG_ LEGACY_ FILE_ FORMAT - SQLITE_
DBCONFIG_ LOOKASIDE - SQLITE_
DBCONFIG_ MAINDBNAME - SQLITE_
DBCONFIG_ MAX - SQLITE_
DBCONFIG_ NO_ CKPT_ ON_ CLOSE - SQLITE_
DBCONFIG_ RESET_ DATABASE - SQLITE_
DBCONFIG_ REVERSE_ SCANORDER - SQLITE_
DBCONFIG_ STMT_ SCANSTATUS - SQLITE_
DBCONFIG_ TRIGGER_ EQP - SQLITE_
DBCONFIG_ TRUSTED_ SCHEMA - SQLITE_
DBCONFIG_ WRITABLE_ SCHEMA - SQLITE_
DBSTATUS_ CACHE_ HIT - SQLITE_
DBSTATUS_ CACHE_ MISS - SQLITE_
DBSTATUS_ CACHE_ SPILL - SQLITE_
DBSTATUS_ CACHE_ USED - SQLITE_
DBSTATUS_ CACHE_ USED_ SHARED - SQLITE_
DBSTATUS_ CACHE_ WRITE - SQLITE_
DBSTATUS_ DEFERRED_ FKS - SQLITE_
DBSTATUS_ LOOKASIDE_ HIT - SQLITE_
DBSTATUS_ LOOKASIDE_ MISS_ FULL - SQLITE_
DBSTATUS_ LOOKASIDE_ MISS_ SIZE - SQLITE_
DBSTATUS_ LOOKASIDE_ USED - SQLITE_
DBSTATUS_ MAX - SQLITE_
DBSTATUS_ SCHEMA_ USED - SQLITE_
DBSTATUS_ STMT_ USED - SQLITE_
DELETE - SQLITE_
DENY - SQLITE_
DESERIALIZE_ FREEONCLOSE - SQLITE_
DESERIALIZE_ READONLY - SQLITE_
DESERIALIZE_ RESIZEABLE - SQLITE_
DETACH - SQLITE_
DETERMINISTIC - SQLITE_
DIRECTONLY - SQLITE_
DONE - SQLITE_
DROP_ INDEX - SQLITE_
DROP_ TABLE - SQLITE_
DROP_ TEMP_ INDEX - SQLITE_
DROP_ TEMP_ TABLE - SQLITE_
DROP_ TEMP_ TRIGGER - SQLITE_
DROP_ TEMP_ VIEW - SQLITE_
DROP_ TRIGGER - SQLITE_
DROP_ VIEW - SQLITE_
DROP_ VTABLE - SQLITE_
EMPTY - SQLITE_
ERROR - SQLITE_
ERROR_ MISSING_ COLLSEQ - SQLITE_
ERROR_ RETRY - SQLITE_
ERROR_ SNAPSHOT - SQLITE_
FAIL - SQLITE_
FCNTL_ BEGIN_ ATOMIC_ WRITE - SQLITE_
FCNTL_ BUSYHANDLER - SQLITE_
FCNTL_ CHUNK_ SIZE - SQLITE_
FCNTL_ CKPT_ DONE - SQLITE_
FCNTL_ CKPT_ START - SQLITE_
FCNTL_ CKSM_ FILE - SQLITE_
FCNTL_ COMMIT_ ATOMIC_ WRITE - SQLITE_
FCNTL_ COMMIT_ PHASETWO - SQLITE_
FCNTL_ DATA_ VERSION - SQLITE_
FCNTL_ EXTERNAL_ READER - SQLITE_
FCNTL_ FILE_ POINTER - SQLITE_
FCNTL_ GET_ LOCKPROXYFILE - SQLITE_
FCNTL_ HAS_ MOVED - SQLITE_
FCNTL_ JOURNAL_ POINTER - SQLITE_
FCNTL_ LAST_ ERRNO - SQLITE_
FCNTL_ LOCKSTATE - SQLITE_
FCNTL_ LOCK_ TIMEOUT - SQLITE_
FCNTL_ MMAP_ SIZE - SQLITE_
FCNTL_ NULL_ IO - SQLITE_
FCNTL_ OVERWRITE - SQLITE_
FCNTL_ PDB - SQLITE_
FCNTL_ PERSIST_ WAL - SQLITE_
FCNTL_ POWERSAFE_ OVERWRITE - SQLITE_
FCNTL_ PRAGMA - SQLITE_
FCNTL_ RBU - SQLITE_
FCNTL_ RESERVE_ BYTES - SQLITE_
FCNTL_ RESET_ CACHE - SQLITE_
FCNTL_ ROLLBACK_ ATOMIC_ WRITE - SQLITE_
FCNTL_ SET_ LOCKPROXYFILE - SQLITE_
FCNTL_ SIZE_ HINT - SQLITE_
FCNTL_ SIZE_ LIMIT - SQLITE_
FCNTL_ SYNC - SQLITE_
FCNTL_ SYNC_ OMITTED - SQLITE_
FCNTL_ TEMPFILENAME - SQLITE_
FCNTL_ TRACE - SQLITE_
FCNTL_ VFSNAME - SQLITE_
FCNTL_ VFS_ POINTER - SQLITE_
FCNTL_ WAL_ BLOCK - SQLITE_
FCNTL_ WIN32_ AV_ RETRY - SQLITE_
FCNTL_ WIN32_ GET_ HANDLE - SQLITE_
FCNTL_ WIN32_ SET_ HANDLE - SQLITE_
FCNTL_ ZIPVFS - SQLITE_
FLOAT - SQLITE_
FORMAT - SQLITE_
FULL - SQLITE_
FUNCTION - SQLITE_
GET_ LOCKPROXYFILE - SQLITE_
IGNORE - SQLITE_
INDEX_ CONSTRAINT_ EQ - SQLITE_
INDEX_ CONSTRAINT_ FUNCTION - SQLITE_
INDEX_ CONSTRAINT_ GE - SQLITE_
INDEX_ CONSTRAINT_ GLOB - SQLITE_
INDEX_ CONSTRAINT_ GT - SQLITE_
INDEX_ CONSTRAINT_ IS - SQLITE_
INDEX_ CONSTRAINT_ ISNOT - SQLITE_
INDEX_ CONSTRAINT_ ISNOTNULL - SQLITE_
INDEX_ CONSTRAINT_ ISNULL - SQLITE_
INDEX_ CONSTRAINT_ LE - SQLITE_
INDEX_ CONSTRAINT_ LIKE - SQLITE_
INDEX_ CONSTRAINT_ LIMIT - SQLITE_
INDEX_ CONSTRAINT_ LT - SQLITE_
INDEX_ CONSTRAINT_ MATCH - SQLITE_
INDEX_ CONSTRAINT_ NE - SQLITE_
INDEX_ CONSTRAINT_ OFFSET - SQLITE_
INDEX_ CONSTRAINT_ REGEXP - SQLITE_
INDEX_ SCAN_ HEX - SQLITE_
INDEX_ SCAN_ UNIQUE - SQLITE_
INNOCUOUS - SQLITE_
INSERT - SQLITE_
INTEGER - SQLITE_
INTERNAL - SQLITE_
INTERRUPT - SQLITE_
IOCAP_ ATOMIC - SQLITE_
IOCAP_ ATOMI C1K - SQLITE_
IOCAP_ ATOMI C2K - SQLITE_
IOCAP_ ATOMI C4K - SQLITE_
IOCAP_ ATOMI C8K - SQLITE_
IOCAP_ ATOMI C16K - SQLITE_
IOCAP_ ATOMI C32K - SQLITE_
IOCAP_ ATOMI C64K - SQLITE_
IOCAP_ ATOMI C512 - SQLITE_
IOCAP_ BATCH_ ATOMIC - SQLITE_
IOCAP_ IMMUTABLE - SQLITE_
IOCAP_ POWERSAFE_ OVERWRITE - SQLITE_
IOCAP_ SAFE_ APPEND - SQLITE_
IOCAP_ SEQUENTIAL - SQLITE_
IOCAP_ SUBPAGE_ READ - SQLITE_
IOCAP_ UNDELETABLE_ WHEN_ OPEN - SQLITE_
IOERR - SQLITE_
IOERR_ ACCESS - SQLITE_
IOERR_ AUTH - SQLITE_
IOERR_ BEGIN_ ATOMIC - SQLITE_
IOERR_ BLOCKED - SQLITE_
IOERR_ CHECKRESERVEDLOCK - SQLITE_
IOERR_ CLOSE - SQLITE_
IOERR_ COMMIT_ ATOMIC - SQLITE_
IOERR_ CONVPATH - SQLITE_
IOERR_ CORRUPTFS - SQLITE_
IOERR_ DATA - SQLITE_
IOERR_ DELETE - SQLITE_
IOERR_ DELETE_ NOENT - SQLITE_
IOERR_ DIR_ CLOSE - SQLITE_
IOERR_ DIR_ FSYNC - SQLITE_
IOERR_ FSTAT - SQLITE_
IOERR_ FSYNC - SQLITE_
IOERR_ GETTEMPPATH - SQLITE_
IOERR_ IN_ PAGE - SQLITE_
IOERR_ LOCK - SQLITE_
IOERR_ MMAP - SQLITE_
IOERR_ NOMEM - SQLITE_
IOERR_ RDLOCK - SQLITE_
IOERR_ READ - SQLITE_
IOERR_ ROLLBACK_ ATOMIC - SQLITE_
IOERR_ SEEK - SQLITE_
IOERR_ SHMLOCK - SQLITE_
IOERR_ SHMMAP - SQLITE_
IOERR_ SHMOPEN - SQLITE_
IOERR_ SHMSIZE - SQLITE_
IOERR_ SHORT_ READ - SQLITE_
IOERR_ TRUNCATE - SQLITE_
IOERR_ UNLOCK - SQLITE_
IOERR_ VNODE - SQLITE_
IOERR_ WRITE - SQLITE_
LAST_ ERRNO - SQLITE_
LIMIT_ ATTACHED - SQLITE_
LIMIT_ COLUMN - SQLITE_
LIMIT_ COMPOUND_ SELECT - SQLITE_
LIMIT_ EXPR_ DEPTH - SQLITE_
LIMIT_ FUNCTION_ ARG - SQLITE_
LIMIT_ LENGTH - SQLITE_
LIMIT_ LIKE_ PATTERN_ LENGTH - SQLITE_
LIMIT_ SQL_ LENGTH - SQLITE_
LIMIT_ TRIGGER_ DEPTH - SQLITE_
LIMIT_ VARIABLE_ NUMBER - SQLITE_
LIMIT_ VDBE_ OP - SQLITE_
LIMIT_ WORKER_ THREADS - SQLITE_
LOCKED - SQLITE_
LOCKED_ SHAREDCACHE - SQLITE_
LOCKED_ VTAB - SQLITE_
LOCK_ EXCLUSIVE - SQLITE_
LOCK_ NONE - SQLITE_
LOCK_ PENDING - SQLITE_
LOCK_ RESERVED - SQLITE_
LOCK_ SHARED - SQLITE_
MISMATCH - SQLITE_
MISUSE - SQLITE_
MUTEX_ FAST - SQLITE_
MUTEX_ RECURSIVE - SQLITE_
MUTEX_ STATIC_ APP1 - SQLITE_
MUTEX_ STATIC_ APP2 - SQLITE_
MUTEX_ STATIC_ APP3 - SQLITE_
MUTEX_ STATIC_ LRU - SQLITE_
MUTEX_ STATIC_ LRU2 - SQLITE_
MUTEX_ STATIC_ MAIN - SQLITE_
MUTEX_ STATIC_ MASTER - SQLITE_
MUTEX_ STATIC_ MEM - SQLITE_
MUTEX_ STATIC_ MEM2 - SQLITE_
MUTEX_ STATIC_ OPEN - SQLITE_
MUTEX_ STATIC_ PMEM - SQLITE_
MUTEX_ STATIC_ PRNG - SQLITE_
MUTEX_ STATIC_ VFS1 - SQLITE_
MUTEX_ STATIC_ VFS2 - SQLITE_
MUTEX_ STATIC_ VFS3 - SQLITE_
NOLFS - SQLITE_
NOMEM - SQLITE_
NOTADB - SQLITE_
NOTFOUND - SQLITE_
NOTICE - SQLITE_
NOTICE_ RBU - SQLITE_
NOTICE_ RECOVER_ ROLLBACK - SQLITE_
NOTICE_ RECOVER_ WAL - SQLITE_
NULL - SQLITE_
OK - SQLITE_
OK_ LOAD_ PERMANENTLY - SQLITE_
OK_ SYMLINK - SQLITE_
OPEN_ AUTOPROXY - SQLITE_
OPEN_ CREATE - SQLITE_
OPEN_ DELETEONCLOSE - SQLITE_
OPEN_ EXCLUSIVE - SQLITE_
OPEN_ EXRESCODE - SQLITE_
OPEN_ FULLMUTEX - SQLITE_
OPEN_ MAIN_ DB - SQLITE_
OPEN_ MAIN_ JOURNAL - SQLITE_
OPEN_ MASTER_ JOURNAL - SQLITE_
OPEN_ MEMORY - SQLITE_
OPEN_ NOFOLLOW - SQLITE_
OPEN_ NOMUTEX - SQLITE_
OPEN_ PRIVATECACHE - SQLITE_
OPEN_ READONLY - SQLITE_
OPEN_ READWRITE - SQLITE_
OPEN_ SHAREDCACHE - SQLITE_
OPEN_ SUBJOURNAL - SQLITE_
OPEN_ SUPER_ JOURNAL - SQLITE_
OPEN_ TEMP_ DB - SQLITE_
OPEN_ TEMP_ JOURNAL - SQLITE_
OPEN_ TRANSIENT_ DB - SQLITE_
OPEN_ URI - SQLITE_
OPEN_ WAL - SQLITE_
PERM - SQLITE_
PRAGMA - SQLITE_
PREPARE_ DONT_ LOG - SQLITE_
PREPARE_ NORMALIZE - SQLITE_
PREPARE_ NO_ VTAB - SQLITE_
PREPARE_ PERSISTENT - SQLITE_
PROTOCOL - SQLITE_
RANGE - SQLITE_
READ - SQLITE_
READONLY - SQLITE_
READONLY_ CANTINIT - SQLITE_
READONLY_ CANTLOCK - SQLITE_
READONLY_ DBMOVED - SQLITE_
READONLY_ DIRECTORY - SQLITE_
READONLY_ RECOVERY - SQLITE_
READONLY_ ROLLBACK - SQLITE_
RECURSIVE - SQLITE_
REINDEX - SQLITE_
REPLACE - SQLITE_
RESULT_ SUBTYPE - SQLITE_
ROLLBACK - SQLITE_
ROW - SQLITE_
SAVEPOINT - SQLITE_
SCANSTAT_ COMPLEX - SQLITE_
SCANSTAT_ EST - SQLITE_
SCANSTAT_ EXPLAIN - SQLITE_
SCANSTAT_ NAME - SQLITE_
SCANSTAT_ NCYCLE - SQLITE_
SCANSTAT_ NLOOP - SQLITE_
SCANSTAT_ NVISIT - SQLITE_
SCANSTAT_ PARENTID - SQLITE_
SCANSTAT_ SELECTID - SQLITE_
SCHEMA - SQLITE_
SELECT - SQLITE_
SELFORDE R1 - SQLITE_
SERIALIZE_ NOCOPY - SQLITE_
SESSION_ CONFIG_ STRMSIZE - SQLITE_
SESSION_ OBJCONFIG_ ROWID - SQLITE_
SESSION_ OBJCONFIG_ SIZE - SQLITE_
SET_ LOCKPROXYFILE - SQLITE_
SHM_ EXCLUSIVE - SQLITE_
SHM_ LOCK - SQLITE_
SHM_ NLOCK - SQLITE_
SHM_ SHARED - SQLITE_
SHM_ UNLOCK - SQLITE_
SOURCE_ ID - SQLITE_
STATUS_ MALLOC_ COUNT - SQLITE_
STATUS_ MALLOC_ SIZE - SQLITE_
STATUS_ MEMORY_ USED - SQLITE_
STATUS_ PAGECACHE_ OVERFLOW - SQLITE_
STATUS_ PAGECACHE_ SIZE - SQLITE_
STATUS_ PAGECACHE_ USED - SQLITE_
STATUS_ PARSER_ STACK - SQLITE_
STATUS_ SCRATCH_ OVERFLOW - SQLITE_
STATUS_ SCRATCH_ SIZE - SQLITE_
STATUS_ SCRATCH_ USED - SQLITE_
STMTSTATUS_ AUTOINDEX - SQLITE_
STMTSTATUS_ FILTER_ HIT - SQLITE_
STMTSTATUS_ FILTER_ MISS - SQLITE_
STMTSTATUS_ FULLSCAN_ STEP - SQLITE_
STMTSTATUS_ MEMUSED - SQLITE_
STMTSTATUS_ REPREPARE - SQLITE_
STMTSTATUS_ RUN - SQLITE_
STMTSTATUS_ SORT - SQLITE_
STMTSTATUS_ VM_ STEP - SQLITE_
SUBTYPE - SQLITE_
SYNC_ DATAONLY - SQLITE_
SYNC_ FULL - SQLITE_
SYNC_ NORMAL - SQLITE_
TESTCTRL_ ALWAYS - SQLITE_
TESTCTRL_ ASSERT - SQLITE_
TESTCTRL_ BENIGN_ MALLOC_ HOOKS - SQLITE_
TESTCTRL_ BITVEC_ TEST - SQLITE_
TESTCTRL_ BYTEORDER - SQLITE_
TESTCTRL_ EXPLAIN_ STMT - SQLITE_
TESTCTRL_ EXTRA_ SCHEMA_ CHECKS - SQLITE_
TESTCTRL_ FAULT_ INSTALL - SQLITE_
TESTCTRL_ FIRST - SQLITE_
TESTCTRL_ FK_ NO_ ACTION - SQLITE_
TESTCTRL_ GETOPT - SQLITE_
TESTCTRL_ IMPOSTER - SQLITE_
TESTCTRL_ INTERNAL_ FUNCTIONS - SQLITE_
TESTCTRL_ ISINIT - SQLITE_
TESTCTRL_ ISKEYWORD - SQLITE_
TESTCTRL_ JSON_ SELFCHECK - SQLITE_
TESTCTRL_ LAST - SQLITE_
TESTCTRL_ LOCALTIME_ FAULT - SQLITE_
TESTCTRL_ LOGEST - SQLITE_
TESTCTRL_ NEVER_ CORRUPT - SQLITE_
TESTCTRL_ ONCE_ RESET_ THRESHOLD - SQLITE_
TESTCTRL_ OPTIMIZATIONS - SQLITE_
TESTCTRL_ PARSER_ COVERAGE - SQLITE_
TESTCTRL_ PENDING_ BYTE - SQLITE_
TESTCTRL_ PRNG_ RESET - SQLITE_
TESTCTRL_ PRNG_ RESTORE - SQLITE_
TESTCTRL_ PRNG_ SAVE - SQLITE_
TESTCTRL_ PRNG_ SEED - SQLITE_
TESTCTRL_ RESERVE - SQLITE_
TESTCTRL_ RESULT_ INTREAL - SQLITE_
TESTCTRL_ SCRATCHMALLOC - SQLITE_
TESTCTRL_ SEEK_ COUNT - SQLITE_
TESTCTRL_ SORTER_ MMAP - SQLITE_
TESTCTRL_ TRACEFLAGS - SQLITE_
TESTCTRL_ TUNE - SQLITE_
TESTCTRL_ USELONGDOUBLE - SQLITE_
TESTCTRL_ VDBE_ COVERAGE - SQLITE_
TEXT - SQLITE_
TOOBIG - SQLITE_
TRACE_ CLOSE - SQLITE_
TRACE_ PROFILE - SQLITE_
TRACE_ ROW - SQLITE_
TRACE_ STMT - SQLITE_
TRANSACTION - SQLITE_
TXN_ NONE - SQLITE_
TXN_ READ - SQLITE_
TXN_ WRITE - SQLITE_
UPDATE - SQLITE_
UTF8 - SQLITE_
UTF16 - SQLITE_
UTF16BE - SQLITE_
UTF16LE - SQLITE_
UTF16_ ALIGNED - SQLITE_
VERSION - SQLITE_
VERSION_ NUMBER - SQLITE_
VTAB_ CONSTRAINT_ SUPPORT - SQLITE_
VTAB_ DIRECTONLY - SQLITE_
VTAB_ INNOCUOUS - SQLITE_
VTAB_ USES_ ALL_ SCHEMAS - SQLITE_
WARNING - SQLITE_
WARNING_ AUTOINDEX - SQLITE_
WIN32_ DATA_ DIRECTORY_ TYPE - SQLITE_
WIN32_ TEMP_ DIRECTORY_ TYPE
Statics§
Functions§
- SQLITE_
STATIC - SQLITE_
TRANSIENT - code_
to_ str - sqlite3_
aggregate_ ⚠context - sqlite3_
auto_ ⚠extension - sqlite3_
autovacuum_ ⚠pages - sqlite3_
backup_ ⚠finish - sqlite3_
backup_ ⚠init - sqlite3_
backup_ ⚠pagecount - sqlite3_
backup_ ⚠remaining - sqlite3_
backup_ ⚠step - sqlite3_
bind_ ⚠blob - sqlite3_
bind_ ⚠blob64 - sqlite3_
bind_ ⚠double - sqlite3_
bind_ ⚠int - sqlite3_
bind_ ⚠int64 - sqlite3_
bind_ ⚠null - sqlite3_
bind_ ⚠parameter_ count - sqlite3_
bind_ ⚠parameter_ index - sqlite3_
bind_ ⚠parameter_ name - sqlite3_
bind_ ⚠pointer - sqlite3_
bind_ ⚠text - sqlite3_
bind_ ⚠text64 - sqlite3_
bind_ ⚠value - sqlite3_
bind_ ⚠zeroblob - sqlite3_
bind_ ⚠zeroblob64 - sqlite3_
blob_ ⚠bytes - sqlite3_
blob_ ⚠close - sqlite3_
blob_ ⚠open - sqlite3_
blob_ ⚠read - sqlite3_
blob_ ⚠reopen - sqlite3_
blob_ ⚠write - sqlite3_
busy_ ⚠handler - sqlite3_
busy_ ⚠timeout - sqlite3_
cancel_ ⚠auto_ extension - sqlite3_
changes ⚠ - sqlite3_
changes64 ⚠ - sqlite3_
clear_ ⚠bindings - sqlite3_
close ⚠ - sqlite3_
collation_ ⚠needed - sqlite3_
column_ ⚠blob - sqlite3_
column_ ⚠bytes - sqlite3_
column_ ⚠count - sqlite3_
column_ ⚠database_ name - sqlite3_
column_ ⚠decltype - sqlite3_
column_ ⚠double - sqlite3_
column_ ⚠int - sqlite3_
column_ ⚠int64 - sqlite3_
column_ ⚠name - sqlite3_
column_ ⚠origin_ name - sqlite3_
column_ ⚠table_ name - sqlite3_
column_ ⚠text - sqlite3_
column_ ⚠type - sqlite3_
column_ ⚠value - sqlite3_
commit_ ⚠hook - sqlite3_
compileoption_ ⚠get - sqlite3_
compileoption_ ⚠used - sqlite3_
complete ⚠ - sqlite3_
config ⚠ - sqlite3_
context_ ⚠db_ handle - sqlite3_
create_ ⚠collation_ v2 - sqlite3_
create_ ⚠filename - sqlite3_
create_ ⚠function_ v2 - sqlite3_
create_ ⚠module_ v2 - sqlite3_
create_ ⚠window_ function - sqlite3_
data_ ⚠count - sqlite3_
database_ ⚠file_ object - sqlite3_
db_ ⚠cacheflush - sqlite3_
db_ ⚠config - sqlite3_
db_ ⚠filename - sqlite3_
db_ ⚠handle - sqlite3_
db_ ⚠mutex - sqlite3_
db_ ⚠name - sqlite3_
db_ ⚠readonly - sqlite3_
db_ ⚠release_ memory - sqlite3_
db_ ⚠status - sqlite3_
declare_ ⚠vtab - sqlite3_
deserialize ⚠ - sqlite3_
drop_ ⚠modules - sqlite3_
enable_ ⚠shared_ cache - sqlite3_
errcode ⚠ - sqlite3_
errmsg ⚠ - sqlite3_
error_ ⚠offset - sqlite3_
errstr ⚠ - sqlite3_
exec ⚠ - sqlite3_
expanded_ ⚠sql - sqlite3_
extended_ ⚠errcode - sqlite3_
extended_ ⚠result_ codes - sqlite3_
file_ ⚠control - sqlite3_
filename_ ⚠database - sqlite3_
filename_ ⚠journal - sqlite3_
filename_ ⚠wal - sqlite3_
finalize ⚠ - sqlite3_
free ⚠ - sqlite3_
free_ ⚠filename - sqlite3_
free_ ⚠table - sqlite3_
get_ ⚠autocommit - sqlite3_
get_ ⚠auxdata - sqlite3_
get_ ⚠clientdata - sqlite3_
get_ ⚠table - sqlite3_
hard_ ⚠heap_ limit64 - sqlite3_
initialize ⚠ - sqlite3_
interrupt ⚠ - sqlite3_
is_ ⚠interrupted - sqlite3_
keyword_ ⚠check - sqlite3_
keyword_ ⚠count - sqlite3_
keyword_ ⚠name - sqlite3_
last_ ⚠insert_ rowid - sqlite3_
libversion ⚠ - sqlite3_
libversion_ ⚠number - sqlite3_
limit ⚠ - sqlite3_
log ⚠ - sqlite3_
malloc ⚠ - sqlite3_
malloc64 ⚠ - sqlite3_
memory_ ⚠highwater - sqlite3_
memory_ ⚠used - sqlite3_
mprintf ⚠ - sqlite3_
msize ⚠ - sqlite3_
mutex_ ⚠alloc - sqlite3_
mutex_ ⚠enter - sqlite3_
mutex_ ⚠free - sqlite3_
mutex_ ⚠held - sqlite3_
mutex_ ⚠leave - sqlite3_
mutex_ ⚠notheld - sqlite3_
mutex_ ⚠try - sqlite3_
next_ ⚠stmt - sqlite3_
open ⚠ - sqlite3_
open_ ⚠v2 - sqlite3_
os_ ⚠end - sqlite3_
os_ ⚠init - sqlite3_
overload_ ⚠function - sqlite3_
prepare_ ⚠v2 - sqlite3_
prepare_ ⚠v3 - sqlite3_
preupdate_ ⚠blobwrite - sqlite3_
preupdate_ ⚠count - sqlite3_
preupdate_ ⚠depth - sqlite3_
preupdate_ ⚠hook - sqlite3_
preupdate_ ⚠new - sqlite3_
preupdate_ ⚠old - sqlite3_
progress_ ⚠handler - sqlite3_
randomness ⚠ - sqlite3_
realloc ⚠ - sqlite3_
realloc64 ⚠ - sqlite3_
release_ ⚠memory - sqlite3_
reset ⚠ - sqlite3_
reset_ ⚠auto_ extension - sqlite3_
result_ ⚠blob - sqlite3_
result_ ⚠blob64 - sqlite3_
result_ ⚠double - sqlite3_
result_ ⚠error - sqlite3_
result_ ⚠error_ code - sqlite3_
result_ ⚠error_ nomem - sqlite3_
result_ ⚠error_ toobig - sqlite3_
result_ ⚠int - sqlite3_
result_ ⚠int64 - sqlite3_
result_ ⚠null - sqlite3_
result_ ⚠pointer - sqlite3_
result_ ⚠subtype - sqlite3_
result_ ⚠text - sqlite3_
result_ ⚠text64 - sqlite3_
result_ ⚠value - sqlite3_
result_ ⚠zeroblob - sqlite3_
result_ ⚠zeroblob64 - sqlite3_
rollback_ ⚠hook - sqlite3_
rtree_ ⚠geometry_ callback - sqlite3_
rtree_ ⚠query_ callback - sqlite3_
serialize ⚠ - sqlite3_
set_ ⚠authorizer - sqlite3_
set_ ⚠auxdata - sqlite3_
set_ ⚠clientdata - sqlite3_
set_ ⚠last_ insert_ rowid - sqlite3_
shutdown ⚠ - sqlite3_
sleep ⚠ - sqlite3_
snapshot_ ⚠cmp - sqlite3_
snapshot_ ⚠free - sqlite3_
snapshot_ ⚠get - sqlite3_
snapshot_ ⚠open - sqlite3_
snapshot_ ⚠recover - sqlite3_
snprintf ⚠ - sqlite3_
soft_ ⚠heap_ limit - sqlite3_
soft_ ⚠heap_ limit64 - sqlite3_
sourceid ⚠ - sqlite3_
sql ⚠ - sqlite3_
status ⚠ - sqlite3_
status64 ⚠ - sqlite3_
step ⚠ - sqlite3_
stmt_ ⚠busy - sqlite3_
stmt_ ⚠explain - sqlite3_
stmt_ ⚠isexplain - sqlite3_
stmt_ ⚠readonly - sqlite3_
stmt_ ⚠scanstatus - sqlite3_
stmt_ ⚠scanstatus_ reset - sqlite3_
stmt_ ⚠scanstatus_ v2 - sqlite3_
stmt_ ⚠status - sqlite3_
str_ ⚠append - sqlite3_
str_ ⚠appendall - sqlite3_
str_ ⚠appendchar - sqlite3_
str_ ⚠appendf - sqlite3_
str_ ⚠errcode - sqlite3_
str_ ⚠finish - sqlite3_
str_ ⚠length - sqlite3_
str_ ⚠new - sqlite3_
str_ ⚠reset - sqlite3_
str_ ⚠value - sqlite3_
strglob ⚠ - sqlite3_
stricmp ⚠ - sqlite3_
strlike ⚠ - sqlite3_
strnicmp ⚠ - sqlite3_
system_ ⚠errno - sqlite3_
table_ ⚠column_ metadata - sqlite3_
test_ ⚠control - sqlite3_
threadsafe ⚠ - sqlite3_
total_ ⚠changes - sqlite3_
total_ ⚠changes64 - sqlite3_
trace_ ⚠v2 - sqlite3_
txn_ ⚠state - sqlite3_
unlock_ ⚠notify - sqlite3_
update_ ⚠hook - sqlite3_
uri_ ⚠boolean - sqlite3_
uri_ ⚠int64 - sqlite3_
uri_ ⚠key - sqlite3_
uri_ ⚠parameter - sqlite3_
user_ ⚠data - sqlite3_
value_ ⚠blob - sqlite3_
value_ ⚠bytes - sqlite3_
value_ ⚠double - sqlite3_
value_ ⚠dup - sqlite3_
value_ ⚠encoding - sqlite3_
value_ ⚠free - sqlite3_
value_ ⚠frombind - sqlite3_
value_ ⚠int - sqlite3_
value_ ⚠int64 - sqlite3_
value_ ⚠nochange - sqlite3_
value_ ⚠numeric_ type - sqlite3_
value_ ⚠pointer - sqlite3_
value_ ⚠subtype - sqlite3_
value_ ⚠text - sqlite3_
value_ ⚠type - sqlite3_
vfs_ ⚠find - sqlite3_
vfs_ ⚠register - sqlite3_
vfs_ ⚠unregister - sqlite3_
vtab_ ⚠collation - sqlite3_
vtab_ ⚠config - sqlite3_
vtab_ ⚠distinct - sqlite3_
vtab_ ⚠in - sqlite3_
vtab_ ⚠in_ first - sqlite3_
vtab_ ⚠in_ next - sqlite3_
vtab_ ⚠nochange - sqlite3_
vtab_ ⚠on_ conflict - sqlite3_
vtab_ ⚠rhs_ value - sqlite3_
wal_ ⚠autocheckpoint - sqlite3_
wal_ ⚠checkpoint - sqlite3_
wal_ ⚠checkpoint_ v2 - sqlite3_
wal_ ⚠hook - sqlite3_
win32_ ⚠set_ directory - sqlite3_
win32_ ⚠set_ directory8 - sqlite3changegroup_
add ⚠ - sqlite3changegroup_
add_ ⚠change - sqlite3changegroup_
add_ ⚠strm - sqlite3changegroup_
delete ⚠ - sqlite3changegroup_
new ⚠ - sqlite3changegroup_
output ⚠ - sqlite3changegroup_
output_ ⚠strm - sqlite3changegroup_
schema ⚠ - sqlite3changeset_
apply ⚠ - sqlite3changeset_
apply_ ⚠strm - sqlite3changeset_
apply_ ⚠v2 - sqlite3changeset_
apply_ ⚠v2_ strm - sqlite3changeset_
concat ⚠ - sqlite3changeset_
concat_ ⚠strm - sqlite3changeset_
conflict ⚠ - sqlite3changeset_
finalize ⚠ - sqlite3changeset_
fk_ ⚠conflicts - sqlite3changeset_
invert ⚠ - sqlite3changeset_
invert_ ⚠strm - sqlite3changeset_
new ⚠ - sqlite3changeset_
next ⚠ - sqlite3changeset_
old ⚠ - sqlite3changeset_
op ⚠ - sqlite3changeset_
pk ⚠ - sqlite3changeset_
start ⚠ - sqlite3changeset_
start_ ⚠strm - sqlite3changeset_
start_ ⚠v2 - sqlite3changeset_
start_ ⚠v2_ strm - sqlite3changeset_
upgrade ⚠ - sqlite3rebaser_
configure ⚠ - sqlite3rebaser_
create ⚠ - sqlite3rebaser_
delete ⚠ - sqlite3rebaser_
rebase ⚠ - sqlite3rebaser_
rebase_ ⚠strm - sqlite3session_
attach ⚠ - sqlite3session_
changeset ⚠ - sqlite3session_
changeset_ ⚠size - sqlite3session_
changeset_ ⚠strm - sqlite3session_
config ⚠ - sqlite3session_
create ⚠ - sqlite3session_
delete ⚠ - sqlite3session_
diff ⚠ - sqlite3session_
enable ⚠ - sqlite3session_
indirect ⚠ - sqlite3session_
isempty ⚠ - sqlite3session_
memory_ ⚠used - sqlite3session_
object_ ⚠config - sqlite3session_
patchset ⚠ - sqlite3session_
patchset_ ⚠strm - sqlite3session_
table_ ⚠filter