8a1c468c3c
FossilOrigin-Name: 92e7bb907802c905f99ed4c47669f97723f63ed3
74 lines
3.2 KiB
C
74 lines
3.2 KiB
C
/*
|
|
* 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
|