|  | #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_ */ | 
|  |  |