Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.

etc.c.sqlite3

enum string SQLITE_VERSION;

enum int SQLITE_VERSION_NUMBER;

enum string SQLITE_SOURCE_ID;

CAPI3REF Compile-Time Library Version Numbers

immutable(char)* sqlite3_version;

nothrow immutable(char)* sqlite3_libversion();

nothrow immutable(char)* sqlite3_sourceid();

nothrow int sqlite3_libversion_number();

CAPI3REF Run-Time Library Version Numbers

nothrow int sqlite3_compileoption_used(const char* zOptName);

nothrow immutable(char)* sqlite3_compileoption_get(int N);

CAPI3REF Run-Time Library Compilation Options Diagnostics

nothrow int sqlite3_threadsafe();

CAPI3REF Test To See If The Library Is Threadsafe

struct sqlite3;

CAPI3REF Database Connection Handle

alias sqlite3_int64 = long;
alias sqlite3_uint64 = ulong;
nothrow int sqlite3_close(sqlite3*);

CAPI3REF Closing A Database Connection

alias sqlite3_callback = extern (C) int function(void*, int, char**, char**) nothrow;
The type for a callback function. This is legacy and deprecated. It is included for historical compatibility and is not documented.
nothrow int sqlite3_exec(sqlite3*, const(char)* sql, int function(void*, int, char**, char**) callback, void*, char** errmsg);

CAPI3REF One-Step Query Execution Interface

SQLITE_OK
Successful result
SQLITE_ERROR
Ditto
Generic error
SQLITE_INTERNAL
Internal logic error in SQLite
SQLITE_PERM
Access permission denied
SQLITE_ABORT
Callback routine requested an abort
SQLITE_BUSY
The database file is locked
SQLITE_LOCKED
A table in the database is locked
SQLITE_NOMEM
A malloc() failed
SQLITE_READONLY
Attempt to write a readonly database
SQLITE_INTERRUPT
Operation terminated by sqlite3_interrupt()
SQLITE_IOERR
Some kind of disk I/O error occurred
SQLITE_CORRUPT
The database disk image is malformed
SQLITE_NOTFOUND
Unknown opcode in sqlite3_file_control()
SQLITE_FULL
Insertion failed because database is full
SQLITE_CANTOPEN
Unable to open the database file
SQLITE_PROTOCOL
Database lock protocol error
SQLITE_EMPTY
Internal use only
SQLITE_SCHEMA
The database schema changed
SQLITE_TOOBIG
String or BLOB exceeds size limit
SQLITE_CONSTRAINT
Abort due to constraint violation
SQLITE_MISMATCH
Data type mismatch
SQLITE_MISUSE
Library used incorrectly
SQLITE_NOLFS
Uses OS features not supported on host
SQLITE_AUTH
Authorization denied
SQLITE_FORMAT
Not used
SQLITE_RANGE
2nd parameter to sqlite3_bind out of range
SQLITE_NOTADB
File opened that is not a database file
SQLITE_ROW
sqlite3_step() has another row ready
SQLITE_DONE
sqlite3_step() has finished executing
SQLITE_OPEN_READONLY
Ok for sqlite3_open_v2()
SQLITE_OPEN_READWRITE
Ok for sqlite3_open_v2()
SQLITE_OPEN_CREATE
Ok for sqlite3_open_v2()
SQLITE_OPEN_DELETEONCLOSE
VFS only
SQLITE_OPEN_EXCLUSIVE
VFS only
SQLITE_OPEN_AUTOPROXY
VFS only
SQLITE_OPEN_URI
Ok for sqlite3_open_v2()
SQLITE_OPEN_MEMORY
Ok for sqlite3_open_v2()
SQLITE_OPEN_MAIN_DB
VFS only
SQLITE_OPEN_TEMP_DB
VFS only
SQLITE_OPEN_TRANSIENT_DB
VFS only
SQLITE_OPEN_MAIN_JOURNAL
VFS only
SQLITE_OPEN_TEMP_JOURNAL
VFS only
SQLITE_OPEN_SUBJOURNAL
VFS only
SQLITE_OPEN_MASTER_JOURNAL
VFS only
SQLITE_OPEN_NOMUTEX
Ok for sqlite3_open_v2()
SQLITE_OPEN_FULLMUTEX
Ok for sqlite3_open_v2()
SQLITE_OPEN_SHAREDCACHE
Ok for sqlite3_open_v2()
SQLITE_OPEN_PRIVATECACHE
Ok for sqlite3_open_v2()
SQLITE_OPEN_WAL
VFS only
struct sqlite3_file;

CAPI3REF OS Interface Open File Handle

struct sqlite3_io_methods;

CAPI3REF OS Interface File Virtual Methods Object

struct sqlite3_mutex;

CAPI3REF Mutex Handle

struct sqlite3_api_routines;

CAPI3REF Loadable Extension Thunk

alias xDlSymReturn = extern (C) void* function() nothrow;

alias sqlite3_syscall_ptr = extern (C) void function() nothrow;

CAPI3REF OS Interface Object

SQLITE_ACCESS_READWRITE
Used by PRAGMA temp_store_directory
SQLITE_ACCESS_READ
Unused
enum int SQLITE_SHM_NLOCK;

CAPI3REF Maximum xShmLock index

nothrow int sqlite3_initialize();

nothrow int sqlite3_shutdown();

nothrow int sqlite3_os_init();

nothrow int sqlite3_os_end();

CAPI3REF Initialize The SQLite Library

nothrow int sqlite3_config(int, ...);

CAPI3REF Configuring The SQLite Library

nothrow int sqlite3_db_config(sqlite3*, int op, ...);

CAPI3REF Configure database connections

struct sqlite3_mem_methods;

CAPI3REF Memory Allocation Routines

void* function(int) xMalloc;
Memory allocation function
void function(void*) xFree;
Free a prior allocation
void* function(void*, int) xRealloc;
Resize an allocation
int function(void*) xSize;
Return the size of an allocation
int function(int) xRoundup;
Round up request size to allocation size
int function(void*) xInit;
Initialize the memory allocator
void function(void*) xShutdown;
Deinitialize the memory allocator
void* pAppData;
Argument to xInit() and xShutdown()
SQLITE_CONFIG_SINGLETHREAD
nil
SQLITE_CONFIG_MULTITHREAD
nil
SQLITE_CONFIG_SERIALIZED
nil
SQLITE_CONFIG_MALLOC
sqlite3_mem_methods*
SQLITE_CONFIG_GETMALLOC
sqlite3_mem_methods*
SQLITE_CONFIG_SCRATCH
No longer used
SQLITE_CONFIG_PAGECACHE
void*, int sz, int N
SQLITE_CONFIG_HEAP
void*, int nByte, int min
SQLITE_CONFIG_MEMSTATUS
boolean
SQLITE_CONFIG_MUTEX
sqlite3_mutex_methods*
SQLITE_CONFIG_GETMUTEX
sqlite3_mutex_methods*
SQLITE_CONFIG_LOOKASIDE
int int
SQLITE_CONFIG_PCACHE
no-op
SQLITE_CONFIG_GETPCACHE
no-op
SQLITE_CONFIG_LOG
xFunc, void*
SQLITE_CONFIG_URI
int
SQLITE_CONFIG_PCACHE2
sqlite3_pcache_methods2*
SQLITE_CONFIG_GETPCACHE2
sqlite3_pcache_methods2*
SQLITE_CONFIG_COVERING_INDEX_SCAN
int
SQLITE_CONFIG_SQLLOG
xSqllog, void*
SQLITE_CONFIG_MMAP_SIZE
sqlite3_int64, sqlite3_int64
SQLITE_CONFIG_WIN32_HEAPSIZE
int nByte
SQLITE_CONFIG_PCACHE_HDRSZ
int *psz
SQLITE_CONFIG_PMASZ
unsigned int szPma
SQLITE_CONFIG_STMTJRNL_SPILL
int nByte
SQLITE_CONFIG_SMALL_MALLOC
boolean
SQLITE_CONFIG_SORTERREF_SIZE
int nByte
SQLITE_CONFIG_MEMDB_MAXSIZE
sqlite3_int64
SQLITE_DBCONFIG_MAINDBNAME
const char*
SQLITE_DBCONFIG_LOOKASIDE
void* int int
SQLITE_DBCONFIG_ENABLE_FKEY
int int*
SQLITE_DBCONFIG_ENABLE_TRIGGER
int int*
SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER
int int*
SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION
int int*
SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE
int int*
SQLITE_DBCONFIG_ENABLE_QPSG
int int*
SQLITE_DBCONFIG_TRIGGER_EQP
int int*
SQLITE_DBCONFIG_RESET_DATABASE
int int*
SQLITE_DBCONFIG_DEFENSIVE
int int*
SQLITE_DBCONFIG_WRITABLE_SCHEMA
int int*
SQLITE_DBCONFIG_MAX
Largest DBCONFIG
nothrow int sqlite3_extended_result_codes(sqlite3*, int onoff);

CAPI3REF Enable Or Disable Extended Result Codes

nothrow sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*);

CAPI3REF Last Insert Rowid

nothrow void sqlite3_set_last_insert_rowid(sqlite3*, sqlite3_int64);

CAPI3REF Set the Last Insert Rowid value

nothrow int sqlite3_changes(sqlite3*);

CAPI3REF Count The Number Of Rows Modified

nothrow int sqlite3_total_changes(sqlite3*);

CAPI3REF Total Number Of Rows Modified

nothrow void sqlite3_interrupt(sqlite3*);

CAPI3REF Interrupt A Long-Running Query

nothrow int sqlite3_complete(const char* sql);

nothrow int sqlite3_complete16(const void* sql);

CAPI3REF Determine If An SQL Statement Is Complete

nothrow int sqlite3_busy_handler(sqlite3*, int function(void*, int), void*);

CAPI3REF Register A Callback To Handle SQLITE_BUSY Errors

nothrow int sqlite3_busy_timeout(sqlite3*, int ms);

CAPI3REF Set A Busy Timeout

nothrow int sqlite3_get_table(sqlite3* db, const(char)* zSql, char*** pazResult, int* pnRow, int* pnColumn, char** pzErrmsg);

CAPI3REF Convenience Routines For Running Queries

nothrow void sqlite3_free_table(char** result);
nothrow char* sqlite3_mprintf(const char*, ...);

CAPI3REF Formatted String Printing Functions

nothrow void* sqlite3_malloc(int);

nothrow void* sqlite3_malloc64(sqlite3_uint64);

nothrow void* sqlite3_realloc(void*, int);

nothrow void* sqlite3_realloc64(void*, sqlite3_uint64);

nothrow void sqlite3_free(void*);

nothrow sqlite3_uint64 sqlite3_msize(void*);

CAPI3REF Memory Allocation Subsystem

nothrow sqlite3_int64 sqlite3_memory_used();

CAPI3REF Memory Allocator Statistics

nothrow void sqlite3_randomness(int N, void* P);

CAPI3REF Pseudo-Random Number Generator

nothrow int sqlite3_set_authorizer(sqlite3*, int function(void*, int, const char*, const char*, const char*, const char*) xAuth, void* pUserData);

CAPI3REF Compile-Time Authorization Callbacks

SQLITE_DENY
Abort the SQL statement with an error
SQLITE_IGNORE
Don't allow access, but don't generate an error
SQLITE_CREATE_INDEX
Index Name Table Name
SQLITE_CREATE_TABLE
Table Name NULL
SQLITE_CREATE_TEMP_INDEX
Index Name Table Name
SQLITE_CREATE_TEMP_TABLE
Table Name NULL
SQLITE_CREATE_TEMP_TRIGGER
Trigger Name Table Name
SQLITE_CREATE_TEMP_VIEW
View Name NULL
SQLITE_CREATE_TRIGGER
Trigger Name Table Name
SQLITE_CREATE_VIEW
View Name NULL
SQLITE_DELETE
Table Name NULL
SQLITE_DROP_INDEX
Index Name Table Name
SQLITE_DROP_TABLE
Table Name NULL
SQLITE_DROP_TEMP_INDEX
Index Name Table Name
SQLITE_DROP_TEMP_TABLE
Table Name NULL
SQLITE_DROP_TEMP_TRIGGER
Trigger Name Table Name
SQLITE_DROP_TEMP_VIEW
View Name NULL
SQLITE_DROP_TRIGGER
Trigger Name Table Name
SQLITE_DROP_VIEW
View Name NULL
SQLITE_INSERT
Table Name NULL
SQLITE_PRAGMA
Pragma Name 1st arg or NULL
SQLITE_READ
Table Name Column Name
SQLITE_SELECT
NULL NULL
SQLITE_TRANSACTION
Operation NULL
SQLITE_UPDATE
Table Name Column Name
SQLITE_ATTACH
Filename NULL
SQLITE_DETACH
Database Name NULL
SQLITE_ALTER_TABLE
Database Name Table Name
SQLITE_REINDEX
Index Name NULL
SQLITE_ANALYZE
Table Name NULL
SQLITE_CREATE_VTABLE
Table Name Module Name
SQLITE_DROP_VTABLE
Table Name Module Name
SQLITE_FUNCTION
NULL Function Name
SQLITE_SAVEPOINT
Operation Savepoint Name
SQLITE_COPY
No longer used
SQLITE_RECURSIVE
NULL NULL
deprecated nothrow void* sqlite3_trace(sqlite3*, void function(void*, const char*) xTrace, void*);

deprecated nothrow void* sqlite3_profile(sqlite3*, void function(void*, const char*, sqlite3_uint64) xProfile, void*);

CAPI3REF Tracing And Profiling Functions

nothrow int sqlite3_trace_v2(sqlite3*, uint uMask, int function(uint, void*, void*, void*) xCallback, void* pCtx);

CAPI3REF SQL Trace Hook

nothrow void sqlite3_progress_handler(sqlite3*, int, int function(void*), void*);

CAPI3REF Query Progress Callbacks

nothrow int sqlite3_open(const(char)* filename, sqlite3** ppDb);

nothrow int sqlite3_open16(const(void)* filename, sqlite3** ppDb);

nothrow int sqlite3_open_v2(const(char)* filename, sqlite3** ppDb, int flags, const(char)* zVfs);

nothrow int sqlite3_uri_boolean(const(char)* zFile, const(char)* zParam, int bDefault);

nothrow sqlite3_int64 sqlite3_uri_int64(const char*, const char*, sqlite3_int64);

CAPI3REF Opening A New Database Connection

nothrow int sqlite3_errcode(sqlite3* db);

nothrow int sqlite3_extended_errcode(sqlite3* db);

nothrow const(char)* sqlite3_errmsg(sqlite3*);

nothrow const(void)* sqlite3_errmsg16(sqlite3*);

nothrow const(char)* sqlite3_errstr(int);

CAPI3REF Error Codes And Messages

struct sqlite3_stmt;

CAPI3REF SQL Statement Object

nothrow int sqlite3_limit(sqlite3*, int id, int newVal);

CAPI3REF Run-time Limits

nothrow int sqlite3_prepare(sqlite3* db, const(char)* zSql, int nByte, sqlite3_stmt** ppStmt, const(char*)* pzTail);

nothrow int sqlite3_prepare_v2(sqlite3* db, const(char)* zSql, int nByte, sqlite3_stmt** ppStmt, const(char*)* pzTail);

nothrow int sqlite3_prepare_v3(sqlite3* db, const(char)* zSql, int nByte, uint prepFlags, sqlite3_stmt** ppStmt, const(char*)* pzTail);

nothrow int sqlite3_prepare16(sqlite3* db, const(void)* zSql, int nByte, sqlite3_stmt** ppStmt, const(void*)* pzTail);

nothrow int sqlite3_prepare16_v2(sqlite3* db, const(void)* zSql, int nByte, sqlite3_stmt** ppStmt, const(void*)* pzTail);

nothrow int sqlite3_prepare16_v3(sqlite3* db, const(void)* zSql, int nByte, uint prepFlags, sqlite3_stmt** ppStmt, const(void*)* pzTail);

CAPI3REF Compiling An SQL Statement

nothrow const(char)* sqlite3_sql(sqlite3_stmt* pStmt);

nothrow char* sqlite3_expanded_sql(sqlite3_stmt* pStmt);

CAPI3REF Retrieving Statement SQL

nothrow int sqlite3_stmt_busy(sqlite3_stmt*);

CAPI3REF Determine If A Prepared Statement Has Been Reset

struct sqlite3_value;

CAPI3REF Dynamically Typed Value Object

struct sqlite3_context;

CAPI3REF SQL Function Context Object

nothrow int sqlite3_bind_blob(sqlite3_stmt*, int, const void*, int n, void function(void*));

nothrow int sqlite3_bind_blob64(sqlite3_stmt*, int, const void*, sqlite3_uint64, void function(void*));

nothrow int sqlite3_bind_double(sqlite3_stmt*, int, double);

nothrow int sqlite3_bind_int(sqlite3_stmt*, int, int);

nothrow int sqlite3_bind_int64(sqlite3_stmt*, int, sqlite3_int64);

nothrow int sqlite3_bind_null(sqlite3_stmt*, int);

nothrow int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int n, void function(void*));

nothrow int sqlite3_bind_text16(sqlite3_stmt*, int, const void*, int, void function(void*));

nothrow int sqlite3_bind_text64(sqlite3_stmt*, int, const char*, sqlite3_uint64, void function(void*), ubyte encoding);

nothrow int sqlite3_bind_value(sqlite3_stmt*, int, const sqlite3_value*);

nothrow int sqlite3_bind_zeroblob(sqlite3_stmt*, int, int n);

nothrow int sqlite3_bind_zeroblob64(sqlite3_stmt*, int, sqlite3_uint64 n);

CAPI3REF Binding Values To Prepared Statements

nothrow int sqlite3_bind_parameter_count(sqlite3_stmt*);

CAPI3REF Number Of SQL Parameters

nothrow const(char)* sqlite3_bind_parameter_name(sqlite3_stmt*, int);

CAPI3REF Name Of A Host Parameter

nothrow int sqlite3_bind_parameter_index(sqlite3_stmt*, const char* zName);

CAPI3REF Index Of A Parameter With A Given Name

nothrow int sqlite3_clear_bindings(sqlite3_stmt*);

CAPI3REF Reset All Bindings On A Prepared Statement

nothrow int sqlite3_column_count(sqlite3_stmt* pStmt);

CAPI3REF Number Of Columns In A Result Set

nothrow const(char)* sqlite3_column_name(sqlite3_stmt*, int N);

nothrow const(void)* sqlite3_column_name16(sqlite3_stmt*, int N);

CAPI3REF Column Names In A Result Set

nothrow const(char)* sqlite3_column_database_name(sqlite3_stmt*, int);

nothrow const(void)* sqlite3_column_database_name16(sqlite3_stmt*, int);

nothrow const(char)* sqlite3_column_table_name(sqlite3_stmt*, int);

nothrow const(void)* sqlite3_column_table_name16(sqlite3_stmt*, int);

nothrow const(char)* sqlite3_column_origin_name(sqlite3_stmt*, int);

nothrow const(void)* sqlite3_column_origin_name16(sqlite3_stmt*, int);

CAPI3REF Source Of Data In A Query Result

nothrow const(char)* sqlite3_column_decltype(sqlite3_stmt*, int);

nothrow const(void)* sqlite3_column_decltype16(sqlite3_stmt*, int);

CAPI3REF Declared Datatype Of A Query Result

nothrow int sqlite3_step(sqlite3_stmt*);

CAPI3REF Evaluate An SQL Statement

nothrow int sqlite3_data_count(sqlite3_stmt* pStmt);

CAPI3REF Number of columns in a result set

nothrow const(void)* sqlite3_column_blob(sqlite3_stmt*, int iCol);

nothrow double sqlite3_column_double(sqlite3_stmt*, int iCol);

nothrow int sqlite3_column_int(sqlite3_stmt*, int iCol);

nothrow sqlite3_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol);

nothrow const(char)* sqlite3_column_text(sqlite3_stmt*, int iCol);

nothrow const(void)* sqlite3_column_text16(sqlite3_stmt*, int iCol);

nothrow sqlite3_value* sqlite3_column_value(sqlite3_stmt*, int iCol);

nothrow int sqlite3_column_bytes(sqlite3_stmt*, int iCol);

nothrow int sqlite3_column_bytes16(sqlite3_stmt*, int iCol);

nothrow int sqlite3_column_type(sqlite3_stmt*, int iCol);

CAPI3REF Result Values From A Query

nothrow int sqlite3_finalize(sqlite3_stmt* pStmt);

CAPI3REF Destroy A Prepared Statement Object

nothrow int sqlite3_reset(sqlite3_stmt* pStmt);

CAPI3REF Reset A Prepared Statement Object

nothrow int sqlite3_create_function(sqlite3* db, const(char)* zFunctionName, int nArg, int eTextRep, void* pApp, void function(sqlite3_context*, int, sqlite3_value**) xFunc, void function(sqlite3_context*, int, sqlite3_value**) xStep, void function(sqlite3_context*) xFinal);

nothrow int sqlite3_create_function16(sqlite3* db, const(void)* zFunctionName, int nArg, int eTextRep, void* pApp, void function(sqlite3_context*, int, sqlite3_value**) xFunc, void function(sqlite3_context*, int, sqlite3_value**) xStep, void function(sqlite3_context*) xFinal);

nothrow int sqlite3_create_function_v2(sqlite3* db, const(char)* zFunctionName, int nArg, int eTextRep, void* pApp, void function(sqlite3_context*, int, sqlite3_value**) xFunc, void function(sqlite3_context*, int, sqlite3_value**) xStep, void function(sqlite3_context*) xFinal, void function(void*) xDestroy);

nothrow int sqlite3_create_window_function(sqlite3* db, const(char)* zFunctionName, int nArg, int eTextRep, void* pApp, void function(sqlite3_context*, int, sqlite3_value**) xStep, void function(sqlite3_context*) xFinal, void function(sqlite3_context*) xValue, void function(sqlite3_context*, int, sqlite3_value**) xInverse, void function(void*) xDestroy);

CAPI3REF Create Or Redefine SQL Functions

SQLITE_UTF8

IMP R-37514-35566

SQLITE_UTF16LE

IMP R-03371-37637

SQLITE_UTF16BE

IMP R-51971-34154

SQLITE_UTF16
Use native byte order
SQLITE_ANY
sqlite3_create_function only
SQLITE_UTF16_ALIGNED
sqlite3_create_collation only
enum int SQLITE_DETERMINISTIC;

CAPI3REF Function Flags

deprecated nothrow int sqlite3_aggregate_count(sqlite3_context*);

CAPI3REF Deprecated Functions

nothrow const(void)* sqlite3_value_blob(sqlite3_value*);

nothrow int sqlite3_value_bytes(sqlite3_value*);

nothrow int sqlite3_value_bytes16(sqlite3_value*);

nothrow double sqlite3_value_double(sqlite3_value*);

nothrow int sqlite3_value_int(sqlite3_value*);

nothrow sqlite3_int64 sqlite3_value_int64(sqlite3_value*);

nothrow const(char)* sqlite3_value_text(sqlite3_value*);

nothrow const(void)* sqlite3_value_text16(sqlite3_value*);

nothrow const(void)* sqlite3_value_text16le(sqlite3_value*);

nothrow const(void)* sqlite3_value_text16be(sqlite3_value*);

nothrow int sqlite3_value_type(sqlite3_value*);

nothrow int sqlite3_value_numeric_type(sqlite3_value*);

nothrow int sqlite3_value_nochange(sqlite3_value*);

nothrow int sqlite3_value_frombind(sqlite3_value*);

CAPI3REF Obtaining SQL Function Parameter Values

nothrow void* sqlite3_aggregate_context(sqlite3_context*, int nBytes);

CAPI3REF Obtain Aggregate Function Context

nothrow void* sqlite3_user_data(sqlite3_context*);

CAPI3REF User Data For Functions

nothrow sqlite3* sqlite3_context_db_handle(sqlite3_context*);

CAPI3REF Database Connection For Functions

nothrow void* sqlite3_get_auxdata(sqlite3_context*, int N);

nothrow void sqlite3_set_auxdata(sqlite3_context*, int N, void*, void function(void*));

CAPI3REF Function Auxiliary Data

alias sqlite3_destructor_type = extern (C) void function(void*) nothrow;

CAPI3REF Constants Defining Special Destructor Behavior

nothrow void sqlite3_result_blob(sqlite3_context*, const void*, int, void function(void*));

nothrow void sqlite3_result_blob64(sqlite3_context*, const void*, sqlite3_uint64, void function(void*));

nothrow void sqlite3_result_double(sqlite3_context*, double);

nothrow void sqlite3_result_error(sqlite3_context*, const char*, int);

nothrow void sqlite3_result_error16(sqlite3_context*, const void*, int);

nothrow void sqlite3_result_error_toobig(sqlite3_context*);

nothrow void sqlite3_result_error_nomem(sqlite3_context*);

nothrow void sqlite3_result_error_code(sqlite3_context*, int);

nothrow void sqlite3_result_int(sqlite3_context*, int);

nothrow void sqlite3_result_int64(sqlite3_context*, sqlite3_int64);

nothrow void sqlite3_result_null(sqlite3_context*);

nothrow void sqlite3_result_text(sqlite3_context*, const char*, int, void function(void*));

nothrow void sqlite3_result_text64(sqlite3_context*, const char*, sqlite3_uint64, void function(void*), ubyte encoding);

nothrow void sqlite3_result_text16(sqlite3_context*, const void*, int, void function(void*));

nothrow void sqlite3_result_text16le(sqlite3_context*, const void*, int, void function(void*));

nothrow void sqlite3_result_text16be(sqlite3_context*, const void*, int, void function(void*));

nothrow void sqlite3_result_value(sqlite3_context*, sqlite3_value*);

nothrow void sqlite3_result_zeroblob(sqlite3_context*, int n);

nothrow int sqlite3_result_zeroblob64(sqlite3_context*, sqlite3_uint64 n);

CAPI3REF Setting The Result Of An SQL Function

nothrow int sqlite3_create_collation(sqlite3*, const(char)* zName, int eTextRep, void* pArg, int function(void*, int, const void*, int, const void*) xCompare);

nothrow int sqlite3_create_collation_v2(sqlite3*, const(char)* zName, int eTextRep, void* pArg, int function(void*, int, const void*, int, const void*) xCompare, void function(void*) xDestroy);

nothrow int sqlite3_create_collation16(sqlite3*, const(void)* zName, int eTextRep, void* pArg, int function(void*, int, const void*, int, const void*) xCompare);

CAPI3REF Define New Collating Sequences

nothrow int sqlite3_collation_needed(sqlite3*, void*, void function(void*, sqlite3*, int eTextRep, const char*));

nothrow int sqlite3_collation_needed16(sqlite3*, void*, void function(void*, sqlite3*, int eTextRep, const void*));

CAPI3REF Collation Needed Callbacks

nothrow int sqlite3_key(sqlite3* db, const(void)* pKey, int nKey);

nothrow int sqlite3_key_v2(sqlite3* db, const(char)* zDbName, const(void)* pKey, int nKey);
nothrow int sqlite3_rekey(sqlite3* db, const(void)* pKey, int nKey);
Change the key on an open database. If the current database is not encrypted, this routine will encrypt it. If pNew == 0 or nNew == 0, the database is decrypted.
The code to implement this API is not available in the public release of SQLite.
nothrow void sqlite3_activate_see(const(char)* zPassPhrase);
Specify the activation key for a SEE database. Unless activated, none of the SEE routines will work.
nothrow void sqlite3_activate_cerod(const(char)* zPassPhrase);
Specify the activation key for a CEROD database. Unless activated, none of the CEROD routines will work.
nothrow int sqlite3_sleep(int);

CAPI3REF Suspend Execution For A Short Time

char* sqlite3_temp_directory;

CAPI3REF Name Of The Folder Holding Temporary Files

char* sqlite3_data_directory;

CAPI3REF Name Of The Folder Holding Database Files

nothrow int sqlite3_win32_set_directory(c_ulong type, void* zValue);

nothrow int sqlite3_win32_set_directory8(c_ulong type, void* zValue);

nothrow int sqlite3_win32_set_directory16(c_ulong type, void* zValue);

CAPI3REF Win32 Specific Interface

nothrow int sqlite3_get_autocommit(sqlite3*);

CAPI3REF Test For Auto-Commit Mode

nothrow sqlite3* sqlite3_db_handle(sqlite3_stmt*);

CAPI3REF Find The Database Handle Of A Prepared Statement

nothrow const(char)* sqlite3_db_filename(sqlite3* db, const char* zDbName);

CAPI3REF Return The Filename For A Database Connection

nothrow int sqlite3_db_readonly(sqlite3* db, const char* zDbName);

CAPI3REF Determine if a database is read-only

nothrow void* sqlite3_commit_hook(sqlite3*, int function(void*), void*);

nothrow void* sqlite3_rollback_hook(sqlite3*, void function(void*), void*);

CAPI3REF Commit And Rollback Notification Callbacks

nothrow void* sqlite3_update_hook(sqlite3*, void function(void*, int, char*, char*, sqlite3_int64), void*);

CAPI3REF Data Change Notification Callbacks

nothrow int sqlite3_enable_shared_cache(int);

CAPI3REF Enable Or Disable Shared Pager Cache

nothrow int sqlite3_release_memory(int);

CAPI3REF Attempt To Free Heap Memory

nothrow int sqlite3_db_release_memory(sqlite3*);

CAPI3REF Free Memory Used By A Database Connection

deprecated nothrow void sqlite3_soft_heap_limit(int N);

CAPI3REF Deprecated Soft Heap Limit Interface

nothrow int sqlite3_table_column_metadata(sqlite3* db, const(char)* zDbName, const(char)* zTableName, const(char)* zColumnName, char** pzDataType, char** pzCollSeq, int* pNotNull, int* pPrimaryKey, int* pAutoinc);

CAPI3REF Extract Metadata About A Column Of A Table

nothrow int sqlite3_load_extension(sqlite3* db, const(char)* zFile, const(char)* zProc, char** pzErrMsg);

CAPI3REF Load An Extension

nothrow int sqlite3_enable_load_extension(sqlite3* db, int onoff);

CAPI3REF Enable Or Disable Extension Loading

nothrow int sqlite3_auto_extension(void function() xEntryPoint);

CAPI3REF Automatically Load Statically Linked Extensions

nothrow int sqlite3_cancel_auto_extension(void function() xEntryPoint);

CAPI3REF Cancel Automatic Extension Loading

nothrow void sqlite3_reset_auto_extension();

CAPI3REF Reset Automatic Extension Loading

alias mapFunction = extern (C) void function(sqlite3_context*, int, sqlite3_value**) nothrow;

struct sqlite3_module;
The interface to the virtual-table mechanism is currently considered to be experimental. The interface might change in incompatible ways. If this is a problem for you, do not use the interface at this time.
When the virtual-table mechanism stabilizes, we will declare the interface fixed, support it indefinitely, and remove this comment.

CAPI3REF Virtual Table Object

struct sqlite3_index_info;

CAPI3REF Virtual Table Indexing Information

int nConstraint;
Number of entries in aConstraint
sqlite3_index_constraint* aConstraint;
Table of WHERE clause constraints
int nOrderBy;
Number of terms in the ORDER BY clause
sqlite3_index_orderby* aOrderBy;
The ORDER BY clause
int idxNum;
Number used to identify the index
char* idxStr;
String, possibly obtained from sqlite3_malloc
int needToFreeIdxStr;
Free idxStr using sqlite3_free() if true
int orderByConsumed;
True if output is already ordered
double estimatedCost;
Estimated cost of using this index
nothrow int sqlite3_create_module(sqlite3* db, const(char)* zName, const(sqlite3_module)* p, void* pClientData);

nothrow int sqlite3_create_module_v2(sqlite3* db, const(char)* zName, const(sqlite3_module)* p, void* pClientData, void function(void*) xDestroy);

CAPI3REF Register A Virtual Table Implementation

struct sqlite3_vtab;

CAPI3REF Virtual Table Instance Object

const(sqlite3_module)* pModule;
The module for this virtual table
int nRef;
NO LONGER USED
char* zErrMsg;
Error message from sqlite3_mprintf()
struct sqlite3_vtab_cursor;

CAPI3REF Virtual Table Cursor Object

sqlite3_vtab* pVtab;
Virtual table of this cursor
nothrow int sqlite3_declare_vtab(sqlite3*, const char* zSQL);

CAPI3REF Declare The Schema Of A Virtual Table

nothrow int sqlite3_overload_function(sqlite3*, const char* zFuncName, int nArg);

CAPI3REF Overload A Function For A Virtual Table

struct sqlite3_blob;
The interface to the virtual-table mechanism defined above (back up to a comment remarkably similar to this one) is currently considered to be experimental. The interface might change in incompatible ways. If this is a problem for you, do not use the interface at this time.
When the virtual-table mechanism stabilizes, we will declare the interface fixed, support it indefinitely, and remove this comment.
nothrow int sqlite3_blob_open(sqlite3*, const(char)* zDb, const(char)* zTable, const(char)* zColumn, sqlite3_int64 iRow, int flags, sqlite3_blob** ppBlob);

CAPI3REF Open A BLOB For Incremental I/O

nothrow int sqlite3_blob_reopen(sqlite3_blob*, sqlite3_int64);

CAPI3REF Move a BLOB Handle to a New Row

nothrow int sqlite3_blob_close(sqlite3_blob*);

CAPI3REF Close A BLOB Handle

nothrow int sqlite3_blob_bytes(sqlite3_blob*);

CAPI3REF Return The Size Of An Open BLOB

nothrow int sqlite3_blob_read(sqlite3_blob*, void* Z, int N, int iOffset);

CAPI3REF Read Data From A BLOB Incrementally

nothrow int sqlite3_blob_write(sqlite3_blob*, const void* z, int n, int iOffset);

CAPI3REF Write Data Into A BLOB Incrementally

nothrow sqlite3_vfs* sqlite3_vfs_find(const char* zVfsName);

nothrow int sqlite3_vfs_register(sqlite3_vfs*, int makeDflt);

nothrow int sqlite3_vfs_unregister(sqlite3_vfs*);

CAPI3REF Virtual File System Objects

nothrow sqlite3_mutex* sqlite3_mutex_alloc(int);

nothrow void sqlite3_mutex_free(sqlite3_mutex*);

nothrow void sqlite3_mutex_enter(sqlite3_mutex*);

nothrow int sqlite3_mutex_try(sqlite3_mutex*);

nothrow void sqlite3_mutex_leave(sqlite3_mutex*);

CAPI3REF Mutexes

struct sqlite3_mutex_methods;

CAPI3REF Mutex Methods Object

nothrow int sqlite3_mutex_held(sqlite3_mutex*);

nothrow int sqlite3_mutex_notheld(sqlite3_mutex*);

CAPI3REF Mutex Verification Routines

SQLITE_MUTEX_STATIC_MEM
sqlite3_malloc()
SQLITE_MUTEX_STATIC_MEM2
NOT USED
SQLITE_MUTEX_STATIC_OPEN
sqlite3BtreeOpen()
SQLITE_MUTEX_STATIC_PRNG
sqlite3_randomness()
SQLITE_MUTEX_STATIC_LRU
lru page list
SQLITE_MUTEX_STATIC_LRU2
NOT USED
SQLITE_MUTEX_STATIC_PMEM
sqlite3PageMalloc()
SQLITE_MUTEX_STATIC_APP1
For use by application
SQLITE_MUTEX_STATIC_APP2
For use by application
SQLITE_MUTEX_STATIC_APP3
For use by application
SQLITE_MUTEX_STATIC_VFS1
For use by built-in VFS
SQLITE_MUTEX_STATIC_VFS2
For use by extension VFS
SQLITE_MUTEX_STATIC_VFS3
For use by application VFS
nothrow sqlite3_mutex* sqlite3_db_mutex(sqlite3*);

CAPI3REF Retrieve the mutex for a database connection

nothrow int sqlite3_file_control(sqlite3*, const char* zDbName, int op, void*);

CAPI3REF Low-Level Control Of Database Files

nothrow int sqlite3_test_control(int op, ...);

CAPI3REF Testing Interface

SQLITE_TESTCTRL_ISKEYWORD
NOT USED
SQLITE_TESTCTRL_SCRATCHMALLOC
NOT USED
SQLITE_TESTCTRL_EXPLAIN_STMT
NOT USED
SQLITE_TESTCTRL_LAST
NOT USED
nothrow int sqlite3_keyword_count();

nothrow int sqlite3_keyword_name(int, const(char*)*, int*);

nothrow int sqlite3_keyword_check(const(char)*, int);

CAPI3REF SQL Keyword Checking

struct sqlite3_str;

CAPI3REF Dynamic String Object

nothrow sqlite3_str* sqlite3_str_new(sqlite3*);

CAPI3REF Create A New Dynamic String Object

nothrow char* sqlite3_str_finish(sqlite3_str*);

CAPI3REF Finalize A Dynamic String

nothrow void sqlite3_str_appendf(sqlite3_str*, const(char)* zFormat, ...);

nothrow void sqlite3_str_vappendf(sqlite3_str*, const(char)* zFormat, va_list);

nothrow void sqlite3_str_append(sqlite3_str*, const(char)* zIn, int N);

nothrow void sqlite3_str_appendall(sqlite3_str*, const(char)* zIn);

nothrow void sqlite3_str_appendchar(sqlite3_str*, int N, char C);

nothrow void sqlite3_str_reset(sqlite3_str*);

CAPI3REF Add Content To A Dynamic String

nothrow int sqlite3_str_errcode(sqlite3_str*);

CAPI3REF Status Of A Dynamic String

nothrow int sqlite3_status(int op, int* pCurrent, int* pHighwater, int resetFlag);

nothrow int sqlite3_status64(int op, long* pCurrent, long* pHighwater, int resetFlag);

CAPI3REF SQLite Runtime Status

SQLITE_STATUS_SCRATCH_USED
NOT USED
SQLITE_STATUS_SCRATCH_OVERFLOW
NOT USED
SQLITE_STATUS_SCRATCH_SIZE
NOT USED
nothrow int sqlite3_db_status(sqlite3*, int op, int* pCur, int* pHiwtr, int resetFlg);

CAPI3REF Database Connection Status

SQLITE_DBSTATUS_MAX
Largest defined DBSTATUS
nothrow int sqlite3_stmt_status(sqlite3_stmt*, int op, int resetFlg);

CAPI3REF Prepared Statement Status

struct sqlite3_pcache;

CAPI3REF Custom Page Cache Object

struct sqlite3_pcache_page;

CAPI3REF Custom Page Cache Object

struct sqlite3_pcache_methods2;

CAPI3REF Application Defined Page Cache.

struct sqlite3_backup;

CAPI3REF Online Backup Object

nothrow sqlite3_backup* sqlite3_backup_init(sqlite3* pDest, const(char)* zDestName, sqlite3* pSource, const(char)* zSourceName);

nothrow int sqlite3_backup_step(sqlite3_backup* p, int nPage);

nothrow int sqlite3_backup_finish(sqlite3_backup* p);

nothrow int sqlite3_backup_remaining(sqlite3_backup* p);

nothrow int sqlite3_backup_pagecount(sqlite3_backup* p);

CAPI3REF Online Backup API.

nothrow int sqlite3_unlock_notify(sqlite3* pBlocked, void function(void** apArg, int nArg) xNotify, void* pNotifyArg);

CAPI3REF Unlock Notification

nothrow int sqlite3_stricmp(const char*, const char*);

CAPI3REF String Comparison

nothrow void sqlite3_log(int iErrCode, const char* zFormat, ...);

CAPI3REF Error Logging Interface

nothrow void* sqlite3_wal_hook(sqlite3*, int function(void*, sqlite3*, const char*, int), void*);

CAPI3REF Write-Ahead Log Commit Hook

nothrow int sqlite3_wal_autocheckpoint(sqlite3* db, int N);

CAPI3REF Configure an auto-checkpoint

nothrow int sqlite3_wal_checkpoint(sqlite3* db, const char* zDb);

CAPI3REF Checkpoint a database

nothrow int sqlite3_wal_checkpoint_v2(sqlite3* db, const(char)* zDb, int eMode, int* pnLog, int* pnCkpt);

CAPI3REF Checkpoint a database

enum int SQLITE_VTAB_CONSTRAINT_SUPPORT;

nothrow int sqlite3_preupdate_old(sqlite3*, int, sqlite3_value**);

nothrow int sqlite3_preupdate_count(sqlite3*);

nothrow int sqlite3_preupdate_depth(sqlite3*);

nothrow int sqlite3_preupdate_new(sqlite3*, int, sqlite3_value**);

CAPI3REF Virtual Table Configuration Options

nothrow int sqlite3_rtree_geometry_callback(sqlite3* db, const(char)* zGeom, int function(sqlite3_rtree_geometry*, int nCoord, double* aCoord, int* pRes) xGeom, void* pContext);
Register a geometry callback named zGeom that can be used as part of an R-Tree geometry query as follows:
SELECT ... FROM <rtree> WHERE <rtree col> MATCH zGeom(... params ...)
struct sqlite3_rtree_geometry;
A pointer to a structure of the following type is passed as the first argument to callbacks registered using rtree_geometry_callback().
void* pContext;
Copy of pContext passed to s_r_g_c()
int nParam;
Size of array aParam[]
double* aParam;
Parameters passed to SQL geom function
void* pUser;
Callback implementation user data
void function(void*) xDelUser;
Called by SQLite to clean up pUser
NOT_WITHIN
Object completely outside of query region
PARTLY_WITHIN
Object partially overlaps query region
FULLY_WITHIN

nothrow int sqlite3changeset_start_v2(sqlite3_changeset_iter** pp, int nChangeset, void* pChangeset, int flags);

nothrow int sqlite3changeset_apply_v2(sqlite3* db, int nChangeset, void* pChangeset, int function(void* pCtx, const(char)* zTab) xFilter, int function(void* pCtx, int eConflict, sqlite3_changeset_iter* p) xConflict, void* pCtx, void** ppRebase, int* pnRebase, int flags);

nothrow int sqlite3changeset_apply_v2_strm(sqlite3* db, int function(void* pIn, void* pData, int* pnData) xInput, void* pIn, int function(void* pCtx, const(char)* zTab) xFilter, int function(void* pCtx, int eConflict, sqlite3_changeset_iter* p) xConflict, void* pCtx, void** ppRebase, int* pnRebase, int flags);

nothrow int sqlite3changeset_concat_strm(int function(void* pIn, void* pData, int* pnData) xInputA, void* pInA, int function(void* pIn, void* pData, int* pnData) xInputB, void* pInB, int function(void* pOut, const(void)* pData, int nData) xOutput, void* pOut);

nothrow int sqlite3changeset_invert_strm(int function(void* pIn, void* pData, int* pnData) xInput, void* pIn, int function(void* pOut, const(void)* pData, int nData) xOutput, void* pOut);

nothrow int sqlite3changeset_start_strm(sqlite3_changeset_iter** pp, int function(void* pIn, void* pData, int* pnData) xInput, void* pIn);

nothrow int sqlite3changeset_start_v2_strm(sqlite3_changeset_iter** pp, int function(void* pIn, void* pData, int* pnData) xInput, void* pIn, int flags);

nothrow int sqlite3session_changeset_strm(sqlite3_session* pSession, int function(void* pOut, const(void)* pData, int nData) xOutput, void* pOut);

nothrow int sqlite3session_patchset_strm(sqlite3_session* pSession, int function(void* pOut, const(void)* pData, int nData) xOutput, void* pOut);

nothrow int sqlite3changegroup_add_strm(sqlite3_changegroup*, int function(void* pIn, void* pData, int* pnData) xInput, void* pIn);

nothrow int sqlite3changegroup_output_strm(sqlite3_changegroup*, int function(void* pOut, const(void)* pData, int nData) xOutput, void* pOut);

nothrow int sqlite3rebaser_rebase_strm(sqlite3_rebaser* pRebaser, int function(void* pIn, void* pData, int* pnData) xInput, void* pIn, int function(void* pOut, const(void)* pData, int nData) xOutput, void* pOut);
Object fully contained within query region
struct Fts5Context;

alias fts5_extension_function = extern (C) void function(const(Fts5ExtensionApi*) pApi, Fts5Context* pFts, sqlite3_context* pCtx, int nVal, sqlite3_value** apVal) nothrow;

struct Fts5PhraseIter;

struct Fts5ExtensionApi;

struct Fts5Tokenizer;

enum int FTS5_TOKENIZE_QUERY;

enum int FTS5_TOKENIZE_PREFIX;

enum int FTS5_TOKENIZE_DOCUMENT;

enum int FTS5_TOKENIZE_AUX;

enum int FTS5_TOKEN_COLOCATED;

struct fts5_api;
Interfaces to extend FTS5.