1"""Database health checks.
2
3Public surface:
4- Types: CheckItem, CheckResult, Informational, TableOwner
5- Entry point: run_all_checks(cursor, table_owners) -> (results, context)
6- Table ownership: build_table_owners()
7
8Internal layout (for maintainers):
9- types.py — TypedDicts + Literals
10- ownership.py — build_table_owners, _table_info
11- context.py — gather_context (hit ratios, XID age, connections,
12 pg_stat_statements availability, etc.)
13- helpers.py — formatting and pg_stat_statements probes
14- checks_structural.py — invalid/duplicate/missing_fk indexes, sequence exhaustion
15- checks_cumulative.py — stats_freshness, vacuum_health, index_bloat,
16 unused_indexes, missing_index_candidates
17- checks_snapshot.py — long_running_connections, blocking_queries
18- runner.py — ALL_CHECKS + cross-check caveats + run_all_checks
19"""
20
21from __future__ import annotations
22
23from .ownership import build_table_owners
24from .runner import run_all_checks
25from .types import CheckItem, CheckResult, Informational, TableOwner
26
27__all__ = [
28 "CheckItem",
29 "CheckResult",
30 "Informational",
31 "TableOwner",
32 "build_table_owners",
33 "run_all_checks",
34]