| /* |
| * sqlite3_private.h |
| */ |
| |
| #ifndef _SQLITE3_PRIVATE_H |
| #define _SQLITE3_PRIVATE_H |
| |
| #define SQLITE_LOCKSTATE_OFF 0 |
| #define SQLITE_LOCKSTATE_ON 1 |
| #define SQLITE_LOCKSTATE_NOTADB 2 |
| #define SQLITE_LOCKSTATE_ERROR -1 |
| |
| #define SQLITE_LOCKSTATE_ANYPID -1 |
| |
| /* |
| ** Test a file path for sqlite locks held by a process ID (-1 = any PID). |
| ** Returns one of the following integer codes: |
| ** |
| ** SQLITE_LOCKSTATE_OFF no active sqlite file locks match the specified pid |
| ** SQLITE_LOCKSTATE_ON active sqlite file locks match the specified pid |
| ** SQLITE_LOCKSTATE_NOTADB path points to a file that is not an sqlite db file |
| ** SQLITE_LOCKSTATE_ERROR path was not vaild or was unreadable |
| ** |
| ** There is no support for identifying db files encrypted via SEE encryption |
| ** currently. Zero byte files are tested for sqlite locks, but if no sqlite |
| ** locks are present then SQLITE_LOCKSTATE_NOTADB is returned. |
| */ |
| extern int _sqlite3_lockstate(const char *path, pid_t pid); |
| |
| /* |
| ** Test an open database connection for sqlite locks held by a process ID, |
| ** if a process has an open database connection this will avoid trashing file |
| ** locks by re-using open file descriptors for the database file and support |
| ** files (-shm) |
| */ |
| #define SQLITE_FCNTL_LOCKSTATE_PID 103 |
| |
| /* |
| ** Pass the SQLITE_TRUNCATE_DATABASE operation code to sqlite3_file_control() |
| ** to truncate a database and its associated journal file to zero length. The |
| ** SQLITE_TRUNCATE_* flags represent optional flags to safely initialize an |
| ** empty database in the place of the truncated database, the flags are passed |
| ** into sqlite3_file_control via the fourth argument using a pointer to an integer |
| ** configured with the ORed flags. If the fourth argument is NULL, the default |
| ** behavior is applied and the database file is truncated to zero bytes, a rollback |
| ** journal (if present) is unlinked, a WAL journal (if present) is truncated to zero |
| ** bytes and the first few bytes of the -shm file is scrambled to trigger existing |
| ** connections to rebuild the index from the database file contents. |
| */ |
| #define SQLITE_FCNTL_TRUNCATE_DATABASE 101 |
| #define SQLITE_TRUNCATE_DATABASE SQLITE_FCNTL_TRUNCATE_DATABASE |
| #define SQLITE_TRUNCATE_INITIALIZE_HEADER_MASK (0x7F<<0) |
| #define SQLITE_TRUNCATE_JOURNALMODE_WAL (0x1<<0) |
| #define SQLITE_TRUNCATE_AUTOVACUUM_MASK (0x3<<2) |
| #define SQLITE_TRUNCATE_AUTOVACUUM_OFF (0x1<<2) |
| #define SQLITE_TRUNCATE_AUTOVACUUM_FULL (0x2<<2) |
| #define SQLITE_TRUNCATE_AUTOVACUUM_INCREMENTAL (0x3<<2) |
| #define SQLITE_TRUNCATE_PAGESIZE_MASK (0x7<<4) |
| #define SQLITE_TRUNCATE_PAGESIZE_1024 (0x1<<4) |
| #define SQLITE_TRUNCATE_PAGESIZE_2048 (0x2<<4) |
| #define SQLITE_TRUNCATE_PAGESIZE_4096 (0x3<<4) |
| #define SQLITE_TRUNCATE_PAGESIZE_8192 (0x4<<4) |
| #define SQLITE_TRUNCATE_FORCE (0x1<<7) |
| |
| /* |
| ** Pass the SQLITE_REPLACE_DATABASE operation code to sqlite3_file_control() |
| ** and a sqlite3 pointer to another open database file to safely copy the |
| ** contents of that database file into the receiving database. |
| */ |
| #define SQLITE_FCNTL_REPLACE_DATABASE 102 |
| #define SQLITE_REPLACE_DATABASE SQLITE_FCNTL_REPLACE_DATABASE |
| |
| #endif |