| #ifndef _SQLITE3_H_ |
| #define _SQLITE3_H_ |
| #include <stdarg.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| |
| #ifndef SQLITE_EXTERN |
| # define SQLITE_EXTERN extern |
| #endif |
| |
| #ifndef SQLITE_API |
| # define SQLITE_API |
| #endif |
| |
| |
| #define SQLITE_DEPRECATED |
| #define SQLITE_EXPERIMENTAL |
| |
| |
| #ifdef SQLITE_VERSION |
| # undef SQLITE_VERSION |
| #endif |
| #ifdef SQLITE_VERSION_NUMBER |
| # undef SQLITE_VERSION_NUMBER |
| #endif |
| |
| #define SQLITE_VERSION "3.7.10" |
| #define SQLITE_VERSION_NUMBER 3007010 |
| #define SQLITE_SOURCE_ID "2012-01-16 13:28:40 ebd01a8deffb5024a5d7494eef800d2366d97204" |
| |
| SQLITE_API SQLITE_EXTERN const char sqlite3_version[]; |
| SQLITE_API const char *sqlite3_libversion(void); |
| SQLITE_API const char *sqlite3_sourceid(void); |
| SQLITE_API int sqlite3_libversion_number(void); |
| |
| #ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS |
| SQLITE_API int sqlite3_compileoption_used(const char *zOptName); |
| SQLITE_API const char *sqlite3_compileoption_get(int N); |
| #endif |
| |
| SQLITE_API int sqlite3_threadsafe(void); |
| |
| typedef struct sqlite3 sqlite3; |
| |
| #ifdef SQLITE_INT64_TYPE |
| typedef SQLITE_INT64_TYPE sqlite_int64; |
| typedef unsigned SQLITE_INT64_TYPE sqlite_uint64; |
| #elif defined(_MSC_VER) || defined(__BORLANDC__) |
| typedef __int64 sqlite_int64; |
| typedef unsigned __int64 sqlite_uint64; |
| #else |
| typedef long long int sqlite_int64; |
| typedef unsigned long long int sqlite_uint64; |
| #endif |
| typedef sqlite_int64 sqlite3_int64; |
| typedef sqlite_uint64 sqlite3_uint64; |
| |
| |
| #ifdef SQLITE_OMIT_FLOATING_POINT |
| # define double sqlite3_int64 |
| #endif |
| |
| SQLITE_API int sqlite3_close(sqlite3 *); |
| |
| typedef int (*sqlite3_callback)(void*,int,char**, char**); |
| |
| SQLITE_API int sqlite3_exec( |
| sqlite3*, /* An open database */ |
| const char *sql, /* SQL to be evaluated */ |
| int (*callback)(void*,int,char**,char**), /* Callback function */ |
| void *, /* 1st argument to callback */ |
| char **errmsg /* Error msg written here */ |
| ); |
| |
| |
| typedef struct sqlite3_file sqlite3_file; |
| struct sqlite3_file { |
| const struct sqlite3_io_methods *pMethods; /* Methods for an open file */ |
| }; |
| |
| #define SQLITE_OK 0 /* Successful result */ |
| /* beginning-of-error-codes */ |
| #define SQLITE_ERROR 1 /* SQL error or missing database */ |
| #define SQLITE_INTERNAL 2 /* Internal logic error in SQLite */ |
| #define SQLITE_PERM 3 /* Access permission denied */ |
| #define SQLITE_ABORT 4 /* Callback routine requested an abort */ |
| #define SQLITE_BUSY 5 /* The database file is locked */ |
| #define SQLITE_LOCKED 6 /* A table in the database is locked */ |
| #define SQLITE_NOMEM 7 /* A malloc() failed */ |
| #define SQLITE_READONLY 8 /* Attempt to write a readonly database */ |
| #define SQLITE_INTERRUPT 9 /* Operation terminated by sqlite3_interrupt()*/ |
| #define SQLITE_IOERR 10 /* Some kind of disk I/O error occurred */ |
| #define SQLITE_CORRUPT 11 /* The database disk image is malformed */ |
| #define SQLITE_NOTFOUND 12 /* Unknown opcode in sqlite3_file_control() */ |
| #define SQLITE_FULL 13 /* Insertion failed because database is full */ |
| #define SQLITE_CANTOPEN 14 /* Unable to open the database file */ |
| #define SQLITE_PROTOCOL 15 /* Database lock protocol error */ |
| #define SQLITE_EMPTY 16 /* Database is empty */ |
| #define SQLITE_SCHEMA 17 /* The database schema changed */ |
| #define SQLITE_TOOBIG 18 /* String or BLOB exceeds size limit */ |
| #define SQLITE_CONSTRAINT 19 /* Abort due to constraint violation */ |
| #define SQLITE_MISMATCH 20 /* Data type mismatch */ |
| #define SQLITE_MISUSE 21 /* Library used incorrectly */ |
| #define SQLITE_NOLFS 22 /* Uses OS features not supported on host */ |
| #define SQLITE_AUTH 23 /* Authorization denied */ |
| #define SQLITE_FORMAT 24 /* Auxiliary database format error */ |
| #define SQLITE_RANGE 25 /* 2nd parameter to sqlite3_bind out of range */ |
| #define SQLITE_NOTADB 26 /* File opened that is not a database file */ |
| |
| #define SQLITE_ROW 100 /* sqlite3_step() has another row ready */ |
| #define SQLITE_DONE 101 /* sqlite3_step() has finished executing */ |
| /* end-of-error-codes */ |
| |
| #define SQLITE_OPEN_READONLY 0x00000001 /* Ok for sqlite3_open_v2() */ |
| #define SQLITE_OPEN_READWRITE 0x00000002 /* Ok for sqlite3_open_v2() */ |
| #define SQLITE_OPEN_CREATE 0x00000004 /* Ok for sqlite3_open_v2() */ |
| #define SQLITE_OPEN_DELETEONCLOSE 0x00000008 /* VFS only */ |
| #define SQLITE_OPEN_EXCLUSIVE 0x00000010 /* VFS only */ |
| #define SQLITE_OPEN_AUTOPROXY 0x00000020 /* VFS only */ |
| #define SQLITE_OPEN_URI 0x00000040 /* Ok for sqlite3_open_v2() */ |
| #define SQLITE_OPEN_MAIN_DB 0x00000100 /* VFS only */ |
| #define SQLITE_OPEN_TEMP_DB 0x00000200 /* VFS only */ |
| #define SQLITE_OPEN_TRANSIENT_DB 0x00000400 /* VFS only */ |
| #define SQLITE_OPEN_MAIN_JOURNAL 0x00000800 /* VFS only */ |
| #define SQLITE_OPEN_TEMP_JOURNAL 0x00001000 /* VFS only */ |
| #define SQLITE_OPEN_SUBJOURNAL 0x00002000 /* VFS only */ |
| #define SQLITE_OPEN_MASTER_JOURNAL 0x00004000 /* VFS only */ |
| #define SQLITE_OPEN_NOMUTEX 0x00008000 /* Ok for sqlite3_open_v2() */ |
| #define SQLITE_OPEN_FULLMUTEX 0x00010000 /* Ok for sqlite3_open_v2() */ |
| #define SQLITE_OPEN_SHAREDCACHE 0x00020000 /* Ok for sqlite3_open_v2() */ |
| #define SQLITE_OPEN_PRIVATECACHE 0x00040000 /* Ok for sqlite3_open_v2() */ |
| #define SQLITE_OPEN_WAL 0x00080000 /* VFS only */ |
| |
| #define SQLITE_IOCAP_ATOMIC 0x00000001 |
| #define SQLITE_IOCAP_ATOMIC512 0x00000002 |
| #define SQLITE_IOCAP_ATOMIC1K 0x00000004 |
| #define SQLITE_IOCAP_ATOMIC2K 0x00000008 |
| #define SQLITE_IOCAP_ATOMIC4K 0x00000010 |
| #define SQLITE_IOCAP_ATOMIC8K 0x00000020 |
| #define SQLITE_IOCAP_ATOMIC16K 0x00000040 |
| #define SQLITE_IOCAP_ATOMIC32K 0x00000080 |
| #define SQLITE_IOCAP_ATOMIC64K 0x00000100 |
| #define SQLITE_IOCAP_SAFE_APPEND 0x00000200 |
| #define SQLITE_IOCAP_SEQUENTIAL 0x00000400 |
| #define SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN 0x00000800 |
| #define SQLITE_IOCAP_POWERSAFE_OVERWRITE 0x00001000 |
| |
| #define SQLITE_LOCK_NONE 0 |
| #define SQLITE_LOCK_SHARED 1 |
| #define SQLITE_LOCK_RESERVED 2 |
| #define SQLITE_LOCK_PENDING 3 |
| #define SQLITE_LOCK_EXCLUSIVE 4 |
| |
| #define SQLITE_SYNC_NORMAL 0x00002 |
| #define SQLITE_SYNC_FULL 0x00003 |
| #define SQLITE_SYNC_DATAONLY 0x00010 |
| |
| |
| #define SQLITE_IOERR_READ (SQLITE_IOERR | (1<<8)) |
| #define SQLITE_IOERR_SHORT_READ (SQLITE_IOERR | (2<<8)) |
| #define SQLITE_IOERR_WRITE (SQLITE_IOERR | (3<<8)) |
| #define SQLITE_IOERR_FSYNC (SQLITE_IOERR | (4<<8)) |
| #define SQLITE_IOERR_DIR_FSYNC (SQLITE_IOERR | (5<<8)) |
| #define SQLITE_IOERR_TRUNCATE (SQLITE_IOERR | (6<<8)) |
| #define SQLITE_IOERR_FSTAT (SQLITE_IOERR | (7<<8)) |
| #define SQLITE_IOERR_UNLOCK (SQLITE_IOERR | (8<<8)) |
| #define SQLITE_IOERR_RDLOCK (SQLITE_IOERR | (9<<8)) |
| #define SQLITE_IOERR_DELETE (SQLITE_IOERR | (10<<8)) |
| #define SQLITE_IOERR_BLOCKED (SQLITE_IOERR | (11<<8)) |
| #define SQLITE_IOERR_NOMEM (SQLITE_IOERR | (12<<8)) |
| #define SQLITE_IOERR_ACCESS (SQLITE_IOERR | (13<<8)) |
| #define SQLITE_IOERR_CHECKRESERVEDLOCK (SQLITE_IOERR | (14<<8)) |
| #define SQLITE_IOERR_LOCK (SQLITE_IOERR | (15<<8)) |
| #define SQLITE_IOERR_CLOSE (SQLITE_IOERR | (16<<8)) |
| #define SQLITE_IOERR_DIR_CLOSE (SQLITE_IOERR | (17<<8)) |
| #define SQLITE_IOERR_SHMOPEN (SQLITE_IOERR | (18<<8)) |
| #define SQLITE_IOERR_SHMSIZE (SQLITE_IOERR | (19<<8)) |
| #define SQLITE_IOERR_SHMLOCK (SQLITE_IOERR | (20<<8)) |
| #define SQLITE_IOERR_SHMMAP (SQLITE_IOERR | (21<<8)) |
| #define SQLITE_IOERR_SEEK (SQLITE_IOERR | (22<<8)) |
| #define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8)) |
| #define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8)) |
| #define SQLITE_CANTOPEN_NOTEMPDIR (SQLITE_CANTOPEN | (1<<8)) |
| #define SQLITE_CORRUPT_VTAB (SQLITE_CORRUPT | (1<<8)) |
| #define SQLITE_READONLY_RECOVERY (SQLITE_READONLY | (1<<8)) |
| #define SQLITE_READONLY_CANTLOCK (SQLITE_READONLY | (2<<8)) |
| |
| |
| typedef struct sqlite3_io_methods sqlite3_io_methods; |
| struct sqlite3_io_methods { |
| int iVersion; |
| int (*xClose)(sqlite3_file*); |
| int (*xRead)(sqlite3_file*, void*, int iAmt, sqlite3_int64 iOfst); |
| int (*xWrite)(sqlite3_file*, const void*, int iAmt, sqlite3_int64 iOfst); |
| int (*xTruncate)(sqlite3_file*, sqlite3_int64 size); |
| int (*xSync)(sqlite3_file*, int flags); |
| int (*xFileSize)(sqlite3_file*, sqlite3_int64 *pSize); |
| int (*xLock)(sqlite3_file*, int); |
| int (*xUnlock)(sqlite3_file*, int); |
| int (*xCheckReservedLock)(sqlite3_file*, int *pResOut); |
| int (*xFileControl)(sqlite3_file*, int op, void *pArg); |
| int (*xSectorSize)(sqlite3_file*); |
| int (*xDeviceCharacteristics)(sqlite3_file*); |
| /* Methods above are valid for version 1 */ |
| int (*xShmMap)(sqlite3_file*, int iPg, int pgsz, int, void volatile**); |
| int (*xShmLock)(sqlite3_file*, int offset, int n, int flags); |
| void (*xShmBarrier)(sqlite3_file*); |
| int (*xShmUnmap)(sqlite3_file*, int deleteFlag); |
| /* Methods above are valid for version 2 */ |
| /* Additional methods may be added in future releases */ |
| }; |
| |
| typedef struct sqlite3_mutex sqlite3_mutex; |
| |
| #define SQLITE_FCNTL_LOCKSTATE 1 |
| #define SQLITE_GET_LOCKPROXYFILE 2 |
| #define SQLITE_SET_LOCKPROXYFILE 3 |
| #define SQLITE_LAST_ERRNO 4 |
| #define SQLITE_FCNTL_SIZE_HINT 5 |
| #define SQLITE_FCNTL_CHUNK_SIZE 6 |
| #define SQLITE_FCNTL_FILE_POINTER 7 |
| #define SQLITE_FCNTL_SYNC_OMITTED 8 |
| #define SQLITE_FCNTL_WIN32_AV_RETRY 9 |
| #define SQLITE_FCNTL_PERSIST_WAL 10 |
| #define SQLITE_FCNTL_OVERWRITE 11 |
| #define SQLITE_FCNTL_VFSNAME 12 |
| #define SQLITE_FCNTL_POWERSAFE_OVERWRITE 13 |
| |
| |
| typedef struct sqlite3_vfs sqlite3_vfs; |
| typedef void (*sqlite3_syscall_ptr)(void); |
| struct sqlite3_vfs { |
| int iVersion; /* Structure version number (currently 3) */ |
| 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 (*xOpen)(sqlite3_vfs*, const char *zName, sqlite3_file*, |
| int flags, int *pOutFlags); |
| int (*xDelete)(sqlite3_vfs*, const char *zName, int syncDir); |
| int (*xAccess)(sqlite3_vfs*, const char *zName, int flags, int *pResOut); |
| int (*xFullPathname)(sqlite3_vfs*, const char *zName, int nOut, char *zOut); |
| void *(*xDlOpen)(sqlite3_vfs*, const char *zFilename); |
| void (*xDlError)(sqlite3_vfs*, int nByte, char *zErrMsg); |
| void (*(*xDlSym)(sqlite3_vfs*,void*, const char *zSymbol))(void); |
| void (*xDlClose)(sqlite3_vfs*, void*); |
| int (*xRandomness)(sqlite3_vfs*, int nByte, char *zOut); |
| int (*xSleep)(sqlite3_vfs*, int microseconds); |
| int (*xCurrentTime)(sqlite3_vfs*, double*); |
| int (*xGetLastError)(sqlite3_vfs*, int, char *); |
| /* |
| ** The methods above are in version 1 of the sqlite_vfs object |
| ** definition. Those that follow are added in version 2 or later |
| */ |
| int (*xCurrentTimeInt64)(sqlite3_vfs*, sqlite3_int64*); |
| /* |
| ** The methods above are in versions 1 and 2 of the sqlite_vfs object. |
| ** Those below are for version 3 and greater. |
| */ |
| int (*xSetSystemCall)(sqlite3_vfs*, const char *zName, sqlite3_syscall_ptr); |
| sqlite3_syscall_ptr (*xGetSystemCall)(sqlite3_vfs*, const char *zName); |
| const char *(*xNextSystemCall)(sqlite3_vfs*, const char *zName); |
| /* |
| ** 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. |
| */ |
| }; |
| |
| |
| #define SQLITE_ACCESS_EXISTS 0 |
| #define SQLITE_ACCESS_READWRITE 1 /* Used by PRAGMA temp_store_directory */ |
| #define SQLITE_ACCESS_READ 2 /* Unused */ |
| |
| #define SQLITE_SHM_UNLOCK 1 |
| #define SQLITE_SHM_LOCK 2 |
| #define SQLITE_SHM_SHARED 4 |
| #define SQLITE_SHM_EXCLUSIVE 8 |
| |
| #define SQLITE_SHM_NLOCK 8 |
| |
| typedef struct sqlite3_mem_methods sqlite3_mem_methods; |
| struct sqlite3_mem_methods { |
| void *(*xMalloc)(int); /* Memory allocation function */ |
| void (*xFree)(void*); /* Free a prior allocation */ |
| void *(*xRealloc)(void*,int); /* Resize an allocation */ |
| int (*xSize)(void*); /* Return the size of an allocation */ |
| int (*xRoundup)(int); /* Round up request size to allocation size */ |
| int (*xInit)(void*); /* Initialize the memory allocator */ |
| void (*xShutdown)(void*); /* Deinitialize the memory allocator */ |
| void *pAppData; /* Argument to xInit() and xShutdown() */ |
| }; |
| |
| SQLITE_API int sqlite3_initialize(void); |
| SQLITE_API int sqlite3_shutdown(void); |
| SQLITE_API int sqlite3_os_init(void); |
| SQLITE_API int sqlite3_os_end(void); |
| SQLITE_API int sqlite3_config(int, ...); |
| SQLITE_API int sqlite3_db_config(sqlite3*, int op, ...); |
| |
| |
| #define SQLITE_CONFIG_SINGLETHREAD 1 /* nil */ |
| #define SQLITE_CONFIG_MULTITHREAD 2 /* nil */ |
| #define SQLITE_CONFIG_SERIALIZED 3 /* nil */ |
| #define SQLITE_CONFIG_MALLOC 4 /* sqlite3_mem_methods* */ |
| #define SQLITE_CONFIG_GETMALLOC 5 /* sqlite3_mem_methods* */ |
| #define SQLITE_CONFIG_SCRATCH 6 /* void*, int sz, int N */ |
| #define SQLITE_CONFIG_PAGECACHE 7 /* void*, int sz, int N */ |
| #define SQLITE_CONFIG_HEAP 8 /* void*, int nByte, int min */ |
| #define SQLITE_CONFIG_MEMSTATUS 9 /* boolean */ |
| #define SQLITE_CONFIG_MUTEX 10 /* sqlite3_mutex_methods* */ |
| #define SQLITE_CONFIG_GETMUTEX 11 /* sqlite3_mutex_methods* */ |
| /* previously SQLITE_CONFIG_CHUNKALLOC 12 which is now unused. */ |
| #define SQLITE_CONFIG_LOOKASIDE 13 /* int int */ |
| #define SQLITE_CONFIG_PCACHE 14 /* no-op */ |
| #define SQLITE_CONFIG_GETPCACHE 15 /* no-op */ |
| #define SQLITE_CONFIG_LOG 16 /* xFunc, void* */ |
| #define SQLITE_CONFIG_URI 17 /* int */ |
| #define SQLITE_CONFIG_PCACHE2 18 /* sqlite3_pcache_methods2* */ |
| #define SQLITE_CONFIG_GETPCACHE2 19 /* sqlite3_pcache_methods2* */ |
| |
| #define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */ |
| #define SQLITE_DBCONFIG_ENABLE_FKEY 1002 /* int int* */ |
| #define SQLITE_DBCONFIG_ENABLE_TRIGGER 1003 /* int int* */ |
| |
| #define SQLITE_DENY 1 /* Abort the SQL statement with an error */ |
| #define SQLITE_IGNORE 2 /* Don't allow access, but don't generate an error */ |
| |
| SQLITE_API int sqlite3_extended_result_codes(sqlite3*, int onoff); |
| SQLITE_API sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*); |
| SQLITE_API int sqlite3_changes(sqlite3*); |
| SQLITE_API int sqlite3_total_changes(sqlite3*); |
| SQLITE_API void sqlite3_interrupt(sqlite3*); |
| SQLITE_API int sqlite3_complete(const char *sql); |
| SQLITE_API int sqlite3_complete16(const void *sql); |
| SQLITE_API int sqlite3_busy_handler(sqlite3*, int(*)(void*,int), void*); |
| SQLITE_API int sqlite3_busy_timeout(sqlite3*, int ms); |
| SQLITE_API 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 */ |
| ); |
| SQLITE_API void sqlite3_free_table(char **result); |
| SQLITE_API char *sqlite3_mprintf(const char*,...); |
| SQLITE_API char *sqlite3_vmprintf(const char*, va_list); |
| SQLITE_API char *sqlite3_snprintf(int,char*,const char*, ...); |
| SQLITE_API char *sqlite3_vsnprintf(int,char*,const char*, va_list); |
| |
| SQLITE_API void *sqlite3_malloc(int); |
| SQLITE_API void *sqlite3_realloc(void*, int); |
| SQLITE_API void sqlite3_free(void*); |
| SQLITE_API sqlite3_int64 sqlite3_memory_used(void); |
| SQLITE_API sqlite3_int64 sqlite3_memory_highwater(int resetFlag); |
| SQLITE_API void sqlite3_randomness(int N, void *P); |
| |
| SQLITE_API int sqlite3_set_authorizer( |
| sqlite3*, |
| int (*xAuth)(void*,int,const char*,const char*,const char*,const char*), |
| void *pUserData |
| ); |
| |
| #define SQLITE_CREATE_INDEX 1 /* Index Name Table Name */ |
| #define SQLITE_CREATE_TABLE 2 /* Table Name NULL */ |
| #define SQLITE_CREATE_TEMP_INDEX 3 /* Index Name Table Name */ |
| #define SQLITE_CREATE_TEMP_TABLE 4 /* Table Name NULL */ |
| #define SQLITE_CREATE_TEMP_TRIGGER 5 /* Trigger Name Table Name */ |
| #define SQLITE_CREATE_TEMP_VIEW 6 /* View Name NULL */ |
| #define SQLITE_CREATE_TRIGGER 7 /* Trigger Name Table Name */ |
| #define SQLITE_CREATE_VIEW 8 /* View Name NULL */ |
| #define SQLITE_DELETE 9 /* Table Name NULL */ |
| #define SQLITE_DROP_INDEX 10 /* Index Name Table Name */ |
| #define SQLITE_DROP_TABLE 11 /* Table Name NULL */ |
| #define SQLITE_DROP_TEMP_INDEX 12 /* Index Name Table Name */ |
| #define SQLITE_DROP_TEMP_TABLE 13 /* Table Name NULL */ |
| #define SQLITE_DROP_TEMP_TRIGGER 14 /* Trigger Name Table Name */ |
| #define SQLITE_DROP_TEMP_VIEW 15 /* View Name NULL */ |
| #define SQLITE_DROP_TRIGGER 16 /* Trigger Name Table Name */ |
| #define SQLITE_DROP_VIEW 17 /* View Name NULL */ |
| #define SQLITE_INSERT 18 /* Table Name NULL */ |
| #define SQLITE_PRAGMA 19 /* Pragma Name 1st arg or NULL */ |
| #define SQLITE_READ 20 /* Table Name Column Name */ |
| #define SQLITE_SELECT 21 /* NULL NULL */ |
| #define SQLITE_TRANSACTION 22 /* Operation NULL */ |
| #define SQLITE_UPDATE 23 /* Table Name Column Name */ |
| #define SQLITE_ATTACH 24 /* Filename NULL */ |
| #define SQLITE_DETACH 25 /* Database Name NULL */ |
| #define SQLITE_ALTER_TABLE 26 /* Database Name Table Name */ |
| #define SQLITE_REINDEX 27 /* Index Name NULL */ |
| #define SQLITE_ANALYZE 28 /* Table Name NULL */ |
| #define SQLITE_CREATE_VTABLE 29 /* Table Name Module Name */ |
| #define SQLITE_DROP_VTABLE 30 /* Table Name Module Name */ |
| #define SQLITE_FUNCTION 31 /* NULL Function Name */ |
| #define SQLITE_SAVEPOINT 32 /* Operation Savepoint Name */ |
| #define SQLITE_COPY 0 /* No longer used */ |
| |
| typedef struct sqlite3_stmt sqlite3_stmt; |
| |
| SQLITE_API void *sqlite3_trace(sqlite3*, void(*xTrace)(void*,const char*), void*); |
| SQLITE_API SQLITE_EXPERIMENTAL void *sqlite3_profile(sqlite3*, |
| void(*xProfile)(void*,const char*,sqlite3_uint64), void*); |
| SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*); |
| |
| SQLITE_API int sqlite3_open( |
| const char *filename, /* Database filename (UTF-8) */ |
| sqlite3 **ppDb /* OUT: SQLite db handle */ |
| ); |
| SQLITE_API int sqlite3_open16( |
| const void *filename, /* Database filename (UTF-16) */ |
| sqlite3 **ppDb /* OUT: SQLite db handle */ |
| ); |
| SQLITE_API 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 */ |
| ); |
| |
| SQLITE_API const char *sqlite3_uri_parameter(const char *zFilename, const char *zParam); |
| SQLITE_API int sqlite3_uri_boolean(const char *zFile, const char *zParam, int bDefault); |
| SQLITE_API sqlite3_int64 sqlite3_uri_int64(const char*, const char*, sqlite3_int64); |
| |
| SQLITE_API int sqlite3_errcode(sqlite3 *db); |
| SQLITE_API int sqlite3_extended_errcode(sqlite3 *db); |
| SQLITE_API const char *sqlite3_errmsg(sqlite3*); |
| SQLITE_API const void *sqlite3_errmsg16(sqlite3*); |
| |
| SQLITE_API int sqlite3_limit(sqlite3*, int id, int newVal); |
| |
| #define SQLITE_LIMIT_LENGTH 0 |
| #define SQLITE_LIMIT_SQL_LENGTH 1 |
| #define SQLITE_LIMIT_COLUMN 2 |
| #define SQLITE_LIMIT_EXPR_DEPTH 3 |
| #define SQLITE_LIMIT_COMPOUND_SELECT 4 |
| #define SQLITE_LIMIT_VDBE_OP 5 |
| #define SQLITE_LIMIT_FUNCTION_ARG 6 |
| #define SQLITE_LIMIT_ATTACHED 7 |
| #define SQLITE_LIMIT_LIKE_PATTERN_LENGTH 8 |
| #define SQLITE_LIMIT_VARIABLE_NUMBER 9 |
| #define SQLITE_LIMIT_TRIGGER_DEPTH 10 |
| |
| SQLITE_API 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 */ |
| ); |
| SQLITE_API 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 */ |
| ); |
| SQLITE_API 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 */ |
| ); |
| SQLITE_API 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 */ |
| ); |
| |
| typedef struct Mem sqlite3_value; |
| typedef struct sqlite3_context sqlite3_context; |
| |
| SQLITE_API const char *sqlite3_sql(sqlite3_stmt *pStmt); |
| SQLITE_API int sqlite3_stmt_readonly(sqlite3_stmt *pStmt); |
| SQLITE_API int sqlite3_stmt_busy(sqlite3_stmt*); |
| |
| SQLITE_API int sqlite3_bind_blob(sqlite3_stmt*, int, const void*, int n, void(*)(void*)); |
| SQLITE_API int sqlite3_bind_double(sqlite3_stmt*, int, double); |
| SQLITE_API int sqlite3_bind_int(sqlite3_stmt*, int, int); |
| SQLITE_API int sqlite3_bind_int64(sqlite3_stmt*, int, sqlite3_int64); |
| SQLITE_API int sqlite3_bind_null(sqlite3_stmt*, int); |
| SQLITE_API int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int n, void(*)(void*)); |
| SQLITE_API int sqlite3_bind_text16(sqlite3_stmt*, int, const void*, int, void(*)(void*)); |
| SQLITE_API int sqlite3_bind_value(sqlite3_stmt*, int, const sqlite3_value*); |
| SQLITE_API int sqlite3_bind_zeroblob(sqlite3_stmt*, int, int n); |
| |
| SQLITE_API int sqlite3_bind_parameter_count(sqlite3_stmt*); |
| SQLITE_API const char *sqlite3_bind_parameter_name(sqlite3_stmt*, int); |
| SQLITE_API int sqlite3_bind_parameter_index(sqlite3_stmt*, const char *zName); |
| SQLITE_API int sqlite3_clear_bindings(sqlite3_stmt*); |
| SQLITE_API int sqlite3_column_count(sqlite3_stmt *pStmt); |
| SQLITE_API const char *sqlite3_column_name(sqlite3_stmt*, int N); |
| SQLITE_API const void *sqlite3_column_name16(sqlite3_stmt*, int N); |
| SQLITE_API const char *sqlite3_column_database_name(sqlite3_stmt*,int); |
| SQLITE_API const void *sqlite3_column_database_name16(sqlite3_stmt*,int); |
| SQLITE_API const char *sqlite3_column_table_name(sqlite3_stmt*,int); |
| SQLITE_API const void *sqlite3_column_table_name16(sqlite3_stmt*,int); |
| SQLITE_API const char *sqlite3_column_origin_name(sqlite3_stmt*,int); |
| SQLITE_API const void *sqlite3_column_origin_name16(sqlite3_stmt*,int); |
| SQLITE_API const char *sqlite3_column_decltype(sqlite3_stmt*,int); |
| SQLITE_API const void *sqlite3_column_decltype16(sqlite3_stmt*,int); |
| |
| SQLITE_API int sqlite3_step(sqlite3_stmt*); |
| SQLITE_API int sqlite3_data_count(sqlite3_stmt *pStmt); |
| |
| #define SQLITE_INTEGER 1 |
| #define SQLITE_FLOAT 2 |
| #define SQLITE_BLOB 4 |
| #define SQLITE_NULL 5 |
| #ifdef SQLITE_TEXT |
| # undef SQLITE_TEXT |
| #else |
| # define SQLITE_TEXT 3 |
| #endif |
| #define SQLITE3_TEXT 3 |
| |
| #define SQLITE_UTF8 1 |
| #define SQLITE_UTF16LE 2 |
| #define SQLITE_UTF16BE 3 |
| #define SQLITE_UTF16 4 /* Use native byte order */ |
| #define SQLITE_ANY 5 /* sqlite3_create_function only */ |
| #define SQLITE_UTF16_ALIGNED 8 /* sqlite3_create_collation only */ |
| |
| SQLITE_API const void *sqlite3_column_blob(sqlite3_stmt*, int iCol); |
| SQLITE_API int sqlite3_column_bytes(sqlite3_stmt*, int iCol); |
| SQLITE_API int sqlite3_column_bytes16(sqlite3_stmt*, int iCol); |
| SQLITE_API double sqlite3_column_double(sqlite3_stmt*, int iCol); |
| SQLITE_API int sqlite3_column_int(sqlite3_stmt*, int iCol); |
| SQLITE_API sqlite3_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol); |
| SQLITE_API const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol); |
| SQLITE_API const void *sqlite3_column_text16(sqlite3_stmt*, int iCol); |
| SQLITE_API int sqlite3_column_type(sqlite3_stmt*, int iCol); |
| SQLITE_API sqlite3_value *sqlite3_column_value(sqlite3_stmt*, int iCol); |
| SQLITE_API int sqlite3_finalize(sqlite3_stmt *pStmt); |
| SQLITE_API int sqlite3_reset(sqlite3_stmt *pStmt); |
| |
| SQLITE_API int sqlite3_create_function( |
| sqlite3 *db, |
| const char *zFunctionName, |
| int nArg, |
| int eTextRep, |
| void *pApp, |
| void (*xFunc)(sqlite3_context*,int,sqlite3_value**), |
| void (*xStep)(sqlite3_context*,int,sqlite3_value**), |
| void (*xFinal)(sqlite3_context*) |
| ); |
| SQLITE_API int sqlite3_create_function16( |
| sqlite3 *db, |
| const void *zFunctionName, |
| int nArg, |
| int eTextRep, |
| void *pApp, |
| void (*xFunc)(sqlite3_context*,int,sqlite3_value**), |
| void (*xStep)(sqlite3_context*,int,sqlite3_value**), |
| void (*xFinal)(sqlite3_context*) |
| ); |
| SQLITE_API int sqlite3_create_function_v2( |
| sqlite3 *db, |
| const char *zFunctionName, |
| int nArg, |
| int eTextRep, |
| void *pApp, |
| void (*xFunc)(sqlite3_context*,int,sqlite3_value**), |
| void (*xStep)(sqlite3_context*,int,sqlite3_value**), |
| void (*xFinal)(sqlite3_context*), |
| void(*xDestroy)(void*) |
| ); |
| |
| #ifndef SQLITE_OMIT_DEPRECATED |
| SQLITE_API SQLITE_DEPRECATED int sqlite3_aggregate_count(sqlite3_context*); |
| SQLITE_API SQLITE_DEPRECATED int sqlite3_expired(sqlite3_stmt*); |
| SQLITE_API SQLITE_DEPRECATED int sqlite3_transfer_bindings(sqlite3_stmt*, sqlite3_stmt*); |
| SQLITE_API SQLITE_DEPRECATED int sqlite3_global_recover(void); |
| SQLITE_API SQLITE_DEPRECATED void sqlite3_thread_cleanup(void); |
| SQLITE_API SQLITE_DEPRECATED int sqlite3_memory_alarm(void(*)(void*,sqlite3_int64,int),void*,sqlite3_int64); |
| #endif |
| |
| |
| typedef void (*sqlite3_destructor_type)(void*); |
| #define SQLITE_STATIC ((sqlite3_destructor_type)0) |
| #define SQLITE_TRANSIENT ((sqlite3_destructor_type)-1) |
| |
| SQLITE_API const void *sqlite3_value_blob(sqlite3_value*); |
| SQLITE_API int sqlite3_value_bytes(sqlite3_value*); |
| SQLITE_API int sqlite3_value_bytes16(sqlite3_value*); |
| SQLITE_API double sqlite3_value_double(sqlite3_value*); |
| SQLITE_API int sqlite3_value_int(sqlite3_value*); |
| SQLITE_API sqlite3_int64 sqlite3_value_int64(sqlite3_value*); |
| SQLITE_API const unsigned char *sqlite3_value_text(sqlite3_value*); |
| SQLITE_API const void *sqlite3_value_text16(sqlite3_value*); |
| SQLITE_API const void *sqlite3_value_text16le(sqlite3_value*); |
| SQLITE_API const void *sqlite3_value_text16be(sqlite3_value*); |
| SQLITE_API int sqlite3_value_type(sqlite3_value*); |
| SQLITE_API int sqlite3_value_numeric_type(sqlite3_value*); |
| |
| SQLITE_API void *sqlite3_aggregate_context(sqlite3_context*, int nBytes); |
| SQLITE_API void *sqlite3_user_data(sqlite3_context*); |
| SQLITE_API sqlite3 *sqlite3_context_db_handle(sqlite3_context*); |
| SQLITE_API void *sqlite3_get_auxdata(sqlite3_context*, int N); |
| SQLITE_API void sqlite3_set_auxdata(sqlite3_context*, int N, void*, void (*)(void*)); |
| |
| SQLITE_API void sqlite3_result_blob(sqlite3_context*, const void*, int, void(*)(void*)); |
| SQLITE_API void sqlite3_result_double(sqlite3_context*, double); |
| SQLITE_API void sqlite3_result_error(sqlite3_context*, const char*, int); |
| SQLITE_API void sqlite3_result_error16(sqlite3_context*, const void*, int); |
| SQLITE_API void sqlite3_result_error_toobig(sqlite3_context*); |
| SQLITE_API void sqlite3_result_error_nomem(sqlite3_context*); |
| SQLITE_API void sqlite3_result_error_code(sqlite3_context*, int); |
| SQLITE_API void sqlite3_result_int(sqlite3_context*, int); |
| SQLITE_API void sqlite3_result_int64(sqlite3_context*, sqlite3_int64); |
| SQLITE_API void sqlite3_result_null(sqlite3_context*); |
| SQLITE_API void sqlite3_result_text(sqlite3_context*, const char*, int, void(*)(void*)); |
| SQLITE_API void sqlite3_result_text16(sqlite3_context*, const void*, int, void(*)(void*)); |
| SQLITE_API void sqlite3_result_text16le(sqlite3_context*, const void*, int,void(*)(void*)); |
| SQLITE_API void sqlite3_result_text16be(sqlite3_context*, const void*, int,void(*)(void*)); |
| SQLITE_API void sqlite3_result_value(sqlite3_context*, sqlite3_value*); |
| SQLITE_API void sqlite3_result_zeroblob(sqlite3_context*, int n); |
| |
| |
| SQLITE_API int sqlite3_create_collation( |
| sqlite3*, |
| const char *zName, |
| int eTextRep, |
| void *pArg, |
| int(*xCompare)(void*,int,const void*,int,const void*) |
| ); |
| SQLITE_API int sqlite3_create_collation_v2( |
| sqlite3*, |
| const char *zName, |
| int eTextRep, |
| void *pArg, |
| int(*xCompare)(void*,int,const void*,int,const void*), |
| void(*xDestroy)(void*) |
| ); |
| SQLITE_API int sqlite3_create_collation16( |
| sqlite3*, |
| const void *zName, |
| int eTextRep, |
| void *pArg, |
| int(*xCompare)(void*,int,const void*,int,const void*) |
| ); |
| |
| SQLITE_API int sqlite3_collation_needed( |
| sqlite3*, |
| void*, |
| void(*)(void*,sqlite3*,int eTextRep,const char*) |
| ); |
| SQLITE_API int sqlite3_collation_needed16( |
| sqlite3*, |
| void*, |
| void(*)(void*,sqlite3*,int eTextRep,const void*) |
| ); |
| |
| #ifdef SQLITE_ENABLE_CEROD |
| SQLITE_API void sqlite3_activate_cerod( |
| const char *zPassPhrase /* Activation phrase */ |
| ); |
| #endif |
| |
| #ifdef SQLITE_HAS_CODEC |
| SQLITE_API int sqlite3_key( |
| sqlite3 *db, /* Database to be rekeyed */ |
| const void *pKey, int nKey /* The key */ |
| ); |
| |
| SQLITE_API int sqlite3_rekey( |
| sqlite3 *db, /* Database to be rekeyed */ |
| const void *pKey, int nKey /* The new key */ |
| ); |
| |
| SQLITE_API void sqlite3_activate_see( |
| const char *zPassPhrase /* Activation phrase */ |
| ); |
| #endif |
| |
| SQLITE_API SQLITE_EXTERN char *sqlite3_temp_directory; |
| |
| SQLITE_API int sqlite3_sleep(int); |
| SQLITE_API int sqlite3_get_autocommit(sqlite3*); |
| SQLITE_API sqlite3 *sqlite3_db_handle(sqlite3_stmt*); |
| SQLITE_API const char *sqlite3_db_filename(sqlite3 *db, const char *zDbName); |
| SQLITE_API sqlite3_stmt *sqlite3_next_stmt(sqlite3 *pDb, sqlite3_stmt *pStmt); |
| SQLITE_API void *sqlite3_commit_hook(sqlite3*, int(*)(void*), void*); |
| SQLITE_API void *sqlite3_rollback_hook(sqlite3*, void(*)(void *), void*); |
| SQLITE_API int sqlite3_enable_shared_cache(int); |
| |
| SQLITE_API void *sqlite3_update_hook( |
| sqlite3*, |
| void(*)(void *,int ,char const *,char const *,sqlite3_int64), |
| void* |
| ); |
| |
| SQLITE_API int sqlite3_release_memory(int); |
| SQLITE_API int sqlite3_db_release_memory(sqlite3*); |
| |
| SQLITE_API sqlite3_int64 sqlite3_soft_heap_limit64(sqlite3_int64 N); |
| SQLITE_API SQLITE_DEPRECATED void sqlite3_soft_heap_limit(int N); |
| |
| SQLITE_API 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 const **pzDataType, /* OUTPUT: Declared data type */ |
| char const **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 */ |
| ); |
| |
| SQLITE_API 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 */ |
| ); |
| |
| typedef struct sqlite3_vtab sqlite3_vtab; |
| typedef struct sqlite3_index_info sqlite3_index_info; |
| typedef struct sqlite3_vtab_cursor sqlite3_vtab_cursor; |
| typedef struct sqlite3_module sqlite3_module; |
| |
| SQLITE_API int sqlite3_enable_load_extension(sqlite3 *db, int onoff); |
| SQLITE_API int sqlite3_auto_extension(void (*xEntryPoint)(void)); |
| SQLITE_API void sqlite3_reset_auto_extension(void); |
| |
| |
| #define SQLITE_INDEX_CONSTRAINT_EQ 2 |
| #define SQLITE_INDEX_CONSTRAINT_GT 4 |
| #define SQLITE_INDEX_CONSTRAINT_LE 8 |
| #define SQLITE_INDEX_CONSTRAINT_LT 16 |
| #define SQLITE_INDEX_CONSTRAINT_GE 32 |
| #define SQLITE_INDEX_CONSTRAINT_MATCH 64 |
| |
| |
| struct sqlite3_module { |
| int iVersion; |
| int (*xCreate)(sqlite3*, void *pAux, |
| int argc, const char *const*argv, |
| sqlite3_vtab **ppVTab, char**); |
| int (*xConnect)(sqlite3*, void *pAux, |
| int argc, const char *const*argv, |
| sqlite3_vtab **ppVTab, char**); |
| int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*); |
| int (*xDisconnect)(sqlite3_vtab *pVTab); |
| int (*xDestroy)(sqlite3_vtab *pVTab); |
| int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor); |
| int (*xClose)(sqlite3_vtab_cursor*); |
| int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr, |
| int argc, sqlite3_value **argv); |
| int (*xNext)(sqlite3_vtab_cursor*); |
| int (*xEof)(sqlite3_vtab_cursor*); |
| int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int); |
| int (*xRowid)(sqlite3_vtab_cursor*, sqlite3_int64 *pRowid); |
| int (*xUpdate)(sqlite3_vtab *, int, sqlite3_value **, sqlite3_int64 *); |
| int (*xBegin)(sqlite3_vtab *pVTab); |
| int (*xSync)(sqlite3_vtab *pVTab); |
| int (*xCommit)(sqlite3_vtab *pVTab); |
| int (*xRollback)(sqlite3_vtab *pVTab); |
| int (*xFindFunction)(sqlite3_vtab *pVtab, int nArg, const char *zName, |
| void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), |
| void **ppArg); |
| int (*xRename)(sqlite3_vtab *pVtab, const char *zNew); |
| /* The methods above are in version 1 of the sqlite_module object. Those |
| ** below are for version 2 and greater. */ |
| int (*xSavepoint)(sqlite3_vtab *pVTab, int); |
| int (*xRelease)(sqlite3_vtab *pVTab, int); |
| int (*xRollbackTo)(sqlite3_vtab *pVTab, int); |
| }; |
| |
| struct sqlite3_index_info { |
| /* Inputs */ |
| int nConstraint; /* Number of entries in aConstraint */ |
| struct sqlite3_index_constraint { |
| int iColumn; /* Column on left-hand side of constraint */ |
| unsigned char op; /* Constraint operator */ |
| unsigned char usable; /* True if this constraint is usable */ |
| int iTermOffset; /* Used internally - xBestIndex should ignore */ |
| } *aConstraint; /* Table of WHERE clause constraints */ |
| int nOrderBy; /* Number of terms in the ORDER BY clause */ |
| struct sqlite3_index_orderby { |
| int iColumn; /* Column number */ |
| unsigned char desc; /* True for DESC. False for ASC. */ |
| } *aOrderBy; /* The ORDER BY clause */ |
| /* Outputs */ |
| struct sqlite3_index_constraint_usage { |
| int argvIndex; /* if >0, constraint is part of argv to xFilter */ |
| unsigned char omit; /* Do not code a test for this constraint */ |
| } *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 */ |
| }; |
| |
| typedef struct sqlite3_blob sqlite3_blob; |
| |
| SQLITE_API 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 */ |
| ); |
| SQLITE_API 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(*xDestroy)(void*) /* Module destructor function */ |
| ); |
| |
| 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 */ |
| }; |
| |
| struct sqlite3_vtab_cursor { |
| sqlite3_vtab *pVtab; /* Virtual table of this cursor */ |
| /* Virtual table implementations will typically add additional fields */ |
| }; |
| |
| SQLITE_API int sqlite3_declare_vtab(sqlite3*, const char *zSQL); |
| SQLITE_API int sqlite3_overload_function(sqlite3*, const char *zFuncName, int nArg); |
| |
| SQLITE_API int sqlite3_blob_open( |
| sqlite3*, |
| const char *zDb, |
| const char *zTable, |
| const char *zColumn, |
| sqlite3_int64 iRow, |
| int flags, |
| sqlite3_blob **ppBlob |
| ); |
| |
| SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_blob_reopen(sqlite3_blob *, sqlite3_int64); |
| SQLITE_API int sqlite3_blob_close(sqlite3_blob *); |
| SQLITE_API int sqlite3_blob_bytes(sqlite3_blob *); |
| SQLITE_API int sqlite3_blob_read(sqlite3_blob *, void *Z, int N, int iOffset); |
| SQLITE_API int sqlite3_blob_write(sqlite3_blob *, const void *z, int n, int iOffset); |
| |
| SQLITE_API sqlite3_vfs *sqlite3_vfs_find(const char *zVfsName); |
| SQLITE_API int sqlite3_vfs_register(sqlite3_vfs*, int makeDflt); |
| SQLITE_API int sqlite3_vfs_unregister(sqlite3_vfs*); |
| |
| SQLITE_API sqlite3_mutex *sqlite3_mutex_alloc(int); |
| SQLITE_API void sqlite3_mutex_free(sqlite3_mutex*); |
| SQLITE_API void sqlite3_mutex_enter(sqlite3_mutex*); |
| SQLITE_API int sqlite3_mutex_try(sqlite3_mutex*); |
| SQLITE_API void sqlite3_mutex_leave(sqlite3_mutex*); |
| |
| typedef struct sqlite3_mutex_methods sqlite3_mutex_methods; |
| struct sqlite3_mutex_methods { |
| int (*xMutexInit)(void); |
| int (*xMutexEnd)(void); |
| sqlite3_mutex *(*xMutexAlloc)(int); |
| void (*xMutexFree)(sqlite3_mutex *); |
| void (*xMutexEnter)(sqlite3_mutex *); |
| int (*xMutexTry)(sqlite3_mutex *); |
| void (*xMutexLeave)(sqlite3_mutex *); |
| int (*xMutexHeld)(sqlite3_mutex *); |
| int (*xMutexNotheld)(sqlite3_mutex *); |
| }; |
| |
| #ifndef NDEBUG |
| SQLITE_API int sqlite3_mutex_held(sqlite3_mutex*); |
| SQLITE_API int sqlite3_mutex_notheld(sqlite3_mutex*); |
| #endif |
| |
| |
| #define SQLITE_MUTEX_FAST 0 |
| #define SQLITE_MUTEX_RECURSIVE 1 |
| #define SQLITE_MUTEX_STATIC_MASTER 2 |
| #define SQLITE_MUTEX_STATIC_MEM 3 /* sqlite3_malloc() */ |
| #define SQLITE_MUTEX_STATIC_MEM2 4 /* NOT USED */ |
| #define SQLITE_MUTEX_STATIC_OPEN 4 /* sqlite3BtreeOpen() */ |
| #define SQLITE_MUTEX_STATIC_PRNG 5 /* sqlite3_random() */ |
| #define SQLITE_MUTEX_STATIC_LRU 6 /* lru page list */ |
| #define SQLITE_MUTEX_STATIC_LRU2 7 /* NOT USED */ |
| #define SQLITE_MUTEX_STATIC_PMEM 7 /* sqlite3PageMalloc() */ |
| |
| |
| SQLITE_API sqlite3_mutex *sqlite3_db_mutex(sqlite3*); |
| |
| SQLITE_API int sqlite3_file_control(sqlite3*, const char *zDbName, int op, void*); |
| |
| SQLITE_API int sqlite3_test_control(int op, ...); |
| |
| #define SQLITE_TESTCTRL_FIRST 5 |
| #define SQLITE_TESTCTRL_PRNG_SAVE 5 |
| #define SQLITE_TESTCTRL_PRNG_RESTORE 6 |
| #define SQLITE_TESTCTRL_PRNG_RESET 7 |
| #define SQLITE_TESTCTRL_BITVEC_TEST 8 |
| #define SQLITE_TESTCTRL_FAULT_INSTALL 9 |
| #define SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS 10 |
| #define SQLITE_TESTCTRL_PENDING_BYTE 11 |
| #define SQLITE_TESTCTRL_ASSERT 12 |
| #define SQLITE_TESTCTRL_ALWAYS 13 |
| #define SQLITE_TESTCTRL_RESERVE 14 |
| #define SQLITE_TESTCTRL_OPTIMIZATIONS 15 |
| #define SQLITE_TESTCTRL_ISKEYWORD 16 |
| #define SQLITE_TESTCTRL_SCRATCHMALLOC 17 |
| #define SQLITE_TESTCTRL_LOCALTIME_FAULT 18 |
| #define SQLITE_TESTCTRL_EXPLAIN_STMT 19 |
| #define SQLITE_TESTCTRL_LAST 19 |
| |
| #define SQLITE_STATUS_MEMORY_USED 0 |
| #define SQLITE_STATUS_PAGECACHE_USED 1 |
| #define SQLITE_STATUS_PAGECACHE_OVERFLOW 2 |
| #define SQLITE_STATUS_SCRATCH_USED 3 |
| #define SQLITE_STATUS_SCRATCH_OVERFLOW 4 |
| #define SQLITE_STATUS_MALLOC_SIZE 5 |
| #define SQLITE_STATUS_PARSER_STACK 6 |
| #define SQLITE_STATUS_PAGECACHE_SIZE 7 |
| #define SQLITE_STATUS_SCRATCH_SIZE 8 |
| #define SQLITE_STATUS_MALLOC_COUNT 9 |
| |
| #define SQLITE_DBSTATUS_LOOKASIDE_USED 0 |
| #define SQLITE_DBSTATUS_CACHE_USED 1 |
| #define SQLITE_DBSTATUS_SCHEMA_USED 2 |
| #define SQLITE_DBSTATUS_STMT_USED 3 |
| #define SQLITE_DBSTATUS_LOOKASIDE_HIT 4 |
| #define SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE 5 |
| #define SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL 6 |
| #define SQLITE_DBSTATUS_CACHE_HIT 7 |
| #define SQLITE_DBSTATUS_CACHE_MISS 8 |
| #define SQLITE_DBSTATUS_MAX 8 /* Largest defined DBSTATUS */ |
| |
| |
| SQLITE_API int sqlite3_status(int op, int *pCurrent, int *pHighwater, int resetFlag); |
| |
| SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int resetFlg); |
| |
| SQLITE_API int sqlite3_stmt_status(sqlite3_stmt*, int op,int resetFlg); |
| |
| #define SQLITE_STMTSTATUS_FULLSCAN_STEP 1 |
| #define SQLITE_STMTSTATUS_SORT 2 |
| #define SQLITE_STMTSTATUS_AUTOINDEX 3 |
| |
| typedef struct sqlite3_pcache sqlite3_pcache; |
| |
| typedef struct sqlite3_pcache_page sqlite3_pcache_page; |
| struct sqlite3_pcache_page { |
| void *pBuf; /* The content of the page */ |
| void *pExtra; /* Extra information associated with the page */ |
| }; |
| |
| typedef struct sqlite3_pcache_methods2 sqlite3_pcache_methods2; |
| struct sqlite3_pcache_methods2 { |
| int iVersion; |
| void *pArg; |
| int (*xInit)(void*); |
| void (*xShutdown)(void*); |
| sqlite3_pcache *(*xCreate)(int szPage, int szExtra, int bPurgeable); |
| void (*xCachesize)(sqlite3_pcache*, int nCachesize); |
| int (*xPagecount)(sqlite3_pcache*); |
| sqlite3_pcache_page *(*xFetch)(sqlite3_pcache*, unsigned key, int createFlag); |
| void (*xUnpin)(sqlite3_pcache*, sqlite3_pcache_page*, int discard); |
| void (*xRekey)(sqlite3_pcache*, sqlite3_pcache_page*, |
| unsigned oldKey, unsigned newKey); |
| void (*xTruncate)(sqlite3_pcache*, unsigned iLimit); |
| void (*xDestroy)(sqlite3_pcache*); |
| void (*xShrink)(sqlite3_pcache*); |
| }; |
| |
| |
| typedef struct sqlite3_pcache_methods sqlite3_pcache_methods; |
| struct sqlite3_pcache_methods { |
| void *pArg; |
| int (*xInit)(void*); |
| void (*xShutdown)(void*); |
| sqlite3_pcache *(*xCreate)(int szPage, int bPurgeable); |
| void (*xCachesize)(sqlite3_pcache*, int nCachesize); |
| int (*xPagecount)(sqlite3_pcache*); |
| void *(*xFetch)(sqlite3_pcache*, unsigned key, int createFlag); |
| void (*xUnpin)(sqlite3_pcache*, void*, int discard); |
| void (*xRekey)(sqlite3_pcache*, void*, unsigned oldKey, unsigned newKey); |
| void (*xTruncate)(sqlite3_pcache*, unsigned iLimit); |
| void (*xDestroy)(sqlite3_pcache*); |
| }; |
| |
| |
| #define SQLITE_CHECKPOINT_PASSIVE 0 |
| #define SQLITE_CHECKPOINT_FULL 1 |
| #define SQLITE_CHECKPOINT_RESTART 2 |
| |
| typedef struct sqlite3_backup sqlite3_backup; |
| |
| SQLITE_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 */ |
| ); |
| SQLITE_API int sqlite3_backup_step(sqlite3_backup *p, int nPage); |
| SQLITE_API int sqlite3_backup_finish(sqlite3_backup *p); |
| SQLITE_API int sqlite3_backup_remaining(sqlite3_backup *p); |
| SQLITE_API int sqlite3_backup_pagecount(sqlite3_backup *p); |
| |
| SQLITE_API int sqlite3_unlock_notify( |
| sqlite3 *pBlocked, /* Waiting connection */ |
| void (*xNotify)(void **apArg, int nArg), /* Callback function to invoke */ |
| void *pNotifyArg /* Argument to pass to xNotify */ |
| ); |
| |
| |
| SQLITE_API int sqlite3_strnicmp(const char *, const char *, int); |
| |
| SQLITE_API void sqlite3_log(int iErrCode, const char *zFormat, ...); |
| |
| SQLITE_API void *sqlite3_wal_hook( |
| sqlite3*, |
| int(*)(void *,sqlite3*,const char*,int), |
| void* |
| ); |
| |
| SQLITE_API int sqlite3_wal_autocheckpoint(sqlite3 *db, int N); |
| |
| SQLITE_API int sqlite3_wal_checkpoint(sqlite3 *db, const char *zDb); |
| |
| SQLITE_API 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 */ |
| ); |
| |
| SQLITE_API int sqlite3_vtab_config(sqlite3*, int op, ...); |
| |
| #define SQLITE_VTAB_CONSTRAINT_SUPPORT 1 |
| |
| SQLITE_API int sqlite3_vtab_on_conflict(sqlite3 *); |
| |
| #define SQLITE_ROLLBACK 1 |
| /* #define SQLITE_IGNORE 2 // Also used by sqlite3_authorizer() callback */ |
| #define SQLITE_FAIL 3 |
| /* #define SQLITE_ABORT 4 // Also an error code */ |
| #define SQLITE_REPLACE 5 |
| |
| #ifdef SQLITE_OMIT_FLOATING_POINT |
| # undef double |
| #endif |
| |
| #ifdef __cplusplus |
| } /* End of the 'extern "C"' block */ |
| #endif |
| #endif |
| |
| |
| #ifndef _SQLITE3RTREE_H_ |
| #define _SQLITE3RTREE_H_ |
| |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| typedef struct sqlite3_rtree_geometry sqlite3_rtree_geometry; |
| |
| struct sqlite3_rtree_geometry { |
| void *pContext; |
| int nParam; |
| double *aParam; |
| void *pUser; |
| void (*xDelUser)(void *); |
| }; |
| |
| SQLITE_API int sqlite3_rtree_geometry_callback( |
| sqlite3 *db, |
| const char *zGeom, |
| int (*xGeom)(sqlite3_rtree_geometry *, int nCoord, double *aCoord, int *pRes), |
| void *pContext |
| ); |
| |
| #ifdef __cplusplus |
| } /* end of the 'extern "C"' block */ |
| #endif |
| |
| #endif /* ifndef _SQLITE3RTREE_H_ */ |
| |