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 local clone. Page wiki View or edit the community-maintained wiki page associated with this page.

etc.c.sqlite3

string SQLITE_VERSION;
int SQLITE_VERSION_NUMBER;
string SQLITE_SOURCE_ID;
* CAPI3REF: Compile-Time Library Version Numbers

immutable(char)* sqlite3_version;
immutable(char)* sqlite3_libversion();
immutable(char)* sqlite3_sourceid();
int sqlite3_libversion_number();
* CAPI3REF: Run-Time Library Version Numbers

int sqlite3_compileoption_used(const char* zOptName);
immutable(char)* sqlite3_compileoption_get(int N);
* CAPI3REF: Run-Time Library Compilation Options Diagnostics

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;

int sqlite3_close(sqlite3*);
* CAPI3REF: Closing A Database Connection *

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

int sqlite3_exec(sqlite3*, const(char)* sql, int function(void*, int, char**, char**) callback, void*, char** errmsg);
* CAPI3REF: One-Step Query Execution Interface

int SQLITE_OK;
* CAPI3REF: Result Codes

Successful result

int SQLITE_ERROR;
Ditto

SQL error or missing database

int SQLITE_INTERNAL;
Ditto

Internal logic error in SQLite

int SQLITE_PERM;
Ditto

Access permission denied

int SQLITE_ABORT;
Ditto

Callback routine requested an abort

int SQLITE_BUSY;
Ditto

The database file is locked

int SQLITE_LOCKED;
Ditto

A table in the database is locked

int SQLITE_NOMEM;
Ditto

A malloc() failed

int SQLITE_READONLY;
Ditto

Attempt to write a readonly database

int SQLITE_INTERRUPT;
Ditto

Operation terminated by sqlite3_interrupt()

int SQLITE_IOERR;
Ditto

Some kind of disk I/O error occurred

int SQLITE_CORRUPT;
Ditto

The database disk image is malformed

int SQLITE_NOTFOUND;
Ditto

Unknown opcode in sqlite3_file_control()

int SQLITE_FULL;
Ditto

Insertion failed because database is full

int SQLITE_CANTOPEN;
Ditto

Unable to open the database file

int SQLITE_PROTOCOL;
Ditto

Database lock protocol error

int SQLITE_EMPTY;
Ditto

Database is empty

int SQLITE_SCHEMA;
Ditto

The database schema changed

int SQLITE_TOOBIG;
Ditto

String or BLOB exceeds size limit

int SQLITE_CONSTRAINT;
Ditto

Abort due to constraint violation

int SQLITE_MISMATCH;
Ditto

Data type mismatch

int SQLITE_MISUSE;
Ditto

Library used incorrectly

int SQLITE_NOLFS;
Ditto

Uses OS features not supported on host

int SQLITE_AUTH;
Ditto

Authorization denied

int SQLITE_FORMAT;
Ditto

Auxiliary database format error

int SQLITE_RANGE;
Ditto

2nd parameter to sqlite3_bind out of range

int SQLITE_NOTADB;
Ditto

File opened that is not a database file

int SQLITE_ROW;
Ditto

sqlite3_step() has another row ready

int SQLITE_DONE;
Ditto

sqlite3_step() has finished executing

int SQLITE_IOERR_READ;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_SHORT_READ;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_WRITE;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_FSYNC;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_DIR_FSYNC;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_TRUNCATE;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_FSTAT;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_UNLOCK;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_RDLOCK;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_DELETE;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_BLOCKED;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_NOMEM;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_ACCESS;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_CHECKRESERVEDLOCK;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_LOCK;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_CLOSE;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_DIR_CLOSE;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_SHMOPEN;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_SHMSIZE;
* CAPI3REF: Extended Result Codes

int SQLITE_IOERR_SHMLOCK;
* CAPI3REF: Extended Result Codes

int SQLITE_LOCKED_SHAREDCACHE;
* CAPI3REF: Extended Result Codes

int SQLITE_BUSY_RECOVERY;
* CAPI3REF: Extended Result Codes

int SQLITE_CANTOPEN_NOTEMPDIR;
* CAPI3REF: Extended Result Codes

int SQLITE_OPEN_READONLY;
* CAPI3REF: Flags For File Open Operations

Ok for sqlite3_open_v2()

int SQLITE_OPEN_READWRITE;
* CAPI3REF: Flags For File Open Operations

Ok for sqlite3_open_v2()

int SQLITE_OPEN_CREATE;
* CAPI3REF: Flags For File Open Operations

Ok for sqlite3_open_v2()

int SQLITE_OPEN_DELETEONCLOSE;
* CAPI3REF: Flags For File Open Operations

VFS only

int SQLITE_OPEN_EXCLUSIVE;
* CAPI3REF: Flags For File Open Operations

VFS only

int SQLITE_OPEN_AUTOPROXY;
* CAPI3REF: Flags For File Open Operations

VFS only

int SQLITE_OPEN_MAIN_DB;
* CAPI3REF: Flags For File Open Operations

VFS only

int SQLITE_OPEN_TEMP_DB;
* CAPI3REF: Flags For File Open Operations

VFS only

int SQLITE_OPEN_TRANSIENT_DB;
* CAPI3REF: Flags For File Open Operations

VFS only

int SQLITE_OPEN_MAIN_JOURNAL;
* CAPI3REF: Flags For File Open Operations

VFS only

int SQLITE_OPEN_TEMP_JOURNAL;
* CAPI3REF: Flags For File Open Operations

VFS only

int SQLITE_OPEN_SUBJOURNAL;
* CAPI3REF: Flags For File Open Operations

VFS only

int SQLITE_OPEN_MASTER_JOURNAL;
* CAPI3REF: Flags For File Open Operations

VFS only

int SQLITE_OPEN_NOMUTEX;
* CAPI3REF: Flags For File Open Operations

Ok for sqlite3_open_v2()

int SQLITE_OPEN_FULLMUTEX;
* CAPI3REF: Flags For File Open Operations

Ok for sqlite3_open_v2()

int SQLITE_OPEN_SHAREDCACHE;
* CAPI3REF: Flags For File Open Operations

Ok for sqlite3_open_v2()

int SQLITE_OPEN_PRIVATECACHE;
* CAPI3REF: Flags For File Open Operations

Ok for sqlite3_open_v2()

int SQLITE_OPEN_WAL;
* CAPI3REF: Flags For File Open Operations

VFS only

int SQLITE_IOCAP_ATOMIC;
* CAPI3REF: Device Characteristics

int SQLITE_IOCAP_ATOMIC512;
* CAPI3REF: Device Characteristics

int SQLITE_IOCAP_ATOMIC1K;
* CAPI3REF: Device Characteristics

int SQLITE_IOCAP_ATOMIC2K;
* CAPI3REF: Device Characteristics

int SQLITE_IOCAP_ATOMIC4K;
* CAPI3REF: Device Characteristics

int SQLITE_IOCAP_ATOMIC8K;
* CAPI3REF: Device Characteristics

int SQLITE_IOCAP_ATOMIC16K;
* CAPI3REF: Device Characteristics

int SQLITE_IOCAP_ATOMIC32K;
* CAPI3REF: Device Characteristics

int SQLITE_IOCAP_ATOMIC64K;
* CAPI3REF: Device Characteristics

int SQLITE_IOCAP_SAFE_APPEND;
* CAPI3REF: Device Characteristics

int SQLITE_IOCAP_SEQUENTIAL;
* CAPI3REF: Device Characteristics

int SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN;
* CAPI3REF: Device Characteristics

int SQLITE_LOCK_NONE;
* CAPI3REF: File Locking Levels

int SQLITE_LOCK_SHARED;
* CAPI3REF: File Locking Levels

int SQLITE_LOCK_RESERVED;
* CAPI3REF: File Locking Levels

int SQLITE_LOCK_PENDING;
* CAPI3REF: File Locking Levels

int SQLITE_LOCK_EXCLUSIVE;
* CAPI3REF: File Locking Levels

int SQLITE_SYNC_NORMAL;
* CAPI3REF: Synchronization Type Flags

int SQLITE_SYNC_FULL;
* CAPI3REF: Synchronization Type Flags

int SQLITE_SYNC_DATAONLY;
* CAPI3REF: Synchronization Type Flags

struct sqlite3_file;
* CAPI3REF: OS Interface Open File Handle

struct sqlite3_io_methods;
* CAPI3REF: OS Interface File Virtual Methods Object

int SQLITE_FCNTL_LOCKSTATE;
* CAPI3REF: Standard File Control Opcodes

int SQLITE_GET_LOCKPROXYFILE;
* CAPI3REF: Standard File Control Opcodes

int SQLITE_SET_LOCKPROXYFILE;
* CAPI3REF: Standard File Control Opcodes

int SQLITE_LAST_ERRNO;
* CAPI3REF: Standard File Control Opcodes

int SQLITE_FCNTL_SIZE_HINT;
* CAPI3REF: Standard File Control Opcodes

int SQLITE_FCNTL_CHUNK_SIZE;
* CAPI3REF: Standard File Control Opcodes

int SQLITE_FCNTL_FILE_POINTER;
* CAPI3REF: Standard File Control Opcodes

int SQLITE_FCNTL_SYNC_OMITTED;
* CAPI3REF: Standard File Control Opcodes

struct sqlite3_mutex;
* CAPI3REF: Mutex Handle

alias xDlSymReturn = extern (C) void* function();
alias sqlite3_syscall_ptr = extern (C) void function();
* CAPI3REF: OS Interface Object

int SQLITE_ACCESS_EXISTS;
* CAPI3REF: Flags for the xAccess VFS method

int SQLITE_ACCESS_READWRITE;
* CAPI3REF: Flags for the xAccess VFS method

Used by PRAGMA temp_store_directory

int SQLITE_ACCESS_READ;
* CAPI3REF: Flags for the xAccess VFS method

Unused

int SQLITE_SHM_UNLOCK;
* CAPI3REF: Flags for the xShmLock VFS method

int SQLITE_SHM_LOCK;
* CAPI3REF: Flags for the xShmLock VFS method

int SQLITE_SHM_SHARED;
* CAPI3REF: Flags for the xShmLock VFS method

int SQLITE_SHM_EXCLUSIVE;
* CAPI3REF: Flags for the xShmLock VFS method

int SQLITE_SHM_NLOCK;
* CAPI3REF: Maximum xShmLock index

int sqlite3_initialize();
int sqlite3_shutdown();
int sqlite3_os_init();
int sqlite3_os_end();
* CAPI3REF: Initialize The SQLite Library

int sqlite3_config(int, ...);
* CAPI3REF: Configuring The SQLite Library

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()

int SQLITE_CONFIG_SINGLETHREAD;
* CAPI3REF: Configuration Options

nil

int SQLITE_CONFIG_MULTITHREAD;
* CAPI3REF: Configuration Options

nil

int SQLITE_CONFIG_SERIALIZED;
* CAPI3REF: Configuration Options

nil

int SQLITE_CONFIG_MALLOC;
* CAPI3REF: Configuration Options

sqlite3_mem_methods*

int SQLITE_CONFIG_GETMALLOC;
* CAPI3REF: Configuration Options

sqlite3_mem_methods*

int SQLITE_CONFIG_SCRATCH;
* CAPI3REF: Configuration Options

void*, int sz, int N

int SQLITE_CONFIG_PAGECACHE;
* CAPI3REF: Configuration Options

void*, int sz, int N

int SQLITE_CONFIG_HEAP;
* CAPI3REF: Configuration Options

void*, int nByte, int min

int SQLITE_CONFIG_MEMSTATUS;
* CAPI3REF: Configuration Options

boolean

int SQLITE_CONFIG_MUTEX;
* CAPI3REF: Configuration Options

sqlite3_mutex_methods*

int SQLITE_CONFIG_GETMUTEX;
* CAPI3REF: Configuration Options

sqlite3_mutex_methods*

int SQLITE_CONFIG_LOOKASIDE;
Ditto

int int

int SQLITE_CONFIG_PCACHE;
Ditto

sqlite3_pcache_methods*

int SQLITE_CONFIG_GETPCACHE;
Ditto

sqlite3_pcache_methods*

int SQLITE_CONFIG_LOG;
Ditto

xFunc, void*

int SQLITE_DBCONFIG_LOOKASIDE;
* CAPI3REF: Database Connection Configuration Options

void* int int

int SQLITE_DBCONFIG_ENABLE_FKEY;
* CAPI3REF: Database Connection Configuration Options

int int*

int SQLITE_DBCONFIG_ENABLE_TRIGGER;
* CAPI3REF: Database Connection Configuration Options

int int*

int sqlite3_extended_result_codes(sqlite3*, int onoff);
* CAPI3REF: Enable Or Disable Extended Result Codes

sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*);
* CAPI3REF: Last Insert Rowid

int sqlite3_changes(sqlite3*);
* CAPI3REF: Count The Number Of Rows Modified

int sqlite3_total_changes(sqlite3*);
* CAPI3REF: Total Number Of Rows Modified

void sqlite3_interrupt(sqlite3*);
* CAPI3REF: Interrupt A Long-Running Query

int sqlite3_complete(const char* sql);
int sqlite3_complete16(const void* sql);
* CAPI3REF: Determine If An SQL Statement Is Complete

int sqlite3_busy_handler(sqlite3*, int function(void*, int), void*);
* CAPI3REF: Register A Callback To Handle SQLITE_BUSY Errors

int sqlite3_busy_timeout(sqlite3*, int ms);
* CAPI3REF: Set A Busy Timeout

int sqlite3_get_table(sqlite3* db, const(char)* zSql, char*** pazResult, int* pnRow, int* pnColumn, char** pzErrmsg);
* CAPI3REF: Convenience Routines For Running Queries

void sqlite3_free_table(char** result);

alias va_list = char*;

char* sqlite3_mprintf(const char*, ...);
* CAPI3REF: Formatted String Printing Functions

void* sqlite3_malloc(int);
void* sqlite3_realloc(void*, int);
void sqlite3_free(void*);
* CAPI3REF: Memory Allocation Subsystem

sqlite3_int64 sqlite3_memory_used();
* CAPI3REF: Memory Allocator Statistics

void sqlite3_randomness(int N, void* P);
* CAPI3REF: Pseudo-Random Number Generator

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

int SQLITE_DENY;
* CAPI3REF: Authorizer Return Codes

Abort the SQL statement with an error

int SQLITE_IGNORE;
* CAPI3REF: Authorizer Return Codes

Don't allow access, but don't generate an error

int SQLITE_CREATE_INDEX;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Index Name Table Name

int SQLITE_CREATE_TABLE;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Table Name NULL

int SQLITE_CREATE_TEMP_INDEX;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Index Name Table Name

int SQLITE_CREATE_TEMP_TABLE;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Table Name NULL

int SQLITE_CREATE_TEMP_TRIGGER;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Trigger Name Table Name

int SQLITE_CREATE_TEMP_VIEW;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

View Name NULL

int SQLITE_CREATE_TRIGGER;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Trigger Name Table Name

int SQLITE_CREATE_VIEW;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

View Name NULL

int SQLITE_DELETE;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Table Name NULL

int SQLITE_DROP_INDEX;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Index Name Table Name

int SQLITE_DROP_TABLE;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Table Name NULL

int SQLITE_DROP_TEMP_INDEX;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Index Name Table Name

int SQLITE_DROP_TEMP_TABLE;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Table Name NULL

int SQLITE_DROP_TEMP_TRIGGER;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Trigger Name Table Name

int SQLITE_DROP_TEMP_VIEW;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

View Name NULL

int SQLITE_DROP_TRIGGER;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Trigger Name Table Name

int SQLITE_DROP_VIEW;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

View Name NULL

int SQLITE_INSERT;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Table Name NULL

int SQLITE_PRAGMA;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Pragma Name 1st arg or NULL

int SQLITE_READ;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Table Name Column Name

int SQLITE_SELECT;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

NULL NULL

int SQLITE_TRANSACTION;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Operation NULL

int SQLITE_UPDATE;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Table Name Column Name

int SQLITE_ATTACH;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Filename NULL

int SQLITE_DETACH;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Database Name NULL

int SQLITE_ALTER_TABLE;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Database Name Table Name

int SQLITE_REINDEX;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Index Name NULL

int SQLITE_ANALYZE;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Table Name NULL

int SQLITE_CREATE_VTABLE;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Table Name Module Name

int SQLITE_DROP_VTABLE;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Table Name Module Name

int SQLITE_FUNCTION;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

NULL Function Name

int SQLITE_SAVEPOINT;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

Operation Savepoint Name

int SQLITE_COPY;
* CAPI3REF: Authorizer Action Codes

3rd ************ 4th

No longer used

void* sqlite3_trace(sqlite3*, void function(void*, const char*) xTrace, void*);
void* sqlite3_profile(sqlite3*, void function(void*, const char*, sqlite3_uint64) xProfile, void*);
* CAPI3REF: Tracing And Profiling Functions

void sqlite3_progress_handler(sqlite3*, int, int function(void*), void*);
* CAPI3REF: Query Progress Callbacks

int sqlite3_open(const(char)* filename, sqlite3** ppDb);
int sqlite3_open16(const(void)* filename, sqlite3** ppDb);
int sqlite3_open_v2(const(char)* filename, sqlite3** ppDb, int flags, const(char)* zVfs);
* CAPI3REF: Opening A New Database Connection

int sqlite3_errcode(sqlite3* db);
int sqlite3_extended_errcode(sqlite3* db);
immutable(char)* sqlite3_errmsg(sqlite3*);
immutable(void)* sqlite3_errmsg16(sqlite3*);
* CAPI3REF: Error Codes And Messages

struct sqlite3_stmt;
* CAPI3REF: SQL Statement Object

int sqlite3_limit(sqlite3*, int id, int newVal);
* CAPI3REF: Run-time Limits

int SQLITE_LIMIT_LENGTH;
* CAPI3REF: Run-Time Limit Categories

int SQLITE_LIMIT_SQL_LENGTH;
* CAPI3REF: Run-Time Limit Categories

int SQLITE_LIMIT_COLUMN;
* CAPI3REF: Run-Time Limit Categories

int SQLITE_LIMIT_EXPR_DEPTH;
* CAPI3REF: Run-Time Limit Categories

int SQLITE_LIMIT_COMPOUND_SELECT;
* CAPI3REF: Run-Time Limit Categories

int SQLITE_LIMIT_VDBE_OP;
* CAPI3REF: Run-Time Limit Categories

int SQLITE_LIMIT_FUNCTION_ARG;
* CAPI3REF: Run-Time Limit Categories

int SQLITE_LIMIT_ATTACHED;
* CAPI3REF: Run-Time Limit Categories

int SQLITE_LIMIT_LIKE_PATTERN_LENGTH;
* CAPI3REF: Run-Time Limit Categories

int SQLITE_LIMIT_VARIABLE_NUMBER;
* CAPI3REF: Run-Time Limit Categories

int SQLITE_LIMIT_TRIGGER_DEPTH;
* CAPI3REF: Run-Time Limit Categories

int sqlite3_prepare(sqlite3* db, const(char)* zSql, int nByte, sqlite3_stmt** ppStmt, const(char*)* pzTail);
int sqlite3_prepare_v2(sqlite3* db, const(char)* zSql, int nByte, sqlite3_stmt** ppStmt, const(char*)* pzTail);
int sqlite3_prepare16(sqlite3* db, const(void)* zSql, int nByte, sqlite3_stmt** ppStmt, const(void*)* pzTail);
int sqlite3_prepare16_v2(sqlite3* db, const(void)* zSql, int nByte, sqlite3_stmt** ppStmt, const(void*)* pzTail);
* CAPI3REF: Compiling An SQL Statement

const(char)* sqlite3_sql(sqlite3_stmt* pStmt);
* CAPI3REF: Retrieving Statement SQL

int sqlite3_stmt_readonly(sqlite3_stmt* pStmt);
* CAPI3REF: Determine If An SQL Statement Writes The Database

struct sqlite3_value;
* CAPI3REF: Dynamically Typed Value Object

struct sqlite3_context;
* CAPI3REF: SQL Function Context Object

int sqlite3_bind_blob(sqlite3_stmt*, int, const void*, int n, void function(void*));
int sqlite3_bind_double(sqlite3_stmt*, int, double);
int sqlite3_bind_int(sqlite3_stmt*, int, int);
int sqlite3_bind_int64(sqlite3_stmt*, int, sqlite3_int64);
int sqlite3_bind_null(sqlite3_stmt*, int);
int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int n, void function(void*));
int sqlite3_bind_text16(sqlite3_stmt*, int, const void*, int, void function(void*));
int sqlite3_bind_value(sqlite3_stmt*, int, const sqlite3_value*);
int sqlite3_bind_zeroblob(sqlite3_stmt*, int, int n);
* CAPI3REF: Binding Values To Prepared Statements

int sqlite3_bind_parameter_count(sqlite3_stmt*);
* CAPI3REF: Number Of SQL Parameters

const(char)* sqlite3_bind_parameter_name(sqlite3_stmt*, int);
* CAPI3REF: Name Of A Host Parameter

int sqlite3_bind_parameter_index(sqlite3_stmt*, const char* zName);
* CAPI3REF: Index Of A Parameter With A Given Name

int sqlite3_clear_bindings(sqlite3_stmt*);
* CAPI3REF: Reset All Bindings On A Prepared Statement

int sqlite3_column_count(sqlite3_stmt* pStmt);
* CAPI3REF: Number Of Columns In A Result Set

const(char)* sqlite3_column_name(sqlite3_stmt*, int N);
const(void)* sqlite3_column_name16(sqlite3_stmt*, int N);
* CAPI3REF: Column Names In A Result Set

const(char)* sqlite3_column_database_name(sqlite3_stmt*, int);
const(void)* sqlite3_column_database_name16(sqlite3_stmt*, int);
const(char)* sqlite3_column_table_name(sqlite3_stmt*, int);
const(void)* sqlite3_column_table_name16(sqlite3_stmt*, int);
const(char)* sqlite3_column_origin_name(sqlite3_stmt*, int);
const(void)* sqlite3_column_origin_name16(sqlite3_stmt*, int);
* CAPI3REF: Source Of Data In A Query Result

const(char)* sqlite3_column_decltype(sqlite3_stmt*, int);
const(void)* sqlite3_column_decltype16(sqlite3_stmt*, int);
* CAPI3REF: Declared Datatype Of A Query Result

int sqlite3_step(sqlite3_stmt*);
* CAPI3REF: Evaluate An SQL Statement

int sqlite3_data_count(sqlite3_stmt* pStmt);
* CAPI3REF: Number of columns in a result set

int SQLITE_INTEGER;
* CAPI3REF: Fundamental Datatypes

int SQLITE_FLOAT;
* CAPI3REF: Fundamental Datatypes

int SQLITE_BLOB;
* CAPI3REF: Fundamental Datatypes

int SQLITE_NULL;
* CAPI3REF: Fundamental Datatypes

int SQLITE3_TEXT;
* CAPI3REF: Fundamental Datatypes

const(void)* sqlite3_column_blob(sqlite3_stmt*, int iCol);
int sqlite3_column_bytes(sqlite3_stmt*, int iCol);
int sqlite3_column_bytes16(sqlite3_stmt*, int iCol);
double sqlite3_column_double(sqlite3_stmt*, int iCol);
int sqlite3_column_int(sqlite3_stmt*, int iCol);
sqlite3_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol);
const(char)* sqlite3_column_text(sqlite3_stmt*, int iCol);
const(void)* sqlite3_column_text16(sqlite3_stmt*, int iCol);
int sqlite3_column_type(sqlite3_stmt*, int iCol);
sqlite3_value* sqlite3_column_value(sqlite3_stmt*, int iCol);
* CAPI3REF: Result Values From A Query

int sqlite3_finalize(sqlite3_stmt* pStmt);
* CAPI3REF: Destroy A Prepared Statement Object

int sqlite3_reset(sqlite3_stmt* pStmt);
* CAPI3REF: Reset A Prepared Statement Object

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);
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);
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);
* CAPI3REF: Create Or Redefine SQL Functions

int SQLITE_UTF8;
* CAPI3REF: Text Encodings * * These constant define integer codes that represent the various * text encodings supported by SQLite.

int SQLITE_UTF16LE;
* CAPI3REF: Text Encodings * * These constant define integer codes that represent the various * text encodings supported by SQLite.

int SQLITE_UTF16BE;
* CAPI3REF: Text Encodings * * These constant define integer codes that represent the various * text encodings supported by SQLite.

int SQLITE_UTF16;
Ditto

Use native byte order

int SQLITE_ANY;
Ditto

sqlite3_create_function only

int SQLITE_UTF16_ALIGNED;
Ditto

sqlite3_create_collation only

const(void)* sqlite3_value_blob(sqlite3_value*);
int sqlite3_value_bytes(sqlite3_value*);
int sqlite3_value_bytes16(sqlite3_value*);
double sqlite3_value_double(sqlite3_value*);
int sqlite3_value_int(sqlite3_value*);
sqlite3_int64 sqlite3_value_int64(sqlite3_value*);
const(char)* sqlite3_value_text(sqlite3_value*);
const(void)* sqlite3_value_text16(sqlite3_value*);
const(void)* sqlite3_value_text16le(sqlite3_value*);
const(void)* sqlite3_value_text16be(sqlite3_value*);
int sqlite3_value_type(sqlite3_value*);
int sqlite3_value_numeric_type(sqlite3_value*);
* CAPI3REF: Obtaining SQL Function Parameter Values

void* sqlite3_aggregate_context(sqlite3_context*, int nBytes);
* CAPI3REF: Obtain Aggregate Function Context

void* sqlite3_user_data(sqlite3_context*);
* CAPI3REF: User Data For Functions

sqlite3* sqlite3_context_db_handle(sqlite3_context*);
* CAPI3REF: Database Connection For Functions

void* sqlite3_get_auxdata(sqlite3_context*, int N);
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*);
void function(void*) SQLITE_STATIC;
void function(void*) SQLITE_TRANSIENT;
* CAPI3REF: Constants Defining Special Destructor Behavior

void sqlite3_result_blob(sqlite3_context*, const void*, int, void function(void*));
void sqlite3_result_double(sqlite3_context*, double);
void sqlite3_result_error(sqlite3_context*, const char*, int);
void sqlite3_result_error16(sqlite3_context*, const void*, int);
void sqlite3_result_error_toobig(sqlite3_context*);
void sqlite3_result_error_nomem(sqlite3_context*);
void sqlite3_result_error_code(sqlite3_context*, int);
void sqlite3_result_int(sqlite3_context*, int);
void sqlite3_result_int64(sqlite3_context*, sqlite3_int64);
void sqlite3_result_null(sqlite3_context*);
void sqlite3_result_text(sqlite3_context*, const char*, int, void function(void*));
void sqlite3_result_text16(sqlite3_context*, const void*, int, void function(void*));
void sqlite3_result_text16le(sqlite3_context*, const void*, int, void function(void*));
void sqlite3_result_text16be(sqlite3_context*, const void*, int, void function(void*));
void sqlite3_result_value(sqlite3_context*, sqlite3_value*);
void sqlite3_result_zeroblob(sqlite3_context*, int n);
* CAPI3REF: Setting The Result Of An SQL Function

int sqlite3_create_collation(sqlite3*, const(char)* zName, int eTextRep, void* pArg, int function(void*, int, const void*, int, const void*) xCompare);
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);
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

int sqlite3_collation_needed(sqlite3*, void*, void function(void*, sqlite3*, int eTextRep, const char*));
int sqlite3_collation_needed16(sqlite3*, void*, void function(void*, sqlite3*, int eTextRep, const void*));
* CAPI3REF: Collation Needed Callbacks

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

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.

void sqlite3_activate_see(const(char)* zPassPhrase);
* Specify the activation key for a SEE database. Unless * activated, none of the SEE routines will work.

void sqlite3_activate_cerod(const(char)* zPassPhrase);
* Specify the activation key for a CEROD database. Unless * activated, none of the CEROD routines will work.

int sqlite3_sleep(int);
* CAPI3REF: Suspend Execution For A Short Time

char* sqlite3_temp_directory;
* CAPI3REF: Name Of The Folder Holding Temporary Files

int sqlite3_get_autocommit(sqlite3*);
* CAPI3REF: Test For Auto-Commit Mode

sqlite3* sqlite3_db_handle(sqlite3_stmt*);
* CAPI3REF: Find The Database Handle Of A Prepared Statement

sqlite3_stmt* sqlite3_next_stmt(sqlite3* pDb, sqlite3_stmt* pStmt);
* CAPI3REF: Find the next prepared statement

void* sqlite3_commit_hook(sqlite3*, int function(void*), void*);
void* sqlite3_rollback_hook(sqlite3*, void function(void*), void*);
* CAPI3REF: Commit And Rollback Notification Callbacks

void* sqlite3_update_hook(sqlite3*, void function(void*, int, char*, char*, sqlite3_int64), void*);
* CAPI3REF: Data Change Notification Callbacks

int sqlite3_enable_shared_cache(int);
* CAPI3REF: Enable Or Disable Shared Pager Cache

int sqlite3_release_memory(int);
* CAPI3REF: Attempt To Free Heap Memory

sqlite3_int64 sqlite3_soft_heap_limit64(sqlite3_int64 N);
* CAPI3REF: Impose A Limit On Heap Size

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

int sqlite3_load_extension(sqlite3* db, const(char)* zFile, const(char)* zProc, char** pzErrMsg);
* CAPI3REF: Load An Extension

int sqlite3_enable_load_extension(sqlite3* db, int onoff);
* CAPI3REF: Enable Or Disable Extension Loading

int sqlite3_auto_extension(void function() xEntryPoint);
* CAPI3REF: Automatically Load Statically Linked Extensions

void sqlite3_reset_auto_extension();
* CAPI3REF: Reset Automatic Extension Loading

alias mapFunction = extern (C) void function(sqlite3_context*, int, sqlite3_value**);
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

int SQLITE_INDEX_CONSTRAINT_EQ;
* CAPI3REF: Virtual Table Constraint Operator Codes

int SQLITE_INDEX_CONSTRAINT_GT;
* CAPI3REF: Virtual Table Constraint Operator Codes

int SQLITE_INDEX_CONSTRAINT_LE;
* CAPI3REF: Virtual Table Constraint Operator Codes

int SQLITE_INDEX_CONSTRAINT_LT;
* CAPI3REF: Virtual Table Constraint Operator Codes

int SQLITE_INDEX_CONSTRAINT_GE;
* CAPI3REF: Virtual Table Constraint Operator Codes

int SQLITE_INDEX_CONSTRAINT_MATCH;
* CAPI3REF: Virtual Table Constraint Operator Codes

int sqlite3_create_module(sqlite3* db, const(char)* zName, const(sqlite3_module)* p, void* pClientData);
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

int sqlite3_declare_vtab(sqlite3*, const char* zSQL);
* CAPI3REF: Declare The Schema Of A Virtual Table

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.

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

int sqlite3_blob_reopen(sqlite3_blob*, sqlite3_int64);
* CAPI3REF: Move a BLOB Handle to a New Row

int sqlite3_blob_close(sqlite3_blob*);
* CAPI3REF: Close A BLOB Handle

int sqlite3_blob_bytes(sqlite3_blob*);
* CAPI3REF: Return The Size Of An Open BLOB

int sqlite3_blob_read(sqlite3_blob*, void* Z, int N, int iOffset);
* CAPI3REF: Read Data From A BLOB Incrementally

int sqlite3_blob_write(sqlite3_blob*, const void* z, int n, int iOffset);
* CAPI3REF: Write Data Into A BLOB Incrementally

sqlite3_vfs* sqlite3_vfs_find(const char* zVfsName);
int sqlite3_vfs_register(sqlite3_vfs*, int makeDflt);
int sqlite3_vfs_unregister(sqlite3_vfs*);
* CAPI3REF: Virtual File System Objects

sqlite3_mutex* sqlite3_mutex_alloc(int);
void sqlite3_mutex_free(sqlite3_mutex*);
void sqlite3_mutex_enter(sqlite3_mutex*);
int sqlite3_mutex_try(sqlite3_mutex*);
void sqlite3_mutex_leave(sqlite3_mutex*);
* CAPI3REF: Mutexes

struct sqlite3_mutex_methods;
* CAPI3REF: Mutex Methods Object

int sqlite3_mutex_held(sqlite3_mutex*);
int sqlite3_mutex_notheld(sqlite3_mutex*);
* CAPI3REF: Mutex Verification Routines

int SQLITE_MUTEX_FAST;
* CAPI3REF: Mutex Types

int SQLITE_MUTEX_RECURSIVE;
* CAPI3REF: Mutex Types

int SQLITE_MUTEX_STATIC_MASTER;
* CAPI3REF: Mutex Types

int SQLITE_MUTEX_STATIC_MEM;
Ditto

sqlite3_malloc()

int SQLITE_MUTEX_STATIC_MEM2;
Ditto

NOT USED

int SQLITE_MUTEX_STATIC_OPEN;
Ditto

sqlite3BtreeOpen()

int SQLITE_MUTEX_STATIC_PRNG;
Ditto

sqlite3_random()

int SQLITE_MUTEX_STATIC_LRU;
Ditto

lru page list

int SQLITE_MUTEX_STATIC_LRU2;
int SQLITE_MUTEX_STATIC_PMEM;
Ditto

NOT USED

sqlite3_mutex* sqlite3_db_mutex(sqlite3*);
* CAPI3REF: Retrieve the mutex for a database connection

int sqlite3_file_control(sqlite3*, const char* zDbName, int op, void*);
* CAPI3REF: Low-Level Control Of Database Files

int sqlite3_test_control(int op, ...);
* CAPI3REF: Testing Interface

int SQLITE_TESTCTRL_FIRST;
* CAPI3REF: Testing Interface Operation Codes

int SQLITE_TESTCTRL_PRNG_SAVE;
* CAPI3REF: Testing Interface Operation Codes

int SQLITE_TESTCTRL_PRNG_RESTORE;
* CAPI3REF: Testing Interface Operation Codes

int SQLITE_TESTCTRL_PRNG_RESET;
* CAPI3REF: Testing Interface Operation Codes

int SQLITE_TESTCTRL_BITVEC_TEST;
* CAPI3REF: Testing Interface Operation Codes

int SQLITE_TESTCTRL_FAULT_INSTALL;
* CAPI3REF: Testing Interface Operation Codes

int SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS;
* CAPI3REF: Testing Interface Operation Codes

int SQLITE_TESTCTRL_PENDING_BYTE;
* CAPI3REF: Testing Interface Operation Codes

int SQLITE_TESTCTRL_ASSERT;
* CAPI3REF: Testing Interface Operation Codes

int SQLITE_TESTCTRL_ALWAYS;
* CAPI3REF: Testing Interface Operation Codes

int SQLITE_TESTCTRL_RESERVE;
* CAPI3REF: Testing Interface Operation Codes

int SQLITE_TESTCTRL_OPTIMIZATIONS;
* CAPI3REF: Testing Interface Operation Codes

int SQLITE_TESTCTRL_ISKEYWORD;
* CAPI3REF: Testing Interface Operation Codes

int SQLITE_TESTCTRL_PGHDRSZ;
* CAPI3REF: Testing Interface Operation Codes

int SQLITE_TESTCTRL_SCRATCHMALLOC;
* CAPI3REF: Testing Interface Operation Codes

int SQLITE_TESTCTRL_LAST;
* CAPI3REF: Testing Interface Operation Codes

int sqlite3_status(int op, int* pCurrent, int* pHighwater, int resetFlag);
* CAPI3REF: SQLite Runtime Status

int SQLITE_STATUS_MEMORY_USED;
* CAPI3REF: Status Parameters

int SQLITE_STATUS_PAGECACHE_USED;
* CAPI3REF: Status Parameters

int SQLITE_STATUS_PAGECACHE_OVERFLOW;
* CAPI3REF: Status Parameters

int SQLITE_STATUS_SCRATCH_USED;
* CAPI3REF: Status Parameters

int SQLITE_STATUS_SCRATCH_OVERFLOW;
* CAPI3REF: Status Parameters

int SQLITE_STATUS_MALLOC_SIZE;
* CAPI3REF: Status Parameters

int SQLITE_STATUS_PARSER_STACK;
* CAPI3REF: Status Parameters

int SQLITE_STATUS_PAGECACHE_SIZE;
* CAPI3REF: Status Parameters

int SQLITE_STATUS_SCRATCH_SIZE;
* CAPI3REF: Status Parameters

int SQLITE_STATUS_MALLOC_COUNT;
* CAPI3REF: Status Parameters

int sqlite3_db_status(sqlite3*, int op, int* pCur, int* pHiwtr, int resetFlg);
* CAPI3REF: Database Connection Status

int SQLITE_DBSTATUS_LOOKASIDE_USED;
* CAPI3REF: Status Parameters for database connections

int SQLITE_DBSTATUS_CACHE_USED;
* CAPI3REF: Status Parameters for database connections

int SQLITE_DBSTATUS_SCHEMA_USED;
* CAPI3REF: Status Parameters for database connections

int SQLITE_DBSTATUS_STMT_USED;
* CAPI3REF: Status Parameters for database connections

int SQLITE_DBSTATUS_LOOKASIDE_HIT;
* CAPI3REF: Status Parameters for database connections

int SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE;
* CAPI3REF: Status Parameters for database connections

int SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL;
* CAPI3REF: Status Parameters for database connections

int SQLITE_DBSTATUS_MAX;
Largest defined DBSTATUS

int sqlite3_stmt_status(sqlite3_stmt*, int op, int resetFlg);
* CAPI3REF: Prepared Statement Status

int SQLITE_STMTSTATUS_FULLSCAN_STEP;
* CAPI3REF: Status Parameters for prepared statements

int SQLITE_STMTSTATUS_SORT;
* CAPI3REF: Status Parameters for prepared statements

int SQLITE_STMTSTATUS_AUTOINDEX;
* CAPI3REF: Status Parameters for prepared statements

struct sqlite3_pcache;
* CAPI3REF: Custom Page Cache Object

struct sqlite3_pcache_methods;
* CAPI3REF: Application Defined Page Cache.

struct sqlite3_backup;
* CAPI3REF: Online Backup Object

sqlite3_backup* sqlite3_backup_init(sqlite3* pDest, const(char)* zDestName, sqlite3* pSource, const(char)* zSourceName);
int sqlite3_backup_step(sqlite3_backup* p, int nPage);
int sqlite3_backup_finish(sqlite3_backup* p);
int sqlite3_backup_remaining(sqlite3_backup* p);
int sqlite3_backup_pagecount(sqlite3_backup* p);
* CAPI3REF: Online Backup API.

int sqlite3_unlock_notify(sqlite3* pBlocked, void function(void** apArg, int nArg) xNotify, void* pNotifyArg);
* CAPI3REF: Unlock Notification

int sqlite3_strnicmp(const char*, const char*, int);
* CAPI3REF: String Comparison

void sqlite3_log(int iErrCode, const char* zFormat, ...);
* CAPI3REF: Error Logging Interface

void* sqlite3_wal_hook(sqlite3*, int function(void*, sqlite3*, const char*, int), void*);
* CAPI3REF: Write-Ahead Log Commit Hook

int sqlite3_wal_autocheckpoint(sqlite3* db, int N);
* CAPI3REF: Configure an auto-checkpoint

int sqlite3_wal_checkpoint(sqlite3* db, const char* zDb);
* CAPI3REF: Checkpoint a database

int sqlite3_wal_checkpoint_v2(sqlite3* db, const(char)* zDb, int eMode, int* pnLog, int* pnCkpt);
* CAPI3REF: Checkpoint a database

int SQLITE_CHECKPOINT_PASSIVE;
* CAPI3REF: Checkpoint operation parameters

int SQLITE_CHECKPOINT_FULL;
* CAPI3REF: Checkpoint operation parameters

int SQLITE_CHECKPOINT_RESTART;
* CAPI3REF: Checkpoint operation parameters

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 WHERE 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