Extension File Structure¶
pg_auto_mv/
├── CLAUDE.md — implementation specification (authoritative)
├── Makefile — PGXS build; test target runs psql against relay_dev
├── pg_auto_mv.control — version 1.1, schema=pgauto_mv, requires=pg_relay
├── sql/
│ ├── pg_auto_mv--1.0.sql — base extension script
│ └── pg_auto_mv--1.0--1.1.sql — 1.0 → 1.1 upgrade (node-restricted channels; requires pg_relay >= 1.1.0)
├── test/
│ └── pg_auto_mv_test.sql — 203 regression tests
└── LICENSE — MIT
A fresh CREATE EXTENSION pg_auto_mv installs 1.1 by chaining the base script and the upgrade delta automatically; existing 1.0 installs upgrade with ALTER EXTENSION pg_auto_mv UPDATE;.
The SQL file phases:
1. Schema (from control file), composite types, catalog tables, mv_state_v, _on_truncate_signal trigger
2. watch() helper
3. _next_scheduled_at(), _advance_schedule() — scheduling helpers
4. _create_triggers(), _drop_triggers()
5. register(), unregister()
6. _process_pending()
7. update(), status(), get_mv(), list_mv()
8. chain_mv(), unchain_mv()
9. clean_mv()
10. purge()
11. refresh_frequency()
12. sync_mv() procedure
13. resolve_base_tables()
14. pgrelay.actions INSERT statements (channel registrations)