Skip to content

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)