Expand description
Multi-table Database container (spec §5, §6, §10).
Owns the shared services — catalog, dual-counter epoch authority, shared
raw/decoded page caches, snapshot-retention registry, and the DB-wide KEK —
and mounts per-table Table engines under tables/<id>/ that borrow them.
P1 scope: per-table WALs remain (collapsed into one shared WAL in P2); the
win here is one consistent commit clock across tables and one reopen path.
Structs§
- Change
Event - A data-change event published on commit (CDC / NOTIFY-LISTEN).
- Check
Issue - An integrity issue found by
Database::check(spec §16). - Database
- A multi-table database: one catalog, one epoch clock, shared caches, a
shared WAL, and a live map of name →
Arc<Table>. - External
Trigger Write Result
Enums§
Constants§
- EXTERNAL_
TABLE_ ID - Sentinel
table_idforCheckIssues that concern external-table module state instead of an ordinary table. - KEYS_
FILENAME - META_
DIR - TABLES_
DIR - VTAB_
DIR - WAL_
TABLE_ ID - Sentinel
table_idforCheckIssues that concern the shared WAL rather than any table.u64::MAXis never allocated to a real table (the catalog mints ids from 0 upward), soDatabase::doctorcan safely skip them.
Traits§
Type Aliases§
- Table
Handle - A handle to a live table inside a
Database. Writes take the inner lock (P1); P3.3 replaces this with lock-freeArcSwapreads + a publish lock for writes.