mirror of
https://github.com/dlang/phobos.git
synced 2025-04-26 05:00:35 +03:00
2880 lines
87 KiB
D
2880 lines
87 KiB
D
module etc.c.sqlite3;
|
|
/*
|
|
** 2001-09-15
|
|
**
|
|
** The author disclaims copyright to this source code. In place of
|
|
** a legal notice, here is a blessing:
|
|
**
|
|
** May you do good and not evil.
|
|
** May you find forgiveness for yourself and forgive others.
|
|
** May you share freely, never taking more than you give.
|
|
**
|
|
*************************************************************************
|
|
** This header file defines the interface that the SQLite library
|
|
** presents to client programs. If a C-function, structure, datatype,
|
|
** or constant definition does not appear in this file, then it is
|
|
** not a published API of SQLite, is subject to change without
|
|
** notice, and should not be referenced by programs that use SQLite.
|
|
**
|
|
** Some of the definitions that are in this file are marked as
|
|
** "experimental". Experimental interfaces are normally new
|
|
** features recently added to SQLite. We do not anticipate changes
|
|
** to experimental interfaces but reserve the right to make minor changes
|
|
** if experience from use "in the wild" suggest such changes are prudent.
|
|
**
|
|
** The official C-language API documentation for SQLite is derived
|
|
** from comments in this file. This file is the authoritative source
|
|
** on how SQLite interfaces are suppose to operate.
|
|
**
|
|
** The name of this file under configuration management is "sqlite.h.in".
|
|
** The makefile makes some minor changes to this file (such as inserting
|
|
** the version number) and changes its name to "sqlite3.h" as
|
|
** part of the build process.
|
|
*/
|
|
|
|
import core.stdc.stdarg : va_list;
|
|
import core.stdc.config : c_ulong;
|
|
|
|
extern (C) __gshared nothrow:
|
|
|
|
/**
|
|
* CAPI3REF: Compile-Time Library Version Numbers
|
|
*/
|
|
enum SQLITE_VERSION = "3.33.0";
|
|
/// Ditto
|
|
enum SQLITE_VERSION_NUMBER = 3033000;
|
|
/// Ditto
|
|
enum SQLITE_SOURCE_ID = "2020-08-14 13:23:32 fca8dc8b578f215a969cd899336378966156154710873e68b3d9ac5881b0ff3f";
|
|
|
|
/**
|
|
* CAPI3REF: Run-Time Library Version Numbers
|
|
*/
|
|
extern immutable(char)* sqlite3_version;
|
|
/// Ditto
|
|
immutable(char)* sqlite3_libversion();
|
|
/// Ditto
|
|
immutable(char)* sqlite3_sourceid();
|
|
/// Ditto
|
|
int sqlite3_libversion_number();
|
|
|
|
/**
|
|
* CAPI3REF: Run-Time Library Compilation Options Diagnostics
|
|
*/
|
|
int sqlite3_compileoption_used(const char *zOptName);
|
|
/// Ditto
|
|
immutable(char)* sqlite3_compileoption_get(int N);
|
|
|
|
/**
|
|
* CAPI3REF: Test To See If The Library Is Threadsafe
|
|
*/
|
|
int sqlite3_threadsafe();
|
|
|
|
/**
|
|
* CAPI3REF: Database Connection Handle
|
|
*/
|
|
struct sqlite3;
|
|
|
|
///
|
|
alias sqlite3_int64 = long;
|
|
///
|
|
alias sqlite3_uint64 = ulong;
|
|
|
|
/**
|
|
* CAPI3REF: Closing A Database Connection
|
|
*
|
|
*/
|
|
int sqlite3_close(sqlite3 *);
|
|
int sqlite3_close_v2(sqlite3*);
|
|
|
|
/**
|
|
* The type for a callback function.
|
|
* This is legacy and deprecated. It is included for historical
|
|
* compatibility and is not documented.
|
|
*/
|
|
alias sqlite3_callback = int function (void*,int,char**, char**);
|
|
|
|
/**
|
|
* CAPI3REF: One-Step Query Execution Interface
|
|
*/
|
|
int sqlite3_exec(
|
|
sqlite3*, /** An open database */
|
|
const(char)*sql, /** SQL to be evaluated */
|
|
int function (void*,int,char**,char**) callback, /** Callback function */
|
|
void *, /** 1st argument to callback */
|
|
char **errmsg /** Error msg written here */
|
|
);
|
|
|
|
/**
|
|
* CAPI3REF: Result Codes
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_OK = 0, /** Successful result */
|
|
/* beginning-of-error-codes */
|
|
/// Ditto
|
|
SQLITE_ERROR = 1, /** Generic error */
|
|
SQLITE_INTERNAL = 2, /** Internal logic error in SQLite */
|
|
SQLITE_PERM = 3, /** Access permission denied */
|
|
SQLITE_ABORT = 4, /** Callback routine requested an abort */
|
|
SQLITE_BUSY = 5, /** The database file is locked */
|
|
SQLITE_LOCKED = 6, /** A table in the database is locked */
|
|
SQLITE_NOMEM = 7, /** A malloc() failed */
|
|
SQLITE_READONLY = 8, /** Attempt to write a readonly database */
|
|
SQLITE_INTERRUPT = 9, /** Operation terminated by sqlite3_interrupt()*/
|
|
SQLITE_IOERR = 10, /** Some kind of disk I/O error occurred */
|
|
SQLITE_CORRUPT = 11, /** The database disk image is malformed */
|
|
SQLITE_NOTFOUND = 12, /** Unknown opcode in sqlite3_file_control() */
|
|
SQLITE_FULL = 13, /** Insertion failed because database is full */
|
|
SQLITE_CANTOPEN = 14, /** Unable to open the database file */
|
|
SQLITE_PROTOCOL = 15, /** Database lock protocol error */
|
|
SQLITE_EMPTY = 16, /** Internal use only */
|
|
SQLITE_SCHEMA = 17, /** The database schema changed */
|
|
SQLITE_TOOBIG = 18, /** String or BLOB exceeds size limit */
|
|
SQLITE_CONSTRAINT = 19, /** Abort due to constraint violation */
|
|
SQLITE_MISMATCH = 20, /** Data type mismatch */
|
|
SQLITE_MISUSE = 21, /** Library used incorrectly */
|
|
SQLITE_NOLFS = 22, /** Uses OS features not supported on host */
|
|
SQLITE_AUTH = 23, /** Authorization denied */
|
|
SQLITE_FORMAT = 24, /** Not used */
|
|
SQLITE_RANGE = 25, /** 2nd parameter to sqlite3_bind out of range */
|
|
SQLITE_NOTADB = 26, /** File opened that is not a database file */
|
|
SQLITE_NOTICE = 27,
|
|
SQLITE_WARNING = 28,
|
|
SQLITE_ROW = 100, /** sqlite3_step() has another row ready */
|
|
SQLITE_DONE = 101 /** sqlite3_step() has finished executing */
|
|
}
|
|
/* end-of-error-codes */
|
|
|
|
/**
|
|
* CAPI3REF: Extended Result Codes
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_ERROR_MISSING_COLLSEQ = (SQLITE_ERROR | (1 << 8)),
|
|
SQLITE_ERROR_RETRY = (SQLITE_ERROR | (2 << 8)),
|
|
SQLITE_ERROR_SNAPSHOT = (SQLITE_ERROR | (3 << 8)),
|
|
SQLITE_IOERR_READ = (SQLITE_IOERR | (1 << 8)),
|
|
SQLITE_IOERR_SHORT_READ = (SQLITE_IOERR | (2 << 8)),
|
|
SQLITE_IOERR_WRITE = (SQLITE_IOERR | (3 << 8)),
|
|
SQLITE_IOERR_FSYNC = (SQLITE_IOERR | (4 << 8)),
|
|
SQLITE_IOERR_DIR_FSYNC = (SQLITE_IOERR | (5 << 8)),
|
|
SQLITE_IOERR_TRUNCATE = (SQLITE_IOERR | (6 << 8)),
|
|
SQLITE_IOERR_FSTAT = (SQLITE_IOERR | (7 << 8)),
|
|
SQLITE_IOERR_UNLOCK = (SQLITE_IOERR | (8 << 8)),
|
|
SQLITE_IOERR_RDLOCK = (SQLITE_IOERR | (9 << 8)),
|
|
SQLITE_IOERR_DELETE = (SQLITE_IOERR | (10 << 8)),
|
|
SQLITE_IOERR_BLOCKED = (SQLITE_IOERR | (11 << 8)),
|
|
SQLITE_IOERR_NOMEM = (SQLITE_IOERR | (12 << 8)),
|
|
SQLITE_IOERR_ACCESS = (SQLITE_IOERR | (13 << 8)),
|
|
SQLITE_IOERR_CHECKRESERVEDLOCK = (SQLITE_IOERR | (14 << 8)),
|
|
SQLITE_IOERR_LOCK = (SQLITE_IOERR | (15 << 8)),
|
|
SQLITE_IOERR_CLOSE = (SQLITE_IOERR | (16 << 8)),
|
|
SQLITE_IOERR_DIR_CLOSE = (SQLITE_IOERR | (17 << 8)),
|
|
SQLITE_IOERR_SHMOPEN = (SQLITE_IOERR | (18 << 8)),
|
|
SQLITE_IOERR_SHMSIZE = (SQLITE_IOERR | (19 << 8)),
|
|
SQLITE_IOERR_SHMLOCK = (SQLITE_IOERR | (20 << 8)),
|
|
SQLITE_IOERR_SHMMAP = (SQLITE_IOERR | (21 << 8)),
|
|
SQLITE_IOERR_SEEK = (SQLITE_IOERR | (22 << 8)),
|
|
SQLITE_IOERR_DELETE_NOENT = (SQLITE_IOERR | (23 << 8)),
|
|
SQLITE_IOERR_MMAP = (SQLITE_IOERR | (24 << 8)),
|
|
SQLITE_IOERR_GETTEMPPATH = (SQLITE_IOERR | (25 << 8)),
|
|
SQLITE_IOERR_CONVPATH = (SQLITE_IOERR | (26 << 8)),
|
|
SQLITE_IOERR_VNODE = (SQLITE_IOERR | (27 << 8)),
|
|
SQLITE_IOERR_AUTH = (SQLITE_IOERR | (28 << 8)),
|
|
SQLITE_IOERR_BEGIN_ATOMIC = (SQLITE_IOERR | (29 << 8)),
|
|
SQLITE_IOERR_COMMIT_ATOMIC = (SQLITE_IOERR | (30 << 8)),
|
|
SQLITE_IOERR_ROLLBACK_ATOMIC = (SQLITE_IOERR | (31 << 8)),
|
|
SQLITE_IOERR_DATA = (SQLITE_IOERR | (32 << 8)),
|
|
SQLITE_LOCKED_SHAREDCACHE = (SQLITE_LOCKED | (1 << 8)),
|
|
SQLITE_LOCKED_VTAB = (SQLITE_LOCKED | (2 << 8)),
|
|
SQLITE_BUSY_RECOVERY = (SQLITE_BUSY | (1 << 8)),
|
|
SQLITE_BUSY_SNAPSHOT = (SQLITE_BUSY | (2 << 8)),
|
|
SQLITE_BUSY_TIMEOUT = (SQLITE_BUSY | (3 << 8)),
|
|
SQLITE_CANTOPEN_NOTEMPDIR = (SQLITE_CANTOPEN | (1 << 8)),
|
|
SQLITE_CANTOPEN_ISDIR = (SQLITE_CANTOPEN | (2 << 8)),
|
|
SQLITE_CANTOPEN_FULLPATH = (SQLITE_CANTOPEN | (3 << 8)),
|
|
SQLITE_CANTOPEN_CONVPATH = (SQLITE_CANTOPEN | (4 << 8)),
|
|
SQLITE_CANTOPEN_DIRTYWAL = (SQLITE_CANTOPEN | (5 << 8)), /* Not Used */
|
|
SQLITE_CANTOPEN_SYMLINK = (SQLITE_CANTOPEN | (6 << 8)),
|
|
SQLITE_CORRUPT_VTAB = (SQLITE_CORRUPT | (1 << 8)),
|
|
SQLITE_CORRUPT_SEQUENCE = (SQLITE_CORRUPT | (2 << 8)),
|
|
SQLITE_CORRUPT_INDEX = (SQLITE_CORRUPT | (3 << 8)),
|
|
SQLITE_READONLY_RECOVERY = (SQLITE_READONLY | (1 << 8)),
|
|
SQLITE_READONLY_CANTLOCK = (SQLITE_READONLY | (2 << 8)),
|
|
SQLITE_READONLY_ROLLBACK = (SQLITE_READONLY | (3 << 8)),
|
|
SQLITE_READONLY_DBMOVED = (SQLITE_READONLY | (4 << 8)),
|
|
SQLITE_READONLY_CANTINIT = (SQLITE_READONLY | (5 << 8)),
|
|
SQLITE_READONLY_DIRECTORY = (SQLITE_READONLY | (6 << 8)),
|
|
SQLITE_ABORT_ROLLBACK = (SQLITE_ABORT | (2 << 8)),
|
|
SQLITE_CONSTRAINT_CHECK = (SQLITE_CONSTRAINT | (1 << 8)),
|
|
SQLITE_CONSTRAINT_COMMITHOOK = (SQLITE_CONSTRAINT | (2 << 8)),
|
|
SQLITE_CONSTRAINT_FOREIGNKEY = (SQLITE_CONSTRAINT | (3 << 8)),
|
|
SQLITE_CONSTRAINT_FUNCTION = (SQLITE_CONSTRAINT | (4 << 8)),
|
|
SQLITE_CONSTRAINT_NOTNULL = (SQLITE_CONSTRAINT | (5 << 8)),
|
|
SQLITE_CONSTRAINT_PRIMARYKEY = (SQLITE_CONSTRAINT | (6 << 8)),
|
|
SQLITE_CONSTRAINT_TRIGGER = (SQLITE_CONSTRAINT | (7 << 8)),
|
|
SQLITE_CONSTRAINT_UNIQUE = (SQLITE_CONSTRAINT | (8 << 8)),
|
|
SQLITE_CONSTRAINT_VTAB = (SQLITE_CONSTRAINT | (9 << 8)),
|
|
SQLITE_CONSTRAINT_ROWID = (SQLITE_CONSTRAINT |(10 << 8)),
|
|
QLITE_CONSTRAINT_PINNED = (SQLITE_CONSTRAINT |(11 << 8)),
|
|
SQLITE_NOTICE_RECOVER_WAL = (SQLITE_NOTICE | (1 << 8)),
|
|
SQLITE_NOTICE_RECOVER_ROLLBACK = (SQLITE_NOTICE | (2 << 8)),
|
|
SQLITE_WARNING_AUTOINDEX = (SQLITE_WARNING | (1 << 8)),
|
|
SQLITE_AUTH_USER = (SQLITE_AUTH | (1 << 8)),
|
|
SQLITE_OK_LOAD_PERMANENTLY = (SQLITE_OK | (1 << 8)),
|
|
SQLITE_OK_SYMLINK = (SQLITE_OK | (2 << 8))
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Flags For File Open Operations
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_OPEN_READONLY = 0x00000001, /** Ok for sqlite3_open_v2() */
|
|
SQLITE_OPEN_READWRITE = 0x00000002, /** Ok for sqlite3_open_v2() */
|
|
SQLITE_OPEN_CREATE = 0x00000004, /** Ok for sqlite3_open_v2() */
|
|
SQLITE_OPEN_DELETEONCLOSE = 0x00000008, /** VFS only */
|
|
SQLITE_OPEN_EXCLUSIVE = 0x00000010, /** VFS only */
|
|
SQLITE_OPEN_AUTOPROXY = 0x00000020, /** VFS only */
|
|
SQLITE_OPEN_URI = 0x00000040, /** Ok for sqlite3_open_v2() */
|
|
SQLITE_OPEN_MEMORY = 0x00000080, /** Ok for sqlite3_open_v2() */
|
|
SQLITE_OPEN_MAIN_DB = 0x00000100, /** VFS only */
|
|
SQLITE_OPEN_TEMP_DB = 0x00000200, /** VFS only */
|
|
SQLITE_OPEN_TRANSIENT_DB = 0x00000400, /** VFS only */
|
|
SQLITE_OPEN_MAIN_JOURNAL = 0x00000800, /** VFS only */
|
|
SQLITE_OPEN_TEMP_JOURNAL = 0x00001000, /** VFS only */
|
|
SQLITE_OPEN_SUBJOURNAL = 0x00002000, /** VFS only */
|
|
SQLITE_OPEN_SUPER_JOURNAL = 0x00004000, /** VFS only */
|
|
SQLITE_OPEN_NOMUTEX = 0x00008000, /** Ok for sqlite3_open_v2() */
|
|
SQLITE_OPEN_FULLMUTEX = 0x00010000, /** Ok for sqlite3_open_v2() */
|
|
SQLITE_OPEN_SHAREDCACHE = 0x00020000, /** Ok for sqlite3_open_v2() */
|
|
SQLITE_OPEN_PRIVATECACHE = 0x00040000, /** Ok for sqlite3_open_v2() */
|
|
SQLITE_OPEN_WAL = 0x00080000, /** VFS only */
|
|
SQLITE_OPEN_NOFOLLOW = 0x01000000 /** Ok for sqlite3_open_v2() */
|
|
}
|
|
|
|
deprecated ("Legacy compatibility")
|
|
{
|
|
alias SQLITE_OPEN_MASTER_JOURNAL = SQLITE_OPEN_SUPER_JOURNAL; /** VFS only */
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Device Characteristics
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_IOCAP_ATOMIC = 0x00000001,
|
|
SQLITE_IOCAP_ATOMIC512 = 0x00000002,
|
|
SQLITE_IOCAP_ATOMIC1K = 0x00000004,
|
|
SQLITE_IOCAP_ATOMIC2K = 0x00000008,
|
|
SQLITE_IOCAP_ATOMIC4K = 0x00000010,
|
|
SQLITE_IOCAP_ATOMIC8K = 0x00000020,
|
|
SQLITE_IOCAP_ATOMIC16K = 0x00000040,
|
|
SQLITE_IOCAP_ATOMIC32K = 0x00000080,
|
|
SQLITE_IOCAP_ATOMIC64K = 0x00000100,
|
|
SQLITE_IOCAP_SAFE_APPEND = 0x00000200,
|
|
SQLITE_IOCAP_SEQUENTIAL = 0x00000400,
|
|
SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN = 0x00000800,
|
|
SQLITE_IOCAP_POWERSAFE_OVERWRITE = 0x00001000,
|
|
SQLITE_IOCAP_IMMUTABLE = 0x00002000,
|
|
SQLITE_IOCAP_BATCH_ATOMIC = 0x00004000
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: File Locking Levels
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_LOCK_NONE = 0,
|
|
SQLITE_LOCK_SHARED = 1,
|
|
SQLITE_LOCK_RESERVED = 2,
|
|
SQLITE_LOCK_PENDING = 3,
|
|
SQLITE_LOCK_EXCLUSIVE = 4
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Synchronization Type Flags
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_SYNC_NORMAL = 0x00002,
|
|
SQLITE_SYNC_FULL = 0x00003,
|
|
SQLITE_SYNC_DATAONLY = 0x00010
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: OS Interface Open File Handle
|
|
*/
|
|
struct sqlite3_file
|
|
{
|
|
const(sqlite3_io_methods)*pMethods; /* Methods for an open file */
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: OS Interface File Virtual Methods Object
|
|
*/
|
|
|
|
struct sqlite3_io_methods
|
|
{
|
|
int iVersion;
|
|
int function (sqlite3_file*) xClose;
|
|
int function (sqlite3_file*, void*, int iAmt, sqlite3_int64 iOfst) xRead;
|
|
int function (sqlite3_file*, const void*, int iAmt, sqlite3_int64 iOfst) xWrite;
|
|
int function (sqlite3_file*, sqlite3_int64 size) xTruncate;
|
|
int function (sqlite3_file*, int flags) xSync;
|
|
int function (sqlite3_file*, sqlite3_int64 *pSize) xFileSize;
|
|
int function (sqlite3_file*, int) xLock;
|
|
int function (sqlite3_file*, int) xUnlock;
|
|
int function (sqlite3_file*, int *pResOut) xCheckReservedLock;
|
|
int function (sqlite3_file*, int op, void *pArg) xFileControl;
|
|
int function (sqlite3_file*) xSectorSize;
|
|
int function (sqlite3_file*) xDeviceCharacteristics;
|
|
/* Methods above are valid for version 1 */
|
|
int function (sqlite3_file*, int iPg, int pgsz, int, void **) xShmMap;
|
|
int function (sqlite3_file*, int offset, int n, int flags) xShmLock;
|
|
void function (sqlite3_file*) xShmBarrier;
|
|
int function (sqlite3_file*, int deleteFlag) xShmUnmap;
|
|
/* Methods above are valid for version 2 */
|
|
/* Additional methods may be added in future releases */
|
|
int function (sqlite3_file*, sqlite3_int64 iOfst, int iAmt, void **pp) xFetch;
|
|
int function (sqlite3_file*, sqlite3_int64 iOfst, void *p) xUnfetch;
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Standard File Control Opcodes
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_FCNTL_LOCKSTATE = 1,
|
|
SQLITE_FCNTL_GET_LOCKPROXYFILE = 2,
|
|
SQLITE_FCNTL_SET_LOCKPROXYFILE = 3,
|
|
SQLITE_FCNTL_LAST_ERRNO = 4,
|
|
SQLITE_FCNTL_SIZE_HINT = 5,
|
|
SQLITE_FCNTL_CHUNK_SIZE = 6,
|
|
SQLITE_FCNTL_FILE_POINTER = 7,
|
|
SQLITE_FCNTL_SYNC_OMITTED = 8,
|
|
SQLITE_FCNTL_WIN32_AV_RETRY = 9,
|
|
SQLITE_FCNTL_PERSIST_WAL = 10,
|
|
SQLITE_FCNTL_OVERWRITE = 11,
|
|
SQLITE_FCNTL_VFSNAME = 12,
|
|
SQLITE_FCNTL_POWERSAFE_OVERWRITE = 13,
|
|
SQLITE_FCNTL_PRAGMA = 14,
|
|
SQLITE_FCNTL_BUSYHANDLER = 15,
|
|
SQLITE_FCNTL_TEMPFILENAME = 16,
|
|
SQLITE_FCNTL_MMAP_SIZE = 18,
|
|
SQLITE_FCNTL_TRACE = 19,
|
|
SQLITE_FCNTL_HAS_MOVED = 20,
|
|
SQLITE_FCNTL_SYNC = 21,
|
|
SQLITE_FCNTL_COMMIT_PHASETWO = 22,
|
|
SQLITE_FCNTL_WIN32_SET_HANDLE = 23,
|
|
SQLITE_FCNTL_WAL_BLOCK = 24,
|
|
SQLITE_FCNTL_ZIPVFS = 25,
|
|
SQLITE_FCNTL_RBU = 26,
|
|
SQLITE_FCNTL_VFS_POINTER = 27,
|
|
SQLITE_FCNTL_JOURNAL_POINTER = 28,
|
|
SQLITE_FCNTL_WIN32_GET_HANDLE = 29,
|
|
SQLITE_FCNTL_PDB = 30,
|
|
SQLITE_FCNTL_BEGIN_ATOMIC_WRITE = 31,
|
|
SQLITE_FCNTL_COMMIT_ATOMIC_WRITE = 32,
|
|
SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE = 33,
|
|
SQLITE_FCNTL_LOCK_TIMEOUT = 34,
|
|
SQLITE_FCNTL_DATA_VERSION = 35,
|
|
SQLITE_FCNTL_SIZE_LIMIT = 36,
|
|
SQLITE_FCNTL_CKPT_DONE = 37,
|
|
SQLITE_FCNTL_RESERVE_BYTES = 38,
|
|
SQLITE_FCNTL_CKPT_START = 39
|
|
}
|
|
|
|
deprecated ("deprecated names")
|
|
{
|
|
alias SQLITE_GET_LOCKPROXYFILE = SQLITE_FCNTL_GET_LOCKPROXYFILE;
|
|
alias SQLITE_SET_LOCKPROXYFILE = SQLITE_FCNTL_SET_LOCKPROXYFILE;
|
|
alias SQLITE_LAST_ERRNO = SQLITE_FCNTL_LAST_ERRNO;
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Mutex Handle
|
|
*/
|
|
struct sqlite3_mutex;
|
|
|
|
/**
|
|
* CAPI3REF: Loadable Extension Thunk
|
|
*/
|
|
struct sqlite3_api_routines;
|
|
|
|
/**
|
|
* CAPI3REF: OS Interface Object
|
|
*/
|
|
|
|
alias xDlSymReturn = void * function();
|
|
/// Ditto
|
|
alias sqlite3_syscall_ptr = void function();
|
|
|
|
struct sqlite3_vfs
|
|
{
|
|
int iVersion; /** Structure version number (currently 2) */
|
|
int szOsFile; /** Size of subclassed sqlite3_file */
|
|
int mxPathname; /** Maximum file pathname length */
|
|
sqlite3_vfs *pNext; /** Next registered VFS */
|
|
const(char)*zName; /** Name of this virtual file system */
|
|
void *pAppData; /** Pointer to application-specific data */
|
|
int function (sqlite3_vfs*, const char *zName, sqlite3_file*,
|
|
int flags, int *pOutFlags) xOpen;
|
|
int function (sqlite3_vfs*, const char *zName, int syncDir) xDelete;
|
|
int function (sqlite3_vfs*, const char *zName, int flags, int *pResOut) xAccess;
|
|
int function (sqlite3_vfs*, const char *zName, int nOut, char *zOut) xFullPathname;
|
|
void* function (sqlite3_vfs*, const char *zFilename) xDlOpen;
|
|
void function (sqlite3_vfs*, int nByte, char *zErrMsg) xDlError;
|
|
xDlSymReturn function (sqlite3_vfs*,void*, const char *zSymbol) *xDlSym;
|
|
void function (sqlite3_vfs*, void*) xDlClose;
|
|
int function (sqlite3_vfs*, int nByte, char *zOut) xRandomness;
|
|
int function (sqlite3_vfs*, int microseconds) xSleep;
|
|
int function (sqlite3_vfs*, double*) xCurrentTime;
|
|
int function (sqlite3_vfs*, int, char *) xGetLastError;
|
|
/*
|
|
** The methods above are in version 1 of the sqlite_vfs object
|
|
** definition. Those that follow are added in version 2 or later
|
|
*/
|
|
int function (sqlite3_vfs*, sqlite3_int64*) xCurrentTimeInt64;
|
|
/*
|
|
** The methods above are in versions 1 and 2 of the sqlite_vfs object.
|
|
** Those below are for version 3 and greater.
|
|
*/
|
|
int function(sqlite3_vfs*, const char * zName, sqlite3_syscall_ptr) xSetSystemCall;
|
|
sqlite3_syscall_ptr function(sqlite3_vfs*, const char * zName) xGetSystemCall;
|
|
const(char)* function(sqlite3_vfs*, const char * zName) xNextSystemCall;
|
|
/*
|
|
** The methods above are in versions 1 through 3 of the sqlite_vfs object.
|
|
** New fields may be appended in figure versions. The iVersion
|
|
** value will increment whenever this happens.
|
|
*/
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Flags for the xAccess VFS method
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_ACCESS_EXISTS = 0,
|
|
|
|
SQLITE_ACCESS_READWRITE = 1, /** Used by PRAGMA temp_store_directory */
|
|
SQLITE_ACCESS_READ = 2 /** Unused */
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Flags for the xShmLock VFS method
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_SHM_UNLOCK = 1,
|
|
SQLITE_SHM_LOCK = 2,
|
|
SQLITE_SHM_SHARED = 4,
|
|
SQLITE_SHM_EXCLUSIVE = 8
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Maximum xShmLock index
|
|
*/
|
|
enum SQLITE_SHM_NLOCK = 8;
|
|
|
|
|
|
/**
|
|
* CAPI3REF: Initialize The SQLite Library
|
|
*/
|
|
int sqlite3_initialize();
|
|
/// Ditto
|
|
int sqlite3_shutdown();
|
|
/// Ditto
|
|
int sqlite3_os_init();
|
|
/// Ditto
|
|
int sqlite3_os_end();
|
|
|
|
/**
|
|
* CAPI3REF: Configuring The SQLite Library
|
|
*/
|
|
int sqlite3_config(int, ...);
|
|
|
|
/**
|
|
* CAPI3REF: Configure database connections
|
|
*/
|
|
int sqlite3_db_config(sqlite3*, int op, ...);
|
|
|
|
/**
|
|
* CAPI3REF: Memory Allocation Routines
|
|
*/
|
|
struct sqlite3_mem_methods
|
|
{
|
|
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() */
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Configuration Options
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_CONFIG_SINGLETHREAD = 1, /** nil */
|
|
SQLITE_CONFIG_MULTITHREAD = 2, /** nil */
|
|
SQLITE_CONFIG_SERIALIZED = 3, /** nil */
|
|
SQLITE_CONFIG_MALLOC = 4, /** sqlite3_mem_methods* */
|
|
SQLITE_CONFIG_GETMALLOC = 5, /** sqlite3_mem_methods* */
|
|
SQLITE_CONFIG_SCRATCH = 6, /** No longer used */
|
|
SQLITE_CONFIG_PAGECACHE = 7, /** void*, int sz, int N */
|
|
SQLITE_CONFIG_HEAP = 8, /** void*, int nByte, int min */
|
|
SQLITE_CONFIG_MEMSTATUS = 9, /** boolean */
|
|
SQLITE_CONFIG_MUTEX = 10, /** sqlite3_mutex_methods* */
|
|
SQLITE_CONFIG_GETMUTEX = 11, /** sqlite3_mutex_methods* */
|
|
/* previously SQLITE_CONFIG_CHUNKALLOC 12 which is now unused. */
|
|
SQLITE_CONFIG_LOOKASIDE = 13, /** int int */
|
|
SQLITE_CONFIG_PCACHE = 14, /** no-op */
|
|
SQLITE_CONFIG_GETPCACHE = 15, /** no-op */
|
|
SQLITE_CONFIG_LOG = 16, /** xFunc, void* */
|
|
SQLITE_CONFIG_URI = 17, /** int */
|
|
SQLITE_CONFIG_PCACHE2 = 18, /** sqlite3_pcache_methods2* */
|
|
SQLITE_CONFIG_GETPCACHE2 = 19, /** sqlite3_pcache_methods2* */
|
|
SQLITE_CONFIG_COVERING_INDEX_SCAN = 20, /** int */
|
|
SQLITE_CONFIG_SQLLOG = 21, /** xSqllog, void* */
|
|
SQLITE_CONFIG_MMAP_SIZE = 22, /** sqlite3_int64, sqlite3_int64 */
|
|
SQLITE_CONFIG_WIN32_HEAPSIZE = 23, /** int nByte */
|
|
SQLITE_CONFIG_PCACHE_HDRSZ = 24, /** int *psz */
|
|
SQLITE_CONFIG_PMASZ = 25, /** unsigned int szPma */
|
|
SQLITE_CONFIG_STMTJRNL_SPILL = 26, /** int nByte */
|
|
SQLITE_CONFIG_SMALL_MALLOC = 27, /** boolean */
|
|
SQLITE_CONFIG_SORTERREF_SIZE = 28, /** int nByte */
|
|
SQLITE_CONFIG_MEMDB_MAXSIZE = 29 /** sqlite3_int64 */
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Database Connection Configuration Options
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_DBCONFIG_MAINDBNAME = 1000, /** const char* */
|
|
SQLITE_DBCONFIG_LOOKASIDE = 1001, /** void* int int */
|
|
SQLITE_DBCONFIG_ENABLE_FKEY = 1002, /** int int* */
|
|
SQLITE_DBCONFIG_ENABLE_TRIGGER = 1003, /** int int* */
|
|
SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER = 1004, /** int int* */
|
|
SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION = 1005, /** int int* */
|
|
SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE = 1006, /** int int* */
|
|
SQLITE_DBCONFIG_ENABLE_QPSG = 1007, /** int int* */
|
|
SQLITE_DBCONFIG_TRIGGER_EQP = 1008, /** int int* */
|
|
SQLITE_DBCONFIG_RESET_DATABASE = 1009, /** int int* */
|
|
SQLITE_DBCONFIG_DEFENSIVE = 1010, /** int int* */
|
|
SQLITE_DBCONFIG_WRITABLE_SCHEMA = 1011, /** int int* */
|
|
SQLITE_DBCONFIG_LEGACY_ALTER_TABLE = 1012, /** int int* */
|
|
SQLITE_DBCONFIG_DQS_DML = 1013, /** int int* */
|
|
SQLITE_DBCONFIG_DQS_DDL = 1014, /** int int* */
|
|
SQLITE_DBCONFIG_ENABLE_VIEW = 1015, /** int int* */
|
|
SQLITE_DBCONFIG_LEGACY_FILE_FORMAT = 1016, /** int int* */
|
|
SQLITE_DBCONFIG_TRUSTED_SCHEMA = 1017, /** int int* */
|
|
SQLITE_DBCONFIG_MAX = 1017 /** Largest DBCONFIG */
|
|
}
|
|
|
|
|
|
/**
|
|
* CAPI3REF: Enable Or Disable Extended Result Codes
|
|
*/
|
|
int sqlite3_extended_result_codes(sqlite3*, int onoff);
|
|
|
|
/**
|
|
* CAPI3REF: Last Insert Rowid
|
|
*/
|
|
sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*);
|
|
|
|
/**
|
|
* CAPI3REF: Set the Last Insert Rowid value
|
|
*/
|
|
void sqlite3_set_last_insert_rowid(sqlite3*,sqlite3_int64);
|
|
|
|
/**
|
|
* CAPI3REF: Count The Number Of Rows Modified
|
|
*/
|
|
int sqlite3_changes(sqlite3*);
|
|
|
|
/**
|
|
* CAPI3REF: Total Number Of Rows Modified
|
|
*/
|
|
int sqlite3_total_changes(sqlite3*);
|
|
|
|
/**
|
|
* CAPI3REF: Interrupt A Long-Running Query
|
|
*/
|
|
void sqlite3_interrupt(sqlite3*);
|
|
|
|
/**
|
|
* CAPI3REF: Determine If An SQL Statement Is Complete
|
|
*/
|
|
int sqlite3_complete(const char *sql);
|
|
/// Ditto
|
|
int sqlite3_complete16(const void *sql);
|
|
|
|
/**
|
|
* CAPI3REF: Register A Callback To Handle SQLITE_BUSY Errors
|
|
*/
|
|
int sqlite3_busy_handler(sqlite3*, int function (void*,int), void*);
|
|
|
|
/**
|
|
* CAPI3REF: Set A Busy Timeout
|
|
*/
|
|
int sqlite3_busy_timeout(sqlite3*, int ms);
|
|
|
|
/**
|
|
* CAPI3REF: Convenience Routines For Running Queries
|
|
*/
|
|
int sqlite3_get_table(
|
|
sqlite3 *db, /** An open database */
|
|
const(char)*zSql, /** SQL to be evaluated */
|
|
char ***pazResult, /** Results of the query */
|
|
int *pnRow, /** Number of result rows written here */
|
|
int *pnColumn, /** Number of result columns written here */
|
|
char **pzErrmsg /** Error msg written here */
|
|
);
|
|
///
|
|
void sqlite3_free_table(char **result);
|
|
|
|
/**
|
|
* CAPI3REF: Formatted String Printing Functions
|
|
*/
|
|
char *sqlite3_mprintf(const char*,...);
|
|
char *sqlite3_vmprintf(const char*, va_list);
|
|
char *sqlite3_snprintf(int,char*,const char*, ...);
|
|
char *sqlite3_vsnprintf(int,char*,const char*, va_list);
|
|
|
|
/**
|
|
* CAPI3REF: Memory Allocation Subsystem
|
|
*/
|
|
void *sqlite3_malloc(int);
|
|
/// Ditto
|
|
void *sqlite3_malloc64(sqlite3_uint64);
|
|
/// Ditto
|
|
void *sqlite3_realloc(void*, int);
|
|
/// Ditto
|
|
void *sqlite3_realloc64(void*, sqlite3_uint64);
|
|
/// Ditto
|
|
void sqlite3_free(void*);
|
|
/// Ditto
|
|
sqlite3_uint64 sqlite3_msize(void*);
|
|
|
|
/**
|
|
* CAPI3REF: Memory Allocator Statistics
|
|
*/
|
|
sqlite3_int64 sqlite3_memory_used();
|
|
sqlite3_int64 sqlite3_memory_highwater(int resetFlag);
|
|
|
|
/**
|
|
* CAPI3REF: Pseudo-Random Number Generator
|
|
*/
|
|
void sqlite3_randomness(int N, void *P);
|
|
|
|
/**
|
|
* CAPI3REF: Compile-Time Authorization Callbacks
|
|
*/
|
|
int sqlite3_set_authorizer(
|
|
sqlite3*,
|
|
int function (void*,int,const char*,const char*,const char*,const char*) xAuth,
|
|
void *pUserData
|
|
);
|
|
|
|
/**
|
|
* CAPI3REF: Authorizer Return Codes
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_DENY = 1, /** Abort the SQL statement with an error */
|
|
SQLITE_IGNORE = 2 /** Don't allow access, but don't generate an error */
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Authorizer Action Codes
|
|
*/
|
|
/******************************************* 3rd ************ 4th ***********/
|
|
enum
|
|
{
|
|
SQLITE_CREATE_INDEX = 1, /** Index Name Table Name */
|
|
SQLITE_CREATE_TABLE = 2, /** Table Name NULL */
|
|
SQLITE_CREATE_TEMP_INDEX = 3, /** Index Name Table Name */
|
|
SQLITE_CREATE_TEMP_TABLE = 4, /** Table Name NULL */
|
|
SQLITE_CREATE_TEMP_TRIGGER = 5, /** Trigger Name Table Name */
|
|
SQLITE_CREATE_TEMP_VIEW = 6, /** View Name NULL */
|
|
SQLITE_CREATE_TRIGGER = 7, /** Trigger Name Table Name */
|
|
SQLITE_CREATE_VIEW = 8, /** View Name NULL */
|
|
SQLITE_DELETE = 9, /** Table Name NULL */
|
|
SQLITE_DROP_INDEX = 10, /** Index Name Table Name */
|
|
SQLITE_DROP_TABLE = 11, /** Table Name NULL */
|
|
SQLITE_DROP_TEMP_INDEX = 12, /** Index Name Table Name */
|
|
SQLITE_DROP_TEMP_TABLE = 13, /** Table Name NULL */
|
|
SQLITE_DROP_TEMP_TRIGGER = 14, /** Trigger Name Table Name */
|
|
SQLITE_DROP_TEMP_VIEW = 15, /** View Name NULL */
|
|
SQLITE_DROP_TRIGGER = 16, /** Trigger Name Table Name */
|
|
SQLITE_DROP_VIEW = 17, /** View Name NULL */
|
|
SQLITE_INSERT = 18, /** Table Name NULL */
|
|
SQLITE_PRAGMA = 19, /** Pragma Name 1st arg or NULL */
|
|
SQLITE_READ = 20, /** Table Name Column Name */
|
|
SQLITE_SELECT = 21, /** NULL NULL */
|
|
SQLITE_TRANSACTION = 22, /** Operation NULL */
|
|
SQLITE_UPDATE = 23, /** Table Name Column Name */
|
|
SQLITE_ATTACH = 24, /** Filename NULL */
|
|
SQLITE_DETACH = 25, /** Database Name NULL */
|
|
SQLITE_ALTER_TABLE = 26, /** Database Name Table Name */
|
|
SQLITE_REINDEX = 27, /** Index Name NULL */
|
|
SQLITE_ANALYZE = 28, /** Table Name NULL */
|
|
SQLITE_CREATE_VTABLE = 29, /** Table Name Module Name */
|
|
SQLITE_DROP_VTABLE = 30, /** Table Name Module Name */
|
|
SQLITE_FUNCTION = 31, /** NULL Function Name */
|
|
SQLITE_SAVEPOINT = 32, /** Operation Savepoint Name */
|
|
SQLITE_COPY = 0, /** No longer used */
|
|
SQLITE_RECURSIVE = 33 /** NULL NULL */
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Tracing And Profiling Functions
|
|
*/
|
|
deprecated void *sqlite3_trace(sqlite3*, void function (void*,const char*) xTrace, void*);
|
|
/// Ditto
|
|
deprecated void *sqlite3_profile(sqlite3*, void function (void*,const char*,sqlite3_uint64) xProfile, void*);
|
|
|
|
/**
|
|
* CAPI3REF: SQL Trace Event Codes
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_TRACE_STMT = 0x01,
|
|
SQLITE_TRACE_PROFILE = 0x02,
|
|
SQLITE_TRACE_ROW = 0x04,
|
|
SQLITE_TRACE_CLOSE = 0x08
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: SQL Trace Hook
|
|
*/
|
|
int sqlite3_trace_v2(
|
|
sqlite3*,
|
|
uint uMask,
|
|
int function (uint, void*, void*, void*) xCallback,
|
|
void* pCtx
|
|
);
|
|
|
|
/**
|
|
* CAPI3REF: Query Progress Callbacks
|
|
*/
|
|
void sqlite3_progress_handler(sqlite3*, int, int function (void*), void*);
|
|
|
|
/**
|
|
* CAPI3REF: Opening A New Database Connection
|
|
*/
|
|
int sqlite3_open(
|
|
const(char)*filename, /** Database filename (UTF-8) */
|
|
sqlite3 **ppDb /** OUT: SQLite db handle */
|
|
);
|
|
/// Ditto
|
|
int sqlite3_open16(
|
|
const(void)*filename, /** Database filename (UTF-16) */
|
|
sqlite3 **ppDb /** OUT: SQLite db handle */
|
|
);
|
|
/// Ditto
|
|
int sqlite3_open_v2(
|
|
const(char)*filename, /** Database filename (UTF-8) */
|
|
sqlite3 **ppDb, /** OUT: SQLite db handle */
|
|
int flags, /** Flags */
|
|
const(char)*zVfs /** Name of VFS module to use */
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Obtain Values For URI Parameters
|
|
*/
|
|
const(char)* sqlite3_uri_parameter(const(char)* zFilename, const(char)* zParam);
|
|
/// Ditto
|
|
int sqlite3_uri_boolean(const(char)* zFile, const(char)* zParam, int bDefault);
|
|
/// Ditto
|
|
sqlite3_int64 sqlite3_uri_int64(const char*, const char*, sqlite3_int64);
|
|
/// Ditto
|
|
const(char)* sqlite3_uri_key(const(char)* zFilename, int N);
|
|
|
|
/*
|
|
* CAPI3REF: Translate filenames
|
|
*/
|
|
const(char)* sqlite3_filename_database(const(char)*);
|
|
/// Ditto
|
|
const(char)* sqlite3_filename_journal(const(char)*);
|
|
/// Ditto
|
|
const(char)* sqlite3_filename_wal(const(char)*);
|
|
|
|
/*
|
|
* CAPI3REF: Database File Corresponding To A Journal
|
|
*/
|
|
sqlite3_file* sqlite3_database_file_object(const(char)*);
|
|
|
|
/*
|
|
* CAPI3REF: Create and Destroy VFS Filenames
|
|
*/
|
|
char* sqlite3_create_filename(
|
|
const(char)* zDatabase,
|
|
const(char)* zJournal,
|
|
const(char)* zWal,
|
|
int nParam,
|
|
const(char*)* azParam
|
|
);
|
|
/// Ditto
|
|
void sqlite3_free_filename(char*);
|
|
|
|
/**
|
|
* CAPI3REF: Error Codes And Messages
|
|
*/
|
|
int sqlite3_errcode(sqlite3 *db);
|
|
/// Ditto
|
|
int sqlite3_extended_errcode(sqlite3 *db);
|
|
/// Ditto
|
|
const(char)* sqlite3_errmsg(sqlite3*);
|
|
/// Ditto
|
|
const(void)* sqlite3_errmsg16(sqlite3*);
|
|
/// Ditto
|
|
const(char)* sqlite3_errstr(int);
|
|
|
|
/**
|
|
* CAPI3REF: SQL Statement Object
|
|
*/
|
|
struct sqlite3_stmt;
|
|
|
|
/**
|
|
* CAPI3REF: Run-time Limits
|
|
*/
|
|
int sqlite3_limit(sqlite3*, int id, int newVal);
|
|
|
|
/**
|
|
* CAPI3REF: Run-Time Limit Categories
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_LIMIT_LENGTH = 0,
|
|
SQLITE_LIMIT_SQL_LENGTH = 1,
|
|
SQLITE_LIMIT_COLUMN = 2,
|
|
SQLITE_LIMIT_EXPR_DEPTH = 3,
|
|
SQLITE_LIMIT_COMPOUND_SELECT = 4,
|
|
SQLITE_LIMIT_VDBE_OP = 5,
|
|
SQLITE_LIMIT_FUNCTION_ARG = 6,
|
|
SQLITE_LIMIT_ATTACHED = 7,
|
|
SQLITE_LIMIT_LIKE_PATTERN_LENGTH = 8,
|
|
SQLITE_LIMIT_VARIABLE_NUMBER = 9,
|
|
SQLITE_LIMIT_TRIGGER_DEPTH = 10,
|
|
SQLITE_LIMIT_WORKER_THREADS = 11
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Prepare Flags
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_PREPARE_PERSISTENT = 0x01,
|
|
SQLITE_PREPARE_NORMALIZE = 0x02,
|
|
SQLITE_PREPARE_NO_VTAB = 0x04
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Compiling An SQL Statement
|
|
*/
|
|
int sqlite3_prepare(
|
|
sqlite3 *db, /** Database handle */
|
|
const(char)*zSql, /** SQL statement, UTF-8 encoded */
|
|
int nByte, /** Maximum length of zSql in bytes. */
|
|
sqlite3_stmt **ppStmt, /** OUT: Statement handle */
|
|
const(char*)*pzTail /** OUT: Pointer to unused portion of zSql */
|
|
);
|
|
/// Ditto
|
|
int sqlite3_prepare_v2(
|
|
sqlite3 *db, /** Database handle */
|
|
const(char)*zSql, /** SQL statement, UTF-8 encoded */
|
|
int nByte, /** Maximum length of zSql in bytes. */
|
|
sqlite3_stmt **ppStmt, /** OUT: Statement handle */
|
|
const(char*)*pzTail /** OUT: Pointer to unused portion of zSql */
|
|
);
|
|
/// Ditto
|
|
int sqlite3_prepare_v3(
|
|
sqlite3 *db, /** Database handle */
|
|
const(char)* zSql, /** SQL statement, UTF-8 encoded */
|
|
int nByte, /** Maximum length of zSql in bytes. */
|
|
uint prepFlags, /** Zero or more SQLITE_PREPARE_ flags */
|
|
sqlite3_stmt **ppStmt, /* OUT: Statement handle */
|
|
const(char*)*pzTail /* OUT: Pointer to unused portion of zSql */
|
|
);
|
|
/// Ditto
|
|
int sqlite3_prepare16(
|
|
sqlite3 *db, /** Database handle */
|
|
const(void)*zSql, /** SQL statement, UTF-16 encoded */
|
|
int nByte, /** Maximum length of zSql in bytes. */
|
|
sqlite3_stmt **ppStmt, /** OUT: Statement handle */
|
|
const(void*)*pzTail /** OUT: Pointer to unused portion of zSql */
|
|
);
|
|
/// Ditto
|
|
int sqlite3_prepare16_v2(
|
|
sqlite3 *db, /** Database handle */
|
|
const(void)*zSql, /** SQL statement, UTF-16 encoded */
|
|
int nByte, /** Maximum length of zSql in bytes. */
|
|
sqlite3_stmt **ppStmt, /** OUT: Statement handle */
|
|
const(void*)*pzTail /** OUT: Pointer to unused portion of zSql */
|
|
);
|
|
/// Ditto
|
|
int sqlite3_prepare16_v3(
|
|
sqlite3 *db, /** Database handle */
|
|
const(void)*zSql, /** SQL statement, UTF-16 encoded */
|
|
int nByte, /** Maximum length of zSql in bytes. */
|
|
uint prepFlags, /** Zero or more SQLITE_PREPARE_ flags */
|
|
sqlite3_stmt **ppStmt, /** OUT: Statement handle */
|
|
const(void*)*pzTail /** OUT: Pointer to unused portion of zSql */
|
|
);
|
|
|
|
/**
|
|
* CAPI3REF: Retrieving Statement SQL
|
|
*/
|
|
const(char)* sqlite3_sql(sqlite3_stmt *pStmt);
|
|
/// Ditto
|
|
char* sqlite3_expanded_sql(sqlite3_stmt *pStmt);
|
|
const(char)* sqlite3_normalized_sql(sqlite3_stmt *pStmt);
|
|
|
|
/*
|
|
* CAPI3REF: Determine If An SQL Statement Writes The Database
|
|
*/
|
|
int sqlite3_stmt_readonly(sqlite3_stmt *pStmt);
|
|
|
|
/*
|
|
* CAPI3REF: Query The EXPLAIN Setting For A Prepared Statement
|
|
*/
|
|
int sqlite3_stmt_isexplain(sqlite3_stmt *pStmt);
|
|
|
|
/**
|
|
* CAPI3REF: Determine If A Prepared Statement Has Been Reset
|
|
*/
|
|
int sqlite3_stmt_busy(sqlite3_stmt*);
|
|
|
|
|
|
/**
|
|
* CAPI3REF: Dynamically Typed Value Object
|
|
*/
|
|
struct sqlite3_value;
|
|
|
|
/**
|
|
* CAPI3REF: SQL Function Context Object
|
|
*/
|
|
struct sqlite3_context;
|
|
|
|
/**
|
|
* CAPI3REF: Binding Values To Prepared Statements
|
|
*/
|
|
int sqlite3_bind_blob(sqlite3_stmt*, int, const void*, int n, void function (void*));
|
|
/// Ditto
|
|
int sqlite3_bind_blob64(sqlite3_stmt*, int, const void*, sqlite3_uint64,void function (void*));
|
|
/// Ditto
|
|
int sqlite3_bind_double(sqlite3_stmt*, int, double);
|
|
/// Ditto
|
|
int sqlite3_bind_int(sqlite3_stmt*, int, int);
|
|
/// Ditto
|
|
int sqlite3_bind_int64(sqlite3_stmt*, int, sqlite3_int64);
|
|
/// Ditto
|
|
int sqlite3_bind_null(sqlite3_stmt*, int);
|
|
/// Ditto
|
|
int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int n, void function (void*));
|
|
/// Ditto
|
|
int sqlite3_bind_text16(sqlite3_stmt*, int, const void*, int, void function (void*));
|
|
/// Ditto
|
|
int sqlite3_bind_text64(sqlite3_stmt*, int, const char*, sqlite3_uint64,void function (void*), ubyte encoding);
|
|
/// Ditto
|
|
int sqlite3_bind_value(sqlite3_stmt*, int, const sqlite3_value*);
|
|
/// Ditto
|
|
int sqlite3_bind_zeroblob(sqlite3_stmt*, int, int n);
|
|
/// Ditto
|
|
int sqlite3_bind_zeroblob64(sqlite3_stmt*, int, sqlite3_uint64 n);
|
|
|
|
/**
|
|
* CAPI3REF: Number Of SQL Parameters
|
|
*/
|
|
int sqlite3_bind_parameter_count(sqlite3_stmt*);
|
|
|
|
/**
|
|
* CAPI3REF: Name Of A Host Parameter
|
|
*/
|
|
const(char)* sqlite3_bind_parameter_name(sqlite3_stmt*, int);
|
|
|
|
/**
|
|
* CAPI3REF: Index Of A Parameter With A Given Name
|
|
*/
|
|
int sqlite3_bind_parameter_index(sqlite3_stmt*, const char *zName);
|
|
|
|
/**
|
|
* CAPI3REF: Reset All Bindings On A Prepared Statement
|
|
*/
|
|
int sqlite3_clear_bindings(sqlite3_stmt*);
|
|
|
|
/**
|
|
* CAPI3REF: Number Of Columns In A Result Set
|
|
*/
|
|
int sqlite3_column_count(sqlite3_stmt *pStmt);
|
|
|
|
/**
|
|
* CAPI3REF: Column Names In A Result Set
|
|
*/
|
|
const(char)* sqlite3_column_name(sqlite3_stmt*, int N);
|
|
/// Ditto
|
|
const(void)* sqlite3_column_name16(sqlite3_stmt*, int N);
|
|
|
|
/**
|
|
* CAPI3REF: Source Of Data In A Query Result
|
|
*/
|
|
const(char)* sqlite3_column_database_name(sqlite3_stmt*,int);
|
|
/// Ditto
|
|
const(void)* sqlite3_column_database_name16(sqlite3_stmt*,int);
|
|
/// Ditto
|
|
const(char)* sqlite3_column_table_name(sqlite3_stmt*,int);
|
|
/// Ditto
|
|
const (void)* sqlite3_column_table_name16(sqlite3_stmt*,int);
|
|
/// Ditto
|
|
const (char)* sqlite3_column_origin_name(sqlite3_stmt*,int);
|
|
/// Ditto
|
|
const (void)* sqlite3_column_origin_name16(sqlite3_stmt*,int);
|
|
|
|
/**
|
|
* CAPI3REF: Declared Datatype Of A Query Result
|
|
*/
|
|
const (char)* sqlite3_column_decltype(sqlite3_stmt*,int);
|
|
/// Ditto
|
|
const (void)* sqlite3_column_decltype16(sqlite3_stmt*,int);
|
|
|
|
/**
|
|
* CAPI3REF: Evaluate An SQL Statement
|
|
*/
|
|
int sqlite3_step(sqlite3_stmt*);
|
|
|
|
/**
|
|
* CAPI3REF: Number of columns in a result set
|
|
*/
|
|
int sqlite3_data_count(sqlite3_stmt *pStmt);
|
|
|
|
/**
|
|
* CAPI3REF: Fundamental Datatypes
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_INTEGER = 1,
|
|
SQLITE_FLOAT = 2,
|
|
SQLITE_BLOB = 4,
|
|
SQLITE_NULL = 5,
|
|
SQLITE3_TEXT = 3
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Result Values From A Query
|
|
*/
|
|
const (void)* sqlite3_column_blob(sqlite3_stmt*, int iCol);
|
|
/// Ditto
|
|
double sqlite3_column_double(sqlite3_stmt*, int iCol);
|
|
/// Ditto
|
|
int sqlite3_column_int(sqlite3_stmt*, int iCol);
|
|
/// Ditto
|
|
sqlite3_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol);
|
|
/// Ditto
|
|
const (char)* sqlite3_column_text(sqlite3_stmt*, int iCol);
|
|
/// Ditto
|
|
const (void)* sqlite3_column_text16(sqlite3_stmt*, int iCol);
|
|
/// Ditto
|
|
sqlite3_value *sqlite3_column_value(sqlite3_stmt*, int iCol);
|
|
/// Ditto
|
|
int sqlite3_column_bytes(sqlite3_stmt*, int iCol);
|
|
/// Ditto
|
|
int sqlite3_column_bytes16(sqlite3_stmt*, int iCol);
|
|
/// Ditto
|
|
int sqlite3_column_type(sqlite3_stmt*, int iCol);
|
|
|
|
/**
|
|
* CAPI3REF: Destroy A Prepared Statement Object
|
|
*/
|
|
int sqlite3_finalize(sqlite3_stmt *pStmt);
|
|
|
|
/**
|
|
* CAPI3REF: Reset A Prepared Statement Object
|
|
*/
|
|
int sqlite3_reset(sqlite3_stmt *pStmt);
|
|
|
|
/**
|
|
* CAPI3REF: Create Or Redefine SQL Functions
|
|
*/
|
|
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
|
|
);
|
|
/// Ditto
|
|
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
|
|
);
|
|
/// Ditto
|
|
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
|
|
);
|
|
/// Ditto
|
|
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: Text Encodings
|
|
*
|
|
* These constant define integer codes that represent the various
|
|
* text encodings supported by SQLite.
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_UTF8 = 1, /** IMP: R-37514-35566 */
|
|
SQLITE_UTF16LE = 2, /** IMP: R-03371-37637 */
|
|
SQLITE_UTF16BE = 3, /** IMP: R-51971-34154 */
|
|
SQLITE_UTF16 = 4, /** Use native byte order */
|
|
SQLITE_ANY = 5, /** sqlite3_create_function only */
|
|
SQLITE_UTF16_ALIGNED = 8 /** sqlite3_create_collation only */
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Function Flags
|
|
*/
|
|
enum SQLITE_DETERMINISTIC = 0x000000800;
|
|
enum SQLITE_DIRECTONLY = 0x000080000;
|
|
enum SQLITE_SUBTYPE = 0x000100000;
|
|
enum SQLITE_INNOCUOUS = 0x000200000;
|
|
|
|
/**
|
|
* CAPI3REF: Deprecated Functions
|
|
*/
|
|
deprecated int sqlite3_aggregate_count(sqlite3_context*);
|
|
deprecated int sqlite3_expired(sqlite3_stmt*);
|
|
deprecated int sqlite3_transfer_bindings(sqlite3_stmt*, sqlite3_stmt*);
|
|
deprecated int sqlite3_global_recover();
|
|
deprecated void sqlite3_thread_cleanup();
|
|
deprecated int sqlite3_memory_alarm(void function(void*,sqlite3_int64,int),void*,sqlite3_int64);
|
|
|
|
/**
|
|
* CAPI3REF: Obtaining SQL Function Parameter Values
|
|
*/
|
|
const (void)* sqlite3_value_blob(sqlite3_value*);
|
|
/// Ditto
|
|
int sqlite3_value_bytes(sqlite3_value*);
|
|
/// Ditto
|
|
int sqlite3_value_bytes16(sqlite3_value*);
|
|
/// Ditto
|
|
double sqlite3_value_double(sqlite3_value*);
|
|
/// Ditto
|
|
int sqlite3_value_int(sqlite3_value*);
|
|
/// Ditto
|
|
sqlite3_int64 sqlite3_value_int64(sqlite3_value*);
|
|
/// Ditto
|
|
const (char)* sqlite3_value_text(sqlite3_value*);
|
|
/// Ditto
|
|
const (void)* sqlite3_value_text16(sqlite3_value*);
|
|
/// Ditto
|
|
const (void)* sqlite3_value_text16le(sqlite3_value*);
|
|
/// Ditto
|
|
const (void)* sqlite3_value_text16be(sqlite3_value*);
|
|
/// Ditto
|
|
int sqlite3_value_type(sqlite3_value*);
|
|
/// Ditto
|
|
int sqlite3_value_numeric_type(sqlite3_value*);
|
|
/// Ditto
|
|
int sqlite3_value_nochange(sqlite3_value*);
|
|
/// Ditto
|
|
int sqlite3_value_frombind(sqlite3_value*);
|
|
|
|
/*
|
|
* CAPI3REF: Finding The Subtype Of SQL Values
|
|
*/
|
|
uint sqlite3_value_subtype(sqlite3_value*);
|
|
|
|
/*
|
|
* CAPI3REF: Copy And Free SQL Values
|
|
*/
|
|
sqlite3_value* sqlite3_value_dup(const sqlite3_value*);
|
|
void sqlite3_value_free(sqlite3_value*);
|
|
|
|
/**
|
|
* CAPI3REF: Obtain Aggregate Function Context
|
|
*/
|
|
void *sqlite3_aggregate_context(sqlite3_context*, int nBytes);
|
|
|
|
/**
|
|
* CAPI3REF: User Data For Functions
|
|
*/
|
|
void *sqlite3_user_data(sqlite3_context*);
|
|
|
|
/**
|
|
* CAPI3REF: Database Connection For Functions
|
|
*/
|
|
sqlite3 *sqlite3_context_db_handle(sqlite3_context*);
|
|
|
|
/**
|
|
* CAPI3REF: Function Auxiliary Data
|
|
*/
|
|
void *sqlite3_get_auxdata(sqlite3_context*, int N);
|
|
/// Ditto
|
|
void sqlite3_set_auxdata(sqlite3_context*, int N, void*, void function (void*));
|
|
|
|
|
|
/**
|
|
* CAPI3REF: Constants Defining Special Destructor Behavior
|
|
*/
|
|
alias sqlite3_destructor_type = void function (void*);
|
|
/// Ditto
|
|
enum
|
|
{
|
|
SQLITE_STATIC = (cast(sqlite3_destructor_type) 0),
|
|
SQLITE_TRANSIENT = (cast (sqlite3_destructor_type) -1)
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Setting The Result Of An SQL Function
|
|
*/
|
|
void sqlite3_result_blob(sqlite3_context*, const void*, int, void function(void*));
|
|
/// Ditto
|
|
void sqlite3_result_blob64(sqlite3_context*,const void*,sqlite3_uint64,void function(void*));
|
|
/// Ditto
|
|
void sqlite3_result_double(sqlite3_context*, double);
|
|
/// Ditto
|
|
void sqlite3_result_error(sqlite3_context*, const char*, int);
|
|
/// Ditto
|
|
void sqlite3_result_error16(sqlite3_context*, const void*, int);
|
|
/// Ditto
|
|
void sqlite3_result_error_toobig(sqlite3_context*);
|
|
/// Ditto
|
|
void sqlite3_result_error_nomem(sqlite3_context*);
|
|
/// Ditto
|
|
void sqlite3_result_error_code(sqlite3_context*, int);
|
|
/// Ditto
|
|
void sqlite3_result_int(sqlite3_context*, int);
|
|
/// Ditto
|
|
void sqlite3_result_int64(sqlite3_context*, sqlite3_int64);
|
|
/// Ditto
|
|
void sqlite3_result_null(sqlite3_context*);
|
|
/// Ditto
|
|
void sqlite3_result_text(sqlite3_context*, const char*, int, void function(void*));
|
|
/// Ditto
|
|
void sqlite3_result_text64(sqlite3_context*, const char*,sqlite3_uint64,void function(void*), ubyte encoding);
|
|
/// Ditto
|
|
void sqlite3_result_text16(sqlite3_context*, const void*, int, void function(void*));
|
|
/// Ditto
|
|
void sqlite3_result_text16le(sqlite3_context*, const void*, int, void function(void*));
|
|
/// Ditto
|
|
void sqlite3_result_text16be(sqlite3_context*, const void*, int, void function(void*));
|
|
/// Ditto
|
|
void sqlite3_result_value(sqlite3_context*, sqlite3_value*);
|
|
/// Ditto
|
|
void sqlite3_result_zeroblob(sqlite3_context*, int n);
|
|
/// Ditto
|
|
int sqlite3_result_zeroblob64(sqlite3_context*, sqlite3_uint64 n);
|
|
|
|
/*
|
|
* CAPI3REF: Setting The Subtype Of An SQL Function
|
|
*/
|
|
void sqlite3_result_subtype(sqlite3_context*,uint);
|
|
|
|
/**
|
|
* CAPI3REF: Define New Collating Sequences
|
|
*/
|
|
int sqlite3_create_collation(
|
|
sqlite3*,
|
|
const(char)*zName,
|
|
int eTextRep,
|
|
void *pArg,
|
|
int function (void*,int,const void*,int,const void*) xCompare
|
|
);
|
|
/// Ditto
|
|
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
|
|
);
|
|
/// Ditto
|
|
int sqlite3_create_collation16(
|
|
sqlite3*,
|
|
const(void)*zName,
|
|
int eTextRep,
|
|
void *pArg,
|
|
int function (void*,int,const void*,int,const void*) xCompare
|
|
);
|
|
|
|
/**
|
|
* CAPI3REF: Collation Needed Callbacks
|
|
*/
|
|
int sqlite3_collation_needed(
|
|
sqlite3*,
|
|
void*,
|
|
void function (void*,sqlite3*,int eTextRep,const char*)
|
|
);
|
|
/// Ditto
|
|
int sqlite3_collation_needed16(
|
|
sqlite3*,
|
|
void*,
|
|
void function (void*,sqlite3*,int eTextRep,const void*)
|
|
);
|
|
|
|
/**
|
|
* Specify the activation key for a CEROD database. Unless
|
|
* activated, none of the CEROD routines will work.
|
|
*/
|
|
void sqlite3_activate_cerod(
|
|
const(char)*zPassPhrase /** Activation phrase */
|
|
);
|
|
|
|
/**
|
|
* CAPI3REF: Suspend Execution For A Short Time
|
|
*/
|
|
int sqlite3_sleep(int);
|
|
|
|
/**
|
|
* CAPI3REF: Name Of The Folder Holding Temporary Files
|
|
*/
|
|
extern char *sqlite3_temp_directory;
|
|
|
|
/**
|
|
* CAPI3REF: Name Of The Folder Holding Database Files
|
|
*/
|
|
extern char *sqlite3_data_directory;
|
|
|
|
/**
|
|
* CAPI3REF: Win32 Specific Interface
|
|
*/
|
|
int sqlite3_win32_set_directory(
|
|
c_ulong type, /** Identifier for directory being set or reset */
|
|
void* zValue /** New value for directory being set or reset */
|
|
);
|
|
/// Ditto
|
|
int sqlite3_win32_set_directory8(
|
|
c_ulong type, /** Identifier for directory being set or reset */
|
|
void* zValue /** New value for directory being set or reset */
|
|
);
|
|
/// Ditto
|
|
int sqlite3_win32_set_directory16(
|
|
c_ulong type, /** Identifier for directory being set or reset */
|
|
void* zValue /** New value for directory being set or reset */
|
|
);
|
|
|
|
/**
|
|
* CAPI3REF: Win32 Directory Types
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_WIN32_DATA_DIRECTORY_TYPE = 1,
|
|
SQLITE_WIN32_TEMP_DIRECTORY_TYPE = 2
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Test For Auto-Commit Mode
|
|
*/
|
|
int sqlite3_get_autocommit(sqlite3*);
|
|
|
|
/**
|
|
* CAPI3REF: Find The Database Handle Of A Prepared Statement
|
|
*/
|
|
sqlite3 *sqlite3_db_handle(sqlite3_stmt*);
|
|
|
|
/**
|
|
* CAPI3REF: Return The Filename For A Database Connection
|
|
*/
|
|
const(char)* sqlite3_db_filename(sqlite3 *db, const char* zDbName);
|
|
|
|
/**
|
|
* CAPI3REF: Determine if a database is read-only
|
|
*/
|
|
int sqlite3_db_readonly(sqlite3 *db, const char * zDbName);
|
|
|
|
/*
|
|
* CAPI3REF: Find the next prepared statement
|
|
*/
|
|
sqlite3_stmt *sqlite3_next_stmt(sqlite3 *pDb, sqlite3_stmt *pStmt);
|
|
|
|
/**
|
|
* CAPI3REF: Commit And Rollback Notification Callbacks
|
|
*/
|
|
void *sqlite3_commit_hook(sqlite3*, int function (void*), void*);
|
|
/// Ditto
|
|
void *sqlite3_rollback_hook(sqlite3*, void function (void *), void*);
|
|
|
|
/**
|
|
* CAPI3REF: Data Change Notification Callbacks
|
|
*/
|
|
void *sqlite3_update_hook(
|
|
sqlite3*,
|
|
void function (void *,int ,char *, char *, sqlite3_int64),
|
|
void*
|
|
);
|
|
|
|
/**
|
|
* CAPI3REF: Enable Or Disable Shared Pager Cache
|
|
*/
|
|
int sqlite3_enable_shared_cache(int);
|
|
|
|
/**
|
|
* CAPI3REF: Attempt To Free Heap Memory
|
|
*/
|
|
int sqlite3_release_memory(int);
|
|
|
|
/**
|
|
* CAPI3REF: Free Memory Used By A Database Connection
|
|
*/
|
|
int sqlite3_db_release_memory(sqlite3*);
|
|
|
|
/*
|
|
* CAPI3REF: Impose A Limit On Heap Size
|
|
*/
|
|
sqlite3_int64 sqlite3_soft_heap_limit64(sqlite3_int64 N);
|
|
sqlite3_int64 sqlite3_hard_heap_limit64(sqlite3_int64 N);
|
|
|
|
/**
|
|
* CAPI3REF: Deprecated Soft Heap Limit Interface
|
|
*/
|
|
deprecated void sqlite3_soft_heap_limit(int N);
|
|
|
|
/**
|
|
* CAPI3REF: Extract Metadata About A Column Of A Table
|
|
*/
|
|
int sqlite3_table_column_metadata(
|
|
sqlite3 *db, /** Connection handle */
|
|
const(char)*zDbName, /** Database name or NULL */
|
|
const(char)*zTableName, /** Table name */
|
|
const(char)*zColumnName, /** Column name */
|
|
char **pzDataType, /** OUTPUT: Declared data type */
|
|
char **pzCollSeq, /** OUTPUT: Collation sequence name */
|
|
int *pNotNull, /** OUTPUT: True if NOT NULL constraint exists */
|
|
int *pPrimaryKey, /** OUTPUT: True if column part of PK */
|
|
int *pAutoinc /** OUTPUT: True if column is auto-increment */
|
|
);
|
|
|
|
/**
|
|
* CAPI3REF: Load An Extension
|
|
*/
|
|
int sqlite3_load_extension(
|
|
sqlite3 *db, /** Load the extension into this database connection */
|
|
const(char)*zFile, /** Name of the shared library containing extension */
|
|
const(char)*zProc, /** Entry point. Derived from zFile if 0 */
|
|
char **pzErrMsg /** Put error message here if not 0 */
|
|
);
|
|
|
|
/**
|
|
* CAPI3REF: Enable Or Disable Extension Loading
|
|
*/
|
|
int sqlite3_enable_load_extension(sqlite3 *db, int onoff);
|
|
|
|
/**
|
|
* CAPI3REF: Automatically Load Statically Linked Extensions
|
|
*/
|
|
int sqlite3_auto_extension(void function () xEntryPoint);
|
|
|
|
/**
|
|
* CAPI3REF: Cancel Automatic Extension Loading
|
|
*/
|
|
int sqlite3_cancel_auto_extension(void function() xEntryPoint);
|
|
|
|
/**
|
|
* CAPI3REF: Reset Automatic Extension Loading
|
|
*/
|
|
void sqlite3_reset_auto_extension();
|
|
|
|
/**
|
|
* 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
|
|
*/
|
|
|
|
alias mapFunction = void function (sqlite3_context*,int,sqlite3_value**);
|
|
|
|
/// Ditto
|
|
struct sqlite3_module
|
|
{
|
|
int iVersion;
|
|
int function (sqlite3*, void *pAux,
|
|
int argc, const char **argv,
|
|
sqlite3_vtab **ppVTab, char**) xCreate;
|
|
int function (sqlite3*, void *pAux,
|
|
int argc, const char **argv,
|
|
sqlite3_vtab **ppVTab, char**) xConnect;
|
|
int function (sqlite3_vtab *pVTab, sqlite3_index_info*) xBestIndex;
|
|
int function (sqlite3_vtab *pVTab) xDisconnect;
|
|
int function (sqlite3_vtab *pVTab) xDestroy;
|
|
int function (sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor) xOpen;
|
|
int function (sqlite3_vtab_cursor*) xClose;
|
|
int function (sqlite3_vtab_cursor*, int idxNum, const char *idxStr,
|
|
int argc, sqlite3_value **argv) xFilter;
|
|
int function (sqlite3_vtab_cursor*) xNext;
|
|
int function (sqlite3_vtab_cursor*) xEof;
|
|
int function (sqlite3_vtab_cursor*, sqlite3_context*, int) xColumn;
|
|
int function (sqlite3_vtab_cursor*, sqlite3_int64 *pRowid) xRowid;
|
|
int function (sqlite3_vtab *, int, sqlite3_value **, sqlite3_int64 *) xUpdate;
|
|
int function (sqlite3_vtab *pVTab) xBegin;
|
|
int function (sqlite3_vtab *pVTab) xSync;
|
|
int function (sqlite3_vtab *pVTab) xCommit;
|
|
int function (sqlite3_vtab *pVTab) xRollback;
|
|
int function (sqlite3_vtab *pVtab, int nArg, const char *zName,
|
|
mapFunction*,
|
|
void **ppArg) xFindFunction;
|
|
int function (sqlite3_vtab *pVtab, const char *zNew) xRename;
|
|
int function (sqlite3_vtab *pVTab, int) xSavepoint;
|
|
int function (sqlite3_vtab *pVTab, int) xRelease;
|
|
int function (sqlite3_vtab *pVTab, int) xRollbackTo;
|
|
int function (const char*) xShadowName;
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Virtual Table Indexing Information
|
|
*/
|
|
struct sqlite3_index_info
|
|
{
|
|
struct sqlite3_index_constraint
|
|
{
|
|
int iColumn; /** constrained. -1 for ROWID */
|
|
char op; /** Constraint operator */
|
|
char usable; /** True if this constraint is usable */
|
|
int iTermOffset; /** Used internally - xBestIndex should ignore */
|
|
}
|
|
struct sqlite3_index_orderby
|
|
{
|
|
int iColumn; /** Column number */
|
|
char desc; /** True for DESC. False for ASC. */
|
|
}
|
|
struct sqlite3_index_constraint_usage
|
|
{
|
|
int argvIndex; /** if >0, constraint is part of argv to xFilter */
|
|
char omit; /** Do not code a test for this constraint */
|
|
}
|
|
/* Inputs */
|
|
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 */
|
|
/* Outputs */
|
|
sqlite3_index_constraint_usage *aConstraintUsage;
|
|
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 */
|
|
sqlite3_int64 estimatedRows;
|
|
int idxFlags;
|
|
sqlite3_uint64 colUsed;
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Virtual Table Scan Flags
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_INDEX_SCAN_UNIQUE = 1
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Virtual Table Constraint Operator Codes
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_INDEX_CONSTRAINT_EQ = 2,
|
|
SQLITE_INDEX_CONSTRAINT_GT = 4,
|
|
SQLITE_INDEX_CONSTRAINT_LE = 8,
|
|
SQLITE_INDEX_CONSTRAINT_LT = 16,
|
|
SQLITE_INDEX_CONSTRAINT_GE = 32,
|
|
SQLITE_INDEX_CONSTRAINT_MATCH = 64,
|
|
SQLITE_INDEX_CONSTRAINT_LIKE = 65,
|
|
SQLITE_INDEX_CONSTRAINT_GLOB = 66,
|
|
SQLITE_INDEX_CONSTRAINT_REGEXP = 67,
|
|
SQLITE_INDEX_CONSTRAINT_NE = 68,
|
|
SQLITE_INDEX_CONSTRAINT_ISNOT = 69,
|
|
SQLITE_INDEX_CONSTRAINT_ISNOTNULL = 70,
|
|
SQLITE_INDEX_CONSTRAINT_ISNULL = 71,
|
|
SQLITE_INDEX_CONSTRAINT_IS = 72,
|
|
SQLITE_INDEX_CONSTRAINT_FUNCTION = 150
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Register A Virtual Table Implementation
|
|
*/
|
|
int sqlite3_create_module(
|
|
sqlite3 *db, /* SQLite connection to register module with */
|
|
const(char)*zName, /* Name of the module */
|
|
const(sqlite3_module)*p, /* Methods for the module */
|
|
void *pClientData /* Client data for xCreate/xConnect */
|
|
);
|
|
/// Ditto
|
|
int sqlite3_create_module_v2(
|
|
sqlite3 *db, /* SQLite connection to register module with */
|
|
const(char)*zName, /* Name of the module */
|
|
const(sqlite3_module)*p, /* Methods for the module */
|
|
void *pClientData, /* Client data for xCreate/xConnect */
|
|
void function (void*) xDestroy /* Module destructor function */
|
|
);
|
|
|
|
/**
|
|
* CAPI3REF: Remove Unnecessary Virtual Table Implementations
|
|
*/
|
|
int sqlite3_drop_modules(
|
|
sqlite3 *db, /* Remove modules from this connection */
|
|
const(char*)* azKeep /* Except, do not remove the ones named here */
|
|
);
|
|
|
|
/**
|
|
* CAPI3REF: Virtual Table Instance Object
|
|
*/
|
|
struct sqlite3_vtab
|
|
{
|
|
const(sqlite3_module)*pModule; /** The module for this virtual table */
|
|
int nRef; /** NO LONGER USED */
|
|
char *zErrMsg; /** Error message from sqlite3_mprintf() */
|
|
/* Virtual table implementations will typically add additional fields */
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Virtual Table Cursor Object
|
|
*/
|
|
struct sqlite3_vtab_cursor
|
|
{
|
|
sqlite3_vtab *pVtab; /** Virtual table of this cursor */
|
|
/* Virtual table implementations will typically add additional fields */
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Declare The Schema Of A Virtual Table
|
|
*/
|
|
int sqlite3_declare_vtab(sqlite3*, const char *zSQL);
|
|
|
|
/**
|
|
* CAPI3REF: Overload A Function For A Virtual Table
|
|
*/
|
|
int sqlite3_overload_function(sqlite3*, const char *zFuncName, int nArg);
|
|
|
|
/**
|
|
* 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.
|
|
*/
|
|
|
|
/*
|
|
* CAPI3REF: A Handle To An Open BLOB
|
|
*/
|
|
struct sqlite3_blob;
|
|
|
|
/**
|
|
* CAPI3REF: Open A BLOB For Incremental I/O
|
|
*/
|
|
int sqlite3_blob_open(
|
|
sqlite3*,
|
|
const(char)* zDb,
|
|
const(char)* zTable,
|
|
const(char)* zColumn,
|
|
sqlite3_int64 iRow,
|
|
int flags,
|
|
sqlite3_blob **ppBlob
|
|
);
|
|
|
|
/**
|
|
* CAPI3REF: Move a BLOB Handle to a New Row
|
|
*/
|
|
int sqlite3_blob_reopen(sqlite3_blob *, sqlite3_int64);
|
|
|
|
/**
|
|
* CAPI3REF: Close A BLOB Handle
|
|
*/
|
|
int sqlite3_blob_close(sqlite3_blob *);
|
|
|
|
/**
|
|
* CAPI3REF: Return The Size Of An Open BLOB
|
|
*/
|
|
int sqlite3_blob_bytes(sqlite3_blob *);
|
|
|
|
/**
|
|
* CAPI3REF: Read Data From A BLOB Incrementally
|
|
*/
|
|
int sqlite3_blob_read(sqlite3_blob *, void *Z, int N, int iOffset);
|
|
|
|
/**
|
|
* CAPI3REF: Write Data Into A BLOB Incrementally
|
|
*/
|
|
int sqlite3_blob_write(sqlite3_blob *, const void *z, int n, int iOffset);
|
|
|
|
/**
|
|
* CAPI3REF: Virtual File System Objects
|
|
*/
|
|
sqlite3_vfs *sqlite3_vfs_find(const char *zVfsName);
|
|
/// Ditto
|
|
int sqlite3_vfs_register(sqlite3_vfs*, int makeDflt);
|
|
/// Ditto
|
|
int sqlite3_vfs_unregister(sqlite3_vfs*);
|
|
|
|
/**
|
|
* CAPI3REF: Mutexes
|
|
*/
|
|
sqlite3_mutex *sqlite3_mutex_alloc(int);
|
|
/// Ditto
|
|
void sqlite3_mutex_free(sqlite3_mutex*);
|
|
/// Ditto
|
|
void sqlite3_mutex_enter(sqlite3_mutex*);
|
|
/// Ditto
|
|
int sqlite3_mutex_try(sqlite3_mutex*);
|
|
/// Ditto
|
|
void sqlite3_mutex_leave(sqlite3_mutex*);
|
|
|
|
/**
|
|
* CAPI3REF: Mutex Methods Object
|
|
*/
|
|
struct sqlite3_mutex_methods
|
|
{
|
|
int function () xMutexInit;
|
|
int function () xMutexEnd;
|
|
sqlite3_mutex* function (int) xMutexAlloc;
|
|
void function (sqlite3_mutex *) xMutexFree;
|
|
void function (sqlite3_mutex *) xMutexEnter;
|
|
int function (sqlite3_mutex *) xMutexTry;
|
|
void function (sqlite3_mutex *) xMutexLeave;
|
|
int function (sqlite3_mutex *) xMutexHeld;
|
|
int function (sqlite3_mutex *) xMutexNotheld;
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Mutex Verification Routines
|
|
*/
|
|
|
|
//#ifndef NDEBUG
|
|
int sqlite3_mutex_held(sqlite3_mutex*);
|
|
/// Ditto
|
|
int sqlite3_mutex_notheld(sqlite3_mutex*);
|
|
//#endif
|
|
|
|
/**
|
|
* CAPI3REF: Mutex Types
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_MUTEX_FAST = 0,
|
|
SQLITE_MUTEX_RECURSIVE = 1,
|
|
SQLITE_MUTEX_STATIC_MAIN = 2,
|
|
SQLITE_MUTEX_STATIC_MEM = 3, /** sqlite3_malloc() */
|
|
SQLITE_MUTEX_STATIC_MEM2 = 4, /** NOT USED */
|
|
SQLITE_MUTEX_STATIC_OPEN = 4, /** sqlite3BtreeOpen() */
|
|
SQLITE_MUTEX_STATIC_PRNG = 5, /** sqlite3_randomness() */
|
|
SQLITE_MUTEX_STATIC_LRU = 6, /** lru page list */
|
|
SQLITE_MUTEX_STATIC_LRU2 = 7, /** NOT USED */
|
|
SQLITE_MUTEX_STATIC_PMEM = 7, /** sqlite3PageMalloc() */
|
|
SQLITE_MUTEX_STATIC_APP1 = 8, /** For use by application */
|
|
SQLITE_MUTEX_STATIC_APP2 = 9, /** For use by application */
|
|
SQLITE_MUTEX_STATIC_APP3 = 10, /** For use by application */
|
|
SQLITE_MUTEX_STATIC_VFS1 = 11, /** For use by built-in VFS */
|
|
SQLITE_MUTEX_STATIC_VFS2 = 12, /** For use by extension VFS */
|
|
SQLITE_MUTEX_STATIC_VFS3 = 13, /** For use by application VFS */
|
|
}
|
|
|
|
deprecated ("Legacy compatibility")
|
|
{
|
|
alias SQLITE_MUTEX_STATIC_MASTER = SQLITE_MUTEX_STATIC_MAIN;
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Retrieve the mutex for a database connection
|
|
*/
|
|
sqlite3_mutex *sqlite3_db_mutex(sqlite3*);
|
|
|
|
/**
|
|
* CAPI3REF: Low-Level Control Of Database Files
|
|
*/
|
|
int sqlite3_file_control(sqlite3*, const char *zDbName, int op, void*);
|
|
|
|
/**
|
|
* CAPI3REF: Testing Interface
|
|
*/
|
|
int sqlite3_test_control(int op, ...);
|
|
|
|
/**
|
|
* CAPI3REF: Testing Interface Operation Codes
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_TESTCTRL_FIRST = 5,
|
|
SQLITE_TESTCTRL_PRNG_SAVE = 5,
|
|
SQLITE_TESTCTRL_PRNG_RESTORE = 6,
|
|
SQLITE_TESTCTRL_PRNG_RESET = 7, /** NOT USED */
|
|
SQLITE_TESTCTRL_BITVEC_TEST = 8,
|
|
SQLITE_TESTCTRL_FAULT_INSTALL = 9,
|
|
SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS = 10,
|
|
SQLITE_TESTCTRL_PENDING_BYTE = 11,
|
|
SQLITE_TESTCTRL_ASSERT = 12,
|
|
SQLITE_TESTCTRL_ALWAYS = 13,
|
|
SQLITE_TESTCTRL_RESERVE = 14, /** NOT USED */
|
|
SQLITE_TESTCTRL_OPTIMIZATIONS = 15,
|
|
SQLITE_TESTCTRL_ISKEYWORD = 16, /** NOT USED */
|
|
SQLITE_TESTCTRL_SCRATCHMALLOC = 17, /** NOT USED */
|
|
SQLITE_TESTCTRL_INTERNAL_FUNCTIONS = 17,
|
|
SQLITE_TESTCTRL_LOCALTIME_FAULT = 18,
|
|
SQLITE_TESTCTRL_EXPLAIN_STMT = 19, /** NOT USED */
|
|
SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD = 19,
|
|
SQLITE_TESTCTRL_NEVER_CORRUPT = 20,
|
|
SQLITE_TESTCTRL_VDBE_COVERAGE = 21,
|
|
SQLITE_TESTCTRL_BYTEORDER = 22,
|
|
SQLITE_TESTCTRL_ISINIT = 23,
|
|
SQLITE_TESTCTRL_SORTER_MMAP = 24,
|
|
SQLITE_TESTCTRL_IMPOSTER = 25,
|
|
SQLITE_TESTCTRL_PARSER_COVERAGE = 26,
|
|
SQLITE_TESTCTRL_RESULT_INTREAL = 27,
|
|
SQLITE_TESTCTRL_PRNG_SEED = 28,
|
|
SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS = 29,
|
|
SQLITE_TESTCTRL_LAST = 29, /** Largest TESTCTRL */
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: SQL Keyword Checking
|
|
*/
|
|
int sqlite3_keyword_count();
|
|
/// Ditto
|
|
int sqlite3_keyword_name(int, const(char*)*, int*);
|
|
/// Ditto
|
|
int sqlite3_keyword_check(const(char)*, int);
|
|
|
|
/**
|
|
* CAPI3REF: Dynamic String Object
|
|
*/
|
|
struct sqlite3_str;
|
|
|
|
/**
|
|
* CAPI3REF: Create A New Dynamic String Object
|
|
*/
|
|
sqlite3_str* sqlite3_str_new(sqlite3*);
|
|
|
|
/**
|
|
* CAPI3REF: Finalize A Dynamic String
|
|
*/
|
|
char* sqlite3_str_finish(sqlite3_str*);
|
|
|
|
/**
|
|
* CAPI3REF: Add Content To A Dynamic String
|
|
*/
|
|
void sqlite3_str_appendf(sqlite3_str*, const(char)* zFormat, ...);
|
|
/// Ditto
|
|
void sqlite3_str_vappendf(sqlite3_str*, const(char)* zFormat, va_list);
|
|
/// Ditto
|
|
void sqlite3_str_append(sqlite3_str*, const(char)* zIn, int N);
|
|
/// Ditto
|
|
void sqlite3_str_appendall(sqlite3_str*, const(char)* zIn);
|
|
/// Ditto
|
|
void sqlite3_str_appendchar(sqlite3_str*, int N, char C);
|
|
/// Ditto
|
|
void sqlite3_str_reset(sqlite3_str*);
|
|
|
|
/**
|
|
* CAPI3REF: Status Of A Dynamic String
|
|
*/
|
|
int sqlite3_str_errcode(sqlite3_str*);
|
|
int sqlite3_str_length(sqlite3_str*);
|
|
char* sqlite3_str_value(sqlite3_str*);
|
|
|
|
/**
|
|
* CAPI3REF: SQLite Runtime Status
|
|
*/
|
|
int sqlite3_status(int op, int *pCurrent, int *pHighwater, int resetFlag);
|
|
/// Ditto
|
|
int sqlite3_status64(int op, long *pCurrent, long *pHighwater, int resetFlag);
|
|
|
|
/**
|
|
* CAPI3REF: Status Parameters
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_STATUS_MEMORY_USED = 0,
|
|
SQLITE_STATUS_PAGECACHE_USED = 1,
|
|
SQLITE_STATUS_PAGECACHE_OVERFLOW = 2,
|
|
SQLITE_STATUS_SCRATCH_USED = 3, /** NOT USED */
|
|
SQLITE_STATUS_SCRATCH_OVERFLOW = 4, /** NOT USED */
|
|
SQLITE_STATUS_MALLOC_SIZE = 5,
|
|
SQLITE_STATUS_PARSER_STACK = 6,
|
|
SQLITE_STATUS_PAGECACHE_SIZE = 7,
|
|
SQLITE_STATUS_SCRATCH_SIZE = 8, /** NOT USED */
|
|
SQLITE_STATUS_MALLOC_COUNT = 9
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Database Connection Status
|
|
*/
|
|
int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int resetFlg);
|
|
|
|
/**
|
|
* CAPI3REF: Status Parameters for database connections
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_DBSTATUS_LOOKASIDE_USED = 0,
|
|
SQLITE_DBSTATUS_CACHE_USED = 1,
|
|
SQLITE_DBSTATUS_SCHEMA_USED = 2,
|
|
SQLITE_DBSTATUS_STMT_USED = 3,
|
|
SQLITE_DBSTATUS_LOOKASIDE_HIT = 4,
|
|
SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE = 5,
|
|
SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL = 6,
|
|
SQLITE_DBSTATUS_CACHE_HIT = 7,
|
|
SQLITE_DBSTATUS_CACHE_MISS = 8,
|
|
SQLITE_DBSTATUS_CACHE_WRITE = 9,
|
|
SQLITE_DBSTATUS_DEFERRED_FKS = 10,
|
|
SQLITE_DBSTATUS_CACHE_USED_SHARED = 11,
|
|
SQLITE_DBSTATUS_CACHE_SPILL = 12,
|
|
SQLITE_DBSTATUS_MAX = 12 /** Largest defined DBSTATUS */
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Prepared Statement Status
|
|
*/
|
|
int sqlite3_stmt_status(sqlite3_stmt*, int op,int resetFlg);
|
|
|
|
/**
|
|
* CAPI3REF: Status Parameters for prepared statements
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_STMTSTATUS_FULLSCAN_STEP = 1,
|
|
SQLITE_STMTSTATUS_SORT = 2,
|
|
SQLITE_STMTSTATUS_AUTOINDEX = 3,
|
|
SQLITE_STMTSTATUS_VM_STEP = 4,
|
|
SQLITE_STMTSTATUS_REPREPARE = 5,
|
|
SQLITE_STMTSTATUS_RUN = 6,
|
|
SQLITE_STMTSTATUS_MEMUSED = 99
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Custom Page Cache Object
|
|
*/
|
|
struct sqlite3_pcache;
|
|
|
|
/**
|
|
* CAPI3REF: Custom Page Cache Object
|
|
*/
|
|
struct sqlite3_pcache_page
|
|
{
|
|
void *pBuf; /* The content of the page */
|
|
void *pExtra; /* Extra information associated with the page */
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Application Defined Page Cache.
|
|
*/
|
|
struct sqlite3_pcache_methods2
|
|
{
|
|
int iVersion;
|
|
void *pArg;
|
|
int function(void*) xInit;
|
|
void function(void*) xShutdown;
|
|
sqlite3_pcache * function(int szPage, int szExtra, int bPurgeable) xCreate;
|
|
void function(sqlite3_pcache*, int nCachesize) xCachesize;
|
|
int function(sqlite3_pcache*) xPagecount;
|
|
sqlite3_pcache_page * function(sqlite3_pcache*, uint key, int createFlag) xFetch;
|
|
void function(sqlite3_pcache*, sqlite3_pcache_page*, int discard) xUnpin;
|
|
void function(sqlite3_pcache*, sqlite3_pcache_page*,
|
|
uint oldKey, uint newKey) xRekey;
|
|
void function(sqlite3_pcache*, uint iLimit) xTruncate;
|
|
void function(sqlite3_pcache*) xDestroy;
|
|
void function(sqlite3_pcache*) xShrink;
|
|
}
|
|
|
|
struct sqlite3_pcache_methods
|
|
{
|
|
void *pArg;
|
|
int function (void*) xInit;
|
|
void function (void*) xShutdown;
|
|
sqlite3_pcache* function (int szPage, int bPurgeable) xCreate;
|
|
void function (sqlite3_pcache*, int nCachesize) xCachesize;
|
|
int function (sqlite3_pcache*) xPagecount;
|
|
void* function (sqlite3_pcache*, uint key, int createFlag) xFetch;
|
|
void function (sqlite3_pcache*, void*, int discard) xUnpin;
|
|
void function (sqlite3_pcache*, void*, uint oldKey, uint newKey) xRekey;
|
|
void function (sqlite3_pcache*, uint iLimit) xTruncate;
|
|
void function (sqlite3_pcache*) xDestroy;
|
|
}
|
|
|
|
/**
|
|
* CAPI3REF: Online Backup Object
|
|
*/
|
|
struct sqlite3_backup;
|
|
|
|
/**
|
|
* CAPI3REF: Online Backup API.
|
|
*/
|
|
sqlite3_backup *sqlite3_backup_init(
|
|
sqlite3 *pDest, /** Destination database handle */
|
|
const(char)*zDestName, /** Destination database name */
|
|
sqlite3 *pSource, /** Source database handle */
|
|
const(char)*zSourceName /** Source database name */
|
|
);
|
|
/// Ditto
|
|
int sqlite3_backup_step(sqlite3_backup *p, int nPage);
|
|
/// Ditto
|
|
int sqlite3_backup_finish(sqlite3_backup *p);
|
|
/// Ditto
|
|
int sqlite3_backup_remaining(sqlite3_backup *p);
|
|
/// Ditto
|
|
int sqlite3_backup_pagecount(sqlite3_backup *p);
|
|
|
|
/**
|
|
* CAPI3REF: Unlock Notification
|
|
*/
|
|
int sqlite3_unlock_notify(
|
|
sqlite3 *pBlocked, /** Waiting connection */
|
|
void function (void **apArg, int nArg) xNotify, /** Callback function to invoke */
|
|
void *pNotifyArg /** Argument to pass to xNotify */
|
|
);
|
|
|
|
/**
|
|
* CAPI3REF: String Comparison
|
|
*/
|
|
int sqlite3_stricmp(const char * , const char * );
|
|
int sqlite3_strnicmp(const char * , const char * , int);
|
|
|
|
/*
|
|
* CAPI3REF: String Globbing
|
|
*
|
|
*/
|
|
int sqlite3_strglob(const(char)* zGlob, const(char)* zStr);
|
|
|
|
/*
|
|
* CAPI3REF: String LIKE Matching
|
|
*/
|
|
int sqlite3_strlike(const(char)* zGlob, const(char)* zStr, uint cEsc);
|
|
|
|
/**
|
|
* CAPI3REF: Error Logging Interface
|
|
*/
|
|
void sqlite3_log(int iErrCode, const char *zFormat, ...);
|
|
|
|
/**
|
|
* CAPI3REF: Write-Ahead Log Commit Hook
|
|
*/
|
|
void *sqlite3_wal_hook(
|
|
sqlite3*,
|
|
int function (void *,sqlite3*,const char*,int),
|
|
void*
|
|
);
|
|
|
|
/**
|
|
* CAPI3REF: Configure an auto-checkpoint
|
|
*/
|
|
int sqlite3_wal_autocheckpoint(sqlite3 *db, int N);
|
|
|
|
/**
|
|
* CAPI3REF: Checkpoint a database
|
|
*/
|
|
int sqlite3_wal_checkpoint(sqlite3 *db, const char *zDb);
|
|
|
|
/**
|
|
* CAPI3REF: Checkpoint a database
|
|
*/
|
|
int sqlite3_wal_checkpoint_v2(
|
|
sqlite3 *db, /** Database handle */
|
|
const(char)*zDb, /** Name of attached database (or NULL) */
|
|
int eMode, /** SQLITE_CHECKPOINT_* value */
|
|
int *pnLog, /** OUT: Size of WAL log in frames */
|
|
int *pnCkpt /** OUT: Total number of frames checkpointed */
|
|
);
|
|
|
|
/**
|
|
* CAPI3REF: Checkpoint operation parameters
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_CHECKPOINT_PASSIVE = 0,
|
|
SQLITE_CHECKPOINT_FULL = 1,
|
|
SQLITE_CHECKPOINT_RESTART = 2,
|
|
SQLITE_CHECKPOINT_TRUNCATE = 3,
|
|
}
|
|
|
|
/*
|
|
* CAPI3REF: Virtual Table Interface Configuration
|
|
*/
|
|
int sqlite3_vtab_config(sqlite3*, int op, ...);
|
|
|
|
/**
|
|
* CAPI3REF: Virtual Table Configuration Options
|
|
*/
|
|
enum SQLITE_VTAB_CONSTRAINT_SUPPORT = 1;
|
|
enum SQLITE_VTAB_INNOCUOUS = 2;
|
|
enum SQLITE_VTAB_DIRECTONLY = 3;
|
|
|
|
/*
|
|
* 2010 August 30
|
|
*
|
|
* The author disclaims copyright to this source code. In place of
|
|
* a legal notice, here is a blessing:
|
|
*
|
|
* May you do good and not evil.
|
|
* May you find forgiveness for yourself and forgive others.
|
|
* May you share freely, never taking more than you give.
|
|
*
|
|
************************************************************************
|
|
*/
|
|
|
|
//#ifndef _SQLITE3RTREE_H_
|
|
//#define _SQLITE3RTREE_H_
|
|
|
|
|
|
/*
|
|
* CAPI3REF: Determine The Virtual Table Conflict Policy
|
|
*/
|
|
int sqlite3_vtab_on_conflict(sqlite3 *);
|
|
|
|
/*
|
|
* CAPI3REF: Determine If Virtual Table Column Access Is For UPDATE
|
|
*/
|
|
int sqlite3_vtab_nochange(sqlite3_context*);
|
|
|
|
/*
|
|
* CAPI3REF: Determine The Collation For a Virtual Table Constraint
|
|
*/
|
|
const(char)* sqlite3_vtab_collation (sqlite3_index_info*, int);
|
|
|
|
/*
|
|
* CAPI3REF: Conflict resolution modes
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_ROLLBACK = 1,
|
|
SQLITE_FAIL = 3,
|
|
SQLITE_REPLACE = 5
|
|
}
|
|
|
|
/*
|
|
* CAPI3REF: Prepared Statement Scan Status Opcodes
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_SCANSTAT_NLOOP = 0,
|
|
SQLITE_SCANSTAT_NVISIT = 1,
|
|
SQLITE_SCANSTAT_EST = 2,
|
|
SQLITE_SCANSTAT_NAME = 3,
|
|
SQLITE_SCANSTAT_EXPLAIN = 4,
|
|
SQLITE_SCANSTAT_SELECTID = 5,
|
|
}
|
|
|
|
/*
|
|
* CAPI3REF: Prepared Statement Scan Status
|
|
*/
|
|
int sqlite3_stmt_scanstatus(sqlite3_stmt *pStmt, int idx, int iScanStatusOp, void *pOut);
|
|
|
|
/*
|
|
* CAPI3REF: Zero Scan-Status Counters
|
|
*/
|
|
void sqlite3_stmt_scanstatus_reset(sqlite3_stmt *);
|
|
|
|
/*
|
|
* CAPI3REF: Flush caches to disk mid-transaction
|
|
*/
|
|
int sqlite3_db_cacheflush(sqlite3 *);
|
|
|
|
/*
|
|
* CAPI3REF: The pre-update hook
|
|
*/
|
|
void* sqlite3_preupdate_hook(
|
|
sqlite3* db,
|
|
void function(
|
|
void* pCtx,
|
|
sqlite3* db, /** Database handle */
|
|
int op, /** SQLITE_UPDATE, DELETE or INSERT */
|
|
const(char)* zDb, /** Database name */
|
|
const(char)* zName, /** Table name */
|
|
sqlite3_int64 iKey1, /** Rowid of row about to be deleted/updated */
|
|
sqlite3_int64 iKey2
|
|
) xPreUpdate,
|
|
void*
|
|
);
|
|
/// Ditto
|
|
int sqlite3_preupdate_old(sqlite3*, int, sqlite3_value**);
|
|
/// Ditto
|
|
int sqlite3_preupdate_count(sqlite3*);
|
|
/// Ditto
|
|
int sqlite3_preupdate_depth(sqlite3*);
|
|
/// Ditto
|
|
int sqlite3_preupdate_new(sqlite3*, int, sqlite3_value**);
|
|
|
|
/*
|
|
* CAPI3REF: Database Snapshot
|
|
*/
|
|
struct sqlite3_snapshot
|
|
{
|
|
ubyte[48] hidden;
|
|
}
|
|
|
|
/*
|
|
* CAPI3REF: Record A Database Snapshot
|
|
*/
|
|
int sqlite3_snapshot_get(sqlite3 *db, char *zSchema, sqlite3_snapshot **ppSnapshot);
|
|
|
|
/*
|
|
* CAPI3REF: Start a read transaction on an historical snapshot
|
|
*/
|
|
int sqlite3_snapshot_open(sqlite3 *db, char *zSchema, sqlite3_snapshot *pSnapshot);
|
|
|
|
/*
|
|
* CAPI3REF: Destroy a snapshot
|
|
*/
|
|
void sqlite3_snapshot_free(sqlite3_snapshot *);
|
|
|
|
/*
|
|
* CAPI3REF: Compare the ages of two snapshot handles
|
|
*/
|
|
int sqlite3_snapshot_cmp(sqlite3_snapshot* p1, sqlite3_snapshot* p2);
|
|
|
|
/*
|
|
* CAPI3REF: Recover snapshots from a wal file
|
|
*/
|
|
int sqlite3_snapshot_recover (sqlite3* db, const(char)* zDb);
|
|
|
|
/*
|
|
* CAPI3REF: Serialize a database
|
|
*/
|
|
ubyte* sqlite3_serialize(
|
|
sqlite3* db,
|
|
const(char)* zSchema,
|
|
sqlite3_int64* piSize,
|
|
uint mFlags
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Serialize a database
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_SERIALIZE_NOCOPY = 0x001
|
|
}
|
|
|
|
/*
|
|
* CAPI3REF: Deserialize a database
|
|
*/
|
|
int sqlite3_deserialize (
|
|
sqlite3* db,
|
|
const(char)* zSchema,
|
|
ubyte* pData,
|
|
sqlite3_int64 szDb,
|
|
sqlite3_int64 szBuf,
|
|
uint mFlags
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Flags for sqlite3_deserialize()
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_DESERIALIZE_FREEONCLOSE = 1,
|
|
SQLITE_DESERIALIZE_RESIZEABLE = 2,
|
|
SQLITE_DESERIALIZE_READONLY = 4
|
|
}
|
|
|
|
/**
|
|
* Register a geometry callback named zGeom that can be used as part of an
|
|
* R-Tree geometry query as follows:
|
|
*
|
|
* SELECT ... FROM $(LT)rtree$(GT) WHERE $(LT)rtree col$(GT) MATCH $zGeom(... params ...)
|
|
*/
|
|
int sqlite3_rtree_geometry_callback(
|
|
sqlite3 *db,
|
|
const(char)*zGeom,
|
|
int function (sqlite3_rtree_geometry *, int nCoord, double *aCoord, int *pRes) xGeom,
|
|
void *pContext
|
|
);
|
|
|
|
/**
|
|
* A pointer to a structure of the following type is passed as the first
|
|
* argument to callbacks registered using rtree_geometry_callback().
|
|
*/
|
|
struct sqlite3_rtree_geometry
|
|
{
|
|
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 */
|
|
}
|
|
|
|
int sqlite3_rtree_query_callback(
|
|
sqlite3 *db,
|
|
const(char)* zQueryFunc,
|
|
int function(sqlite3_rtree_query_info*) xQueryFunc,
|
|
void *pContext,
|
|
void function(void*) xDestructor
|
|
);
|
|
|
|
struct sqlite3_rtree_query_info
|
|
{
|
|
void *pContext; /* pContext from when function registered */
|
|
int nParam; /* Number of function parameters */
|
|
double*aParam; /* value of function parameters */
|
|
void *pUser; /* callback can use this, if desired */
|
|
void function(void*) xDelUser; /* function to free pUser */
|
|
double*aCoord; /* Coordinates of node or entry to check */
|
|
uint *anQueue; /* Number of pending entries in the queue */
|
|
int nCoord; /* Number of coordinates */
|
|
int iLevel; /* Level of current node or entry */
|
|
int mxLevel; /* The largest iLevel value in the tree */
|
|
sqlite3_int64 iRowid; /* Rowid for current entry */
|
|
double rParentScore; /* Score of parent node */
|
|
int eParentWithin; /* Visibility of parent node */
|
|
int eWithin; /* OUT: Visibility */
|
|
double rScore; /* OUT: Write the score here */
|
|
sqlite3_value **apSqlParam; /* Original SQL values of parameters */
|
|
}
|
|
|
|
enum
|
|
{
|
|
NOT_WITHIN = 0, /** Object completely outside of query region */
|
|
PARTLY_WITHIN = 1, /** Object partially overlaps query region */
|
|
FULLY_WITHIN = 2 /** Object fully contained within query region */
|
|
}
|
|
|
|
/*
|
|
* CAPI3REF: Session Object Handle
|
|
*/
|
|
struct sqlite3_session;
|
|
|
|
/*
|
|
* CAPI3REF: Session Object Handle
|
|
*/
|
|
struct sqlite3_changeset_iter;
|
|
|
|
/*
|
|
* CAPI3REF: Create A New Session Object
|
|
*/
|
|
int sqlite3session_create (
|
|
sqlite3* db,
|
|
const(char)* zDb,
|
|
sqlite3_session** ppSession
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Delete A Session Object
|
|
*/
|
|
void sqlite3session_delete(sqlite3_session* pSession);
|
|
|
|
/*
|
|
* CAPI3REF: Enable Or Disable A Session Object
|
|
*/
|
|
int sqlite3session_enable(sqlite3_session* pSession, int bEnable);
|
|
|
|
/*
|
|
* CAPI3REF: Set Or Clear the Indirect Change Flag
|
|
*/
|
|
int sqlite3session_indirect(sqlite3_session* pSession, int bIndirect);
|
|
|
|
/*
|
|
* CAPI3REF: Attach A Table To A Session Object
|
|
*/
|
|
int sqlite3session_attach(sqlite3_session* pSession, const(char)* zTab);
|
|
|
|
/*
|
|
* CAPI3REF: Set a table filter on a Session Object
|
|
*/
|
|
void sqlite3session_table_filter(
|
|
sqlite3_session* pSession,
|
|
int function (void* pCtx, const(char)* zTab) xFilter,
|
|
void* pCtx
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Generate A Changeset From A Session Object
|
|
*/
|
|
int sqlite3session_changeset(
|
|
sqlite3_session* pSession,
|
|
int* pnChangeset,
|
|
void** ppChangeset
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Load The Difference Between Tables Into A Session
|
|
*/
|
|
int sqlite3session_diff(
|
|
sqlite3_session* pSession,
|
|
const(char)* zFromDb,
|
|
const(char)* zTbl,
|
|
char** pzErrMsg
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Generate A Patchset From A Session Object
|
|
*/
|
|
int sqlite3session_patchset(
|
|
sqlite3_session* pSession,
|
|
int* pnPatchset,
|
|
void** ppPatchset
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Test if a changeset has recorded any changes
|
|
*/
|
|
int sqlite3session_isempty (sqlite3_session* pSession);
|
|
|
|
/*
|
|
* CAPI3REF: Create An Iterator To Traverse A Changeset
|
|
*/
|
|
int sqlite3changeset_start(
|
|
sqlite3_changeset_iter** pp,
|
|
int nChangeset,
|
|
void* pChangeset
|
|
);
|
|
/// Ditto
|
|
int sqlite3changeset_start_v2(
|
|
sqlite3_changeset_iter** pp,
|
|
int nChangeset,
|
|
void* pChangeset,
|
|
int flags
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Flags for sqlite3changeset_start_v2
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_CHANGESETSTART_INVERT = 0x0002
|
|
}
|
|
|
|
/*
|
|
* CAPI3REF: Advance A Changeset Iterator
|
|
*/
|
|
int sqlite3changeset_next(sqlite3_changeset_iter* pIter);
|
|
|
|
/*
|
|
* CAPI3REF: Obtain The Current Operation From A Changeset Iterator
|
|
*/
|
|
int sqlite3changeset_op(
|
|
sqlite3_changeset_iter* pIter,
|
|
const(char*)* pzTab,
|
|
int* pnCol,
|
|
int* pOp,
|
|
int* pbIndirect
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Obtain The Primary Key Definition Of A Table
|
|
*/
|
|
int sqlite3changeset_pk(
|
|
sqlite3_changeset_iter* pIter,
|
|
ubyte** pabPK,
|
|
int* pnCol
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Obtain old.* Values From A Changeset Iterator
|
|
*/
|
|
int sqlite3changeset_old(
|
|
sqlite3_changeset_iter* pIter,
|
|
int iVal,
|
|
sqlite3_value** ppValue
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Obtain new.* Values From A Changeset Iterator
|
|
*/
|
|
int sqlite3changeset_new(
|
|
sqlite3_changeset_iter* pIter,
|
|
int iVal,
|
|
sqlite3_value** ppValue
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Obtain Conflicting Row Values From A Changeset Iterator
|
|
*/
|
|
int sqlite3changeset_conflict(
|
|
sqlite3_changeset_iter* pIter,
|
|
int iVal,
|
|
sqlite3_value** ppValue
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Determine The Number Of Foreign Key Constraint Violations
|
|
*/
|
|
int sqlite3changeset_fk_conflicts(sqlite3_changeset_iter* pIter, int* pnOut);
|
|
|
|
/*
|
|
* CAPI3REF: Finalize A Changeset Iterator
|
|
*/
|
|
int sqlite3changeset_finalize (sqlite3_changeset_iter* pIter);
|
|
|
|
/*
|
|
* CAPI3REF: Invert A Changeset
|
|
*/
|
|
int sqlite3changeset_invert(
|
|
int nIn,
|
|
const(void)* pIn,
|
|
int* pnOut,
|
|
void** ppOut
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Concatenate Two Changeset Objects
|
|
*/
|
|
int sqlite3changeset_concat(
|
|
int nA,
|
|
void* pA,
|
|
int nB,
|
|
void* pB,
|
|
int* pnOut,
|
|
void** ppOut
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Changegroup Handle
|
|
*/
|
|
struct sqlite3_changegroup;
|
|
|
|
/*
|
|
* CAPI3REF: Create A New Changegroup Object
|
|
*/
|
|
int sqlite3changegroup_new(sqlite3_changegroup** pp);
|
|
|
|
/*
|
|
* CAPI3REF: Add A Changeset To A Changegroup
|
|
*/
|
|
int sqlite3changegroup_add(sqlite3_changegroup*, int nData, void* pData);
|
|
|
|
/*
|
|
* CAPI3REF: Obtain A Composite Changeset From A Changegroup
|
|
*/
|
|
int sqlite3changegroup_output(
|
|
sqlite3_changegroup*,
|
|
int* pnData,
|
|
void** ppData
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Delete A Changegroup Object
|
|
*/
|
|
void sqlite3changegroup_delete (sqlite3_changegroup*);
|
|
|
|
/*
|
|
* CAPI3REF: Apply A Changeset To A Database
|
|
*/
|
|
int sqlite3changeset_apply(
|
|
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
|
|
);
|
|
/// Ditto
|
|
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
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Flags for sqlite3changeset_apply_v2
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_CHANGESETAPPLY_NOSAVEPOINT = 0x0001,
|
|
SQLITE_CHANGESETAPPLY_INVERT = 0x0002
|
|
}
|
|
|
|
/*
|
|
* CAPI3REF: Constants Passed To The Conflict Handler
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_CHANGESET_DATA = 1,
|
|
SQLITE_CHANGESET_NOTFOUND = 2,
|
|
SQLITE_CHANGESET_CONFLICT = 3,
|
|
SQLITE_CHANGESET_CONSTRAINT = 4,
|
|
SQLITE_CHANGESET_FOREIGN_KEY = 5
|
|
}
|
|
|
|
/*
|
|
* CAPI3REF: Constants Returned By The Conflict Handler
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_CHANGESET_OMIT = 0,
|
|
SQLITE_CHANGESET_REPLACE = 1,
|
|
SQLITE_CHANGESET_ABORT = 2
|
|
}
|
|
|
|
/*
|
|
* CAPI3REF: Rebasing changesets
|
|
*/
|
|
struct sqlite3_rebaser;
|
|
|
|
/*
|
|
* CAPI3REF: Create a changeset rebaser object
|
|
*/
|
|
int sqlite3rebaser_create(sqlite3_rebaser** ppNew);
|
|
|
|
/*
|
|
* CAPI3REF: Configure a changeset rebaser object
|
|
*/
|
|
int sqlite3rebaser_configure(
|
|
sqlite3_rebaser*,
|
|
int nRebase,
|
|
const(void)* pRebase
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Rebase a changeset
|
|
*/
|
|
int sqlite3rebaser_rebase(
|
|
sqlite3_rebaser*,
|
|
int nIn,
|
|
const(void)* pIn,
|
|
int* pnOut,
|
|
void** ppOut
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Delete a changeset rebaser object
|
|
*/
|
|
void sqlite3rebaser_delete(sqlite3_rebaser* p);
|
|
|
|
/*
|
|
* CAPI3REF: Streaming Versions of API functions
|
|
*/
|
|
int sqlite3changeset_apply_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
|
|
);
|
|
/// Ditto
|
|
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
|
|
);
|
|
/// Ditto
|
|
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
|
|
);
|
|
/// Ditto
|
|
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
|
|
);
|
|
/// Ditto
|
|
int sqlite3changeset_start_strm(
|
|
sqlite3_changeset_iter** pp,
|
|
int function (void* pIn, void* pData, int* pnData) xInput,
|
|
void* pIn
|
|
);
|
|
/// Ditto
|
|
int sqlite3changeset_start_v2_strm(
|
|
sqlite3_changeset_iter** pp,
|
|
int function (void* pIn, void* pData, int* pnData) xInput,
|
|
void* pIn,
|
|
int flags
|
|
);
|
|
/// Ditto
|
|
int sqlite3session_changeset_strm(
|
|
sqlite3_session* pSession,
|
|
int function (void* pOut, const(void)* pData, int nData) xOutput,
|
|
void* pOut
|
|
);
|
|
/// Ditto
|
|
int sqlite3session_patchset_strm(
|
|
sqlite3_session* pSession,
|
|
int function (void* pOut, const(void)* pData, int nData) xOutput,
|
|
void* pOut
|
|
);
|
|
/// Ditto
|
|
int sqlite3changegroup_add_strm(
|
|
sqlite3_changegroup*,
|
|
int function (void* pIn, void* pData, int* pnData) xInput,
|
|
void* pIn
|
|
);
|
|
/// Ditto
|
|
int sqlite3changegroup_output_strm(
|
|
sqlite3_changegroup*,
|
|
int function (void* pOut, const(void)* pData, int nData) xOutput,
|
|
void* pOut
|
|
);
|
|
/// Ditto
|
|
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
|
|
);
|
|
|
|
/*
|
|
* CAPI3REF: Configure global parameters
|
|
*/
|
|
int sqlite3session_config(int op, void* pArg);
|
|
|
|
/*
|
|
* CAPI3REF: Values for sqlite3session_config()
|
|
*/
|
|
enum
|
|
{
|
|
SQLITE_SESSION_CONFIG_STRMSIZE = 1
|
|
}
|
|
|
|
/******************************************************************************
|
|
* Interfaces to extend FTS5.
|
|
*/
|
|
struct Fts5Context;
|
|
/// Ditto
|
|
alias fts5_extension_function = void function(
|
|
const Fts5ExtensionApi *pApi,
|
|
Fts5Context *pFts,
|
|
sqlite3_context *pCtx,
|
|
int nVal,
|
|
sqlite3_value **apVal
|
|
);
|
|
/// Ditto
|
|
struct Fts5PhraseIter
|
|
{
|
|
const(ubyte) *a;
|
|
const(ubyte) *b;
|
|
}
|
|
/// Ditto
|
|
struct Fts5ExtensionApi
|
|
{
|
|
int iVersion; /** Currently always set to 3 */
|
|
void* function(Fts5Context*) xUserData;
|
|
int function(Fts5Context*) xColumnCount;
|
|
int function(Fts5Context*, sqlite3_int64 *pnRow) xRowCount;
|
|
int function(Fts5Context*, int iCol, sqlite3_int64 *pnToken) xColumnTotalSize;
|
|
int function(Fts5Context*,
|
|
const char *pText, int nText,
|
|
void *pCtx,
|
|
int function(void*, int, const char*, int, int, int) xToken
|
|
) xTokenize;
|
|
int function(Fts5Context*) xPhraseCount;
|
|
int function(Fts5Context*, int iPhrase) xPhraseSize;
|
|
int function(Fts5Context*, int *pnInst) xInstCount;
|
|
int function(Fts5Context*, int iIdx, int *piPhrase, int *piCol, int *piOff) xInst;
|
|
sqlite3_int64 function(Fts5Context*) xRowid;
|
|
int function(Fts5Context*, int iCol, const char **pz, int *pn) xColumnText;
|
|
int function(Fts5Context*, int iCol, int *pnToken) xColumnSize;
|
|
int function(Fts5Context*, int iPhrase, void *pUserData,
|
|
int function(const Fts5ExtensionApi*,Fts5Context*,void*)
|
|
) xQueryPhrase;
|
|
int function(Fts5Context*, void *pAux, void function(void*) xDelete) xSetAuxdata;
|
|
void* function(Fts5Context*, int bClear) xGetAuxdata;
|
|
int function(Fts5Context*, int iPhrase, Fts5PhraseIter*, int*, int*) xPhraseFirst;
|
|
void function(Fts5Context*, Fts5PhraseIter*, int *piCol, int *piOff) xPhraseNext;
|
|
int function(Fts5Context*, int iPhrase, Fts5PhraseIter*, int*) xPhraseFirstColumn;
|
|
void function(Fts5Context*, Fts5PhraseIter*, int* piCol) xPhraseNextColumn;
|
|
}
|
|
/// Ditto
|
|
struct Fts5Tokenizer;
|
|
struct fts5_tokenizer
|
|
{
|
|
int function(void*, const char **azArg, int nArg, Fts5Tokenizer **ppOut) xCreate;
|
|
void function(Fts5Tokenizer*) xDelete;
|
|
int function(Fts5Tokenizer*,
|
|
void *pCtx,
|
|
int flags,
|
|
const char *pText, int nText,
|
|
int function(
|
|
void *pCtx,
|
|
int tflags,
|
|
const char *pToken,
|
|
int nToken,
|
|
int iStart,
|
|
int iEnd
|
|
) xToken
|
|
) xTokenize;
|
|
}
|
|
/// Ditto
|
|
enum FTS5_TOKENIZE_QUERY = 0x0001;
|
|
/// Ditto
|
|
enum FTS5_TOKENIZE_PREFIX = 0x0002;
|
|
/// Ditto
|
|
enum FTS5_TOKENIZE_DOCUMENT = 0x0004;
|
|
/// Ditto
|
|
enum FTS5_TOKENIZE_AUX = 0x0008;
|
|
/// Ditto
|
|
enum FTS5_TOKEN_COLOCATED = 0x0001;
|
|
/// Ditto
|
|
struct fts5_api
|
|
{
|
|
int iVersion;
|
|
|
|
int function(
|
|
fts5_api *pApi,
|
|
const char *zName,
|
|
void *pContext,
|
|
fts5_tokenizer *pTokenizer,
|
|
void function(void*) xDestroy
|
|
) xCreateTokenizer;
|
|
|
|
int function(
|
|
fts5_api *pApi,
|
|
const char *zName,
|
|
void **ppContext,
|
|
fts5_tokenizer *pTokenizer
|
|
) xFindTokenizer;
|
|
|
|
int function(
|
|
fts5_api *pApi,
|
|
const char *zName,
|
|
void *pContext,
|
|
fts5_extension_function xFunction,
|
|
void function(void*) xDestroy
|
|
) xCreateFunction;
|
|
}
|