SQLiteHeader class

class sqliteanalyzer.SQLiteHeader(db_path: str)[source]

Read an SQLite database file and extract the information contained in its header (first HEADER_SIZE_BYTES = 100 bytes).

Reference:
https://sqlite.org/fileformat.html#the_database_header
header_string = None

str – header string ('SQLite format 3\x00')

page_size = None

int – page size in bytes

format_read_version = None

int – SQLite version used in the last read

format_write_version = None

int – SQLite version used in the last write

reserved_space = None

int – Unused bytes reserved at the end of a page

max_embedded_payload = None

int – Maximum embedded payload fraction (must be 64)

min_embedded_payload = None

int – Minimum embedded payload fraction (must be 32)

leaf_payload = None

int – Leaf payload fraction. Must be 32.

change_counter = None

int – File change counter

page_count = None

int – Size of the DB in pages

freelist_start = None

int – Page# of the first freelist trunk page

freelist_count = None

int – Total number of freelist pages

int – Schema cookie

schema_format = None

int – Schema format number

page_cache_size = None

int – Default page cache size

largest_root_page = None

int – Page# of the largest root b-tree page when in autovacuum or incremental vacuum modes

encoding_value = None

str – Text encoding 'UTF-8', 'UTF-16le', 'UTF-16be' or None if not valid

user_version = None

int – User version as set by the user_version pragma

incremental_vacuum_mode = None

bool – Incremental vacuum mode enabled

application_id = None

int – Application ID as set by the application_id pragma

reserved = None

int – Bytes reserved by SQLite for expansion. (Must be 0.)

version_valid_for = None

intversion-valid-for number

sqlite_version_number = None

int – SQLite version number

header_seems_valid() → bool[source]

Returns whether the values in fields that have constraints do respect them (i.e. the header appears to be valid).